.moire{width:100%;height:100%;color:var(--foreground);isolation:isolate;position:relative}.moire__stage{contain:paint;touch-action:pan-y;cursor:grab;-webkit-user-select:none;user-select:none;position:absolute;inset:0;overflow:hidden}.moire__stage[data-dragging]{cursor:grabbing}.moire__layers{isolation:isolate;position:absolute;inset:0}.moire canvas{pointer-events:none;position:absolute}.moire__stage:not([data-ready]) canvas{opacity:0}.moire canvas+canvas{will-change:transform}.moire__rest-cover{z-index:1;pointer-events:none;background:var(--background);opacity:1;transition:opacity .24s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.moire--background .moire__stage{background:var(--foreground);color:var(--background)}.moire__tools{z-index:3;align-items:end;gap:.5rem;display:flex;position:absolute;bottom:1rem;right:1rem}.moire__tools button,.moire__controls summary{font:inherit;background:var(--background);color:var(--foreground);cursor:pointer;border:1px solid;padding:.55rem .8rem;font-size:.7rem}.moire__controls summary{list-style:none}.moire__controls summary::-webkit-details-marker{display:none}.moire__controls summary span{font-size:inherit;margin-left:1rem}.moire__panel{background:var(--background);border:1px solid;width:min(250px,80vw);padding:1rem;position:absolute;bottom:calc(100% + .5rem);right:0}.moire__panel p{margin-bottom:1rem;font-size:.65rem;line-height:1.5}.moire__panel label{justify-content:space-between;font-size:.7rem;display:flex}.moire__panel output{font:inherit;font-variant-numeric:tabular-nums}.moire__panel input{width:100%;height:32px;accent-color:var(--foreground);cursor:ew-resize;margin-bottom:.5rem}.moire__panel button{width:100%;margin-top:.5rem}.moire__hero-controls{z-index:49;color:var(--foreground);position:relative}.moire__hero-toggle{color:inherit}.moire__hero-toggle[aria-expanded=true]{background:var(--foreground);color:var(--background)}.moire__hero-toggle:not([aria-expanded=true]):hover{background:color-mix(in srgb, var(--foreground) 90%, transparent);color:var(--background)}.moire__hero-toggle:active{background:var(--foreground);color:var(--background)}.moire__hero-toggle .moire__hero-icon{width:1.9rem;height:1.9rem;display:block;overflow:visible}.moire__hero-panel{z-index:50;box-sizing:border-box;width:min(16rem,100vw - 2rem);max-width:calc(100vw - 2rem);color:var(--foreground);border:0;padding:0 .85rem;font-size:.875rem;position:absolute;bottom:calc(100% + .5rem);right:0}.moire__hero-panel :where(label,label *,output,select,button,strong){font-size:inherit}.moire__hero-panel-head{box-sizing:border-box;cursor:grab;touch-action:none;border-bottom:1px solid;justify-content:space-between;align-items:center;height:3.25rem;font-size:1rem;display:flex}.moire__hero-panel.is-dragging,.moire__hero-panel.is-dragging .moire__hero-panel-head{cursor:grabbing}.moire__hero-panel-head strong{font-size:inherit;font-weight:500}.moire__hero-panel-head button{color:inherit;font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:0;padding:0;line-height:1}.moire__hero-switch{justify-content:space-between;align-items:center;min-width:0;min-height:2.15rem;display:flex}.moire__hero-switch>span,.moire__hero-pattern>span,.moire__hero-range>span{min-width:0}.moire__hero-panel-head+.moire__hero-switch{margin-top:.35rem}.moire__hero-switch--minor{font-size:inherit}.moire__hero-switch input{opacity:0;block-size:1px;inline-size:1px;position:absolute}.moire__hero-switch i{background:color-mix(in srgb, var(--foreground) 12%, transparent);cursor:pointer;border-radius:999px;width:3.25rem;height:1.7rem;transition:background .18s;position:relative}.moire__hero-switch i:after{background:color-mix(in srgb, var(--foreground) 62%, var(--background));content:"";border-radius:50%;width:1.34rem;height:1.34rem;transition:transform .18s,background .18s;position:absolute;top:.18rem;left:.18rem}.moire__hero-switch input:checked+i{background:color-mix(in srgb, var(--foreground) 20%, transparent)}.moire__hero-switch input:checked+i:after{background:var(--foreground);transform:translate(1.55rem)}.moire__hero-switch--minor i{width:2.6rem;height:1.45rem}.moire__hero-switch--minor i:after{width:1.13rem;height:1.13rem;top:.16rem;left:.16rem}.moire__hero-switch--minor input:checked+i:after{transform:translate(1.15rem)}.moire__hero-switch input:focus-visible+i{outline-offset:3px;outline:1px solid}.moire__hero-switch input:disabled+i{opacity:.38;cursor:not-allowed}.moire__hero-range{margin-top:0;font-size:.875rem;display:block}.moire__hero-range>span{justify-content:space-between;display:flex}.moire__hero-range output{font-size:inherit;font-variant-numeric:tabular-nums}.moire__hero-range input{box-sizing:border-box;-webkit-appearance:none;appearance:none;cursor:ew-resize;background:0 0;width:100%;min-width:0;max-width:100%;height:1.05rem;margin:.02rem 0 .1rem;display:block}.moire__hero-range input::-webkit-slider-runnable-track{background:color-mix(in srgb, var(--foreground) 68%, var(--background));border:0;border-radius:999px;height:.3rem}.moire__hero-range input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;border:2px solid var(--background);background:var(--foreground);border-radius:50%;width:.85rem;height:.85rem;margin-top:-.275rem}.moire__hero-range input::-moz-range-track{background:color-mix(in srgb, var(--foreground) 68%, var(--background));border:0;border-radius:999px;height:.3rem}.moire__hero-range input::-moz-range-thumb{border:2px solid var(--background);background:var(--foreground);border-radius:50%;width:.85rem;height:.85rem}.moire__hero-pattern{align-items:center;gap:1rem;margin:.2rem 0 .4rem;padding-top:.2rem;display:flex}.moire__hero-pattern select{box-sizing:border-box;width:0;min-width:0;max-width:calc(100% - .25rem);height:2.05rem;box-shadow:inset 0 0 0 1px var(--foreground);background:color-mix(in srgb, var(--foreground) 12%, transparent);color:var(--foreground);font-family:inherit;font-size:inherit;cursor:pointer;border:0;border-radius:.4rem;outline:0;flex:1 1 0;margin-right:.25rem;padding:.3rem .7rem .35rem}.moire__hero-pattern select:focus-visible{outline:1px solid var(--foreground);outline-offset:2px}.moire__hero-pattern option{background:var(--background);color:var(--foreground)}.moire__hero-master{box-sizing:border-box;border-top:1px solid;height:3.25rem;min-height:3.25rem;margin-top:.35rem;padding:0;font-size:1rem}.moire__hero-settings{font-size:.875rem;overflow:hidden}.moire__hero-settings :where(label,label *,output,select){font-size:.875rem}.moire__hero-panel.is-inactive .moire__hero-master{border-top:0;margin-top:0}.moire__hero-panel.is-inactive{overflow-y:hidden}.moire__wordmark-mask-layer{z-index:2;pointer-events:none;display:none;position:absolute;inset:0;overflow:hidden}.moire__wordmark-clip{position:absolute;top:0;left:0;overflow:hidden}.moire__wordmark-mask-layer canvas{top:0;left:0}.moire__scroll-cue{animation:2.15s linear infinite moire-scroll-cue}.moire__scroll-cue svg{transition:opacity .2s;display:block}.moire__scroll-mask{pointer-events:none;position:absolute;inset:0}.moire__scroll-mask canvas{display:none;position:absolute}html[data-moire-hero-mode=font] .moire__scroll-mask canvas{display:block}html[data-moire-hero-mode=font] .moire__scroll-cue svg{opacity:0}@keyframes moire-scroll-cue{0%,38%{margin-bottom:0}38%{animation-timing-function:cubic-bezier(.16,1,.3,1)}57%,64%{margin-bottom:.45rem}64%{animation-timing-function:cubic-bezier(.16,1,.3,1)}85%,to{margin-bottom:0}}.hero-logo,.hero-logo [role=button]{pointer-events:none}.hero-logo h1{pointer-events:auto;-webkit-user-select:text;user-select:text;cursor:text}html[data-moire-dragging=true] .hero-logo,html[data-moire-dragging=true] .hero-logo *,html[data-moire-dragging=true],html[data-moire-dragging=true] body{-webkit-user-select:none;user-select:none}html[data-moire-hero-mode=font] .moire__wordmark-mask-layer{display:block}html[data-moire-hero-mode=font] #hero .hero-logo h1{color:#0000;-webkit-text-fill-color:transparent}html[data-moire-hero-active=false] .moire__wordmark-mask-layer{display:none}html[data-moire-hero-active=false] #hero .hero-logo h1{color:var(--foreground);-webkit-text-fill-color:var(--foreground)}html[data-moire-hero-mode=font] #hero .hero-logo h1::selection{color:var(--background);-webkit-text-fill-color:var(--background);background:var(--foreground)}html[data-moire-hero-mode=font][data-moire-font-rest=true] .moire__wordmark-mask-layer{display:none}html[data-moire-hero-mode=font][data-moire-font-rest=true] #hero .hero-logo h1{color:var(--foreground);-webkit-text-fill-color:var(--foreground)}@media (prefers-reduced-motion:reduce){.moire canvas+canvas{will-change:auto}.moire__scroll-cue{animation:none}}.moire:not(.moire--background) .moire__tools{align-items:start;top:1rem;bottom:auto}.moire:not(.moire--background) .moire__panel{top:calc(100% + .5rem);bottom:auto}.moire:not(.moire--background) .moire__tools{top:3rem}.moire__panel{max-height:calc(100svh - 8rem);overflow-y:auto}@media (width<=767px){.moire__hero-panel{max-height:calc(100svh - 5rem);bottom:calc(100% + .5rem);right:0;overflow-y:auto}.moire:not(.moire--background) .moire__panel{max-height:calc(50svh - 7rem)}}html.is-dragging-project-card,html.is-dragging-project-card *{-webkit-user-select:none!important;user-select:none!important}.leaflet-container{background:0 0!important}.leaflet-tile-pane{filter:grayscale()brightness()contrast()}html.dark .leaflet-tile-container img{filter:invert()hue-rotate(180deg)grayscale()brightness()contrast()}[data-slot=card-content]{isolation:isolate}.leaflet-map-pane{z-index:0!important}.leaflet-top{z-index:10!important}.leaflet-marker-icon{background:0 0!important;border:none!important;padding:0!important}.leaflet-marker-icon .custom-marker-icon{-webkit-mask-image:var(--mask-image);mask-image:var(--mask-image);isolation:isolate;background-color:currentColor;animation:1s infinite pulse;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.leaflet-top.leaflet-left{padding-left:.5rem;top:2.5rem;left:0}@media (width>=768px){.leaflet-top.leaflet-left{padding-left:1.25rem;top:3rem}}.leaflet-control{margin:0!important}.leaflet-control-zoom.leaflet-bar{backdrop-filter:blur(12px);border:0;border-radius:.375rem;overflow:hidden;box-shadow:0 1px 2px #0000000d}.leaflet-control-zoom-in{margin-bottom:.15rem}.leaflet-control-zoom.leaflet-bar a{-webkit-backdrop-filter:blur(3px);color:var(--foreground);justify-content:center;align-items:center;padding:1rem;font-family:Antarctica-Regular,sans-serif;font-weight:300;display:flex;background-color:hsla(var(--background-h), var(--background-s), var(--background-l), .8)!important;border:none!important}.leaflet-control-zoom.leaflet-bar a span{transition:all ease-in-out;transition-duration:.3;padding-top:3px}.leaflet-control-zoom.leaflet-bar a span:hover{transform-origin:50%;scale:1.2}.leaflet-control-zoom-in:before,.leaflet-control-zoom-out:before{content:"";vertical-align:middle;background-position:50%;background-repeat:no-repeat;background-size:contain;width:16px;height:16px;display:inline-block}.leaflet-control-zoom-in:before{background-image:url("data:image/svg+xml;utf8,<svg fill=\"var(--foreground)\" height=\"16\" viewBox=\"0 0 24 24\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 13H13v6h-2v-6H5v-2h6V5h2v6h6v2z\"/></svg>")}.leaflet-control-zoom-out:before{background-image:url("data:image/svg+xml;utf8,<svg fill=\"var(--foreground)\" height=\"16\" viewBox=\"0 0 24 24\" width=\"16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 13H5v-2h14v2z\"/></svg>")}.leaflet-control-attribution{transform-origin:100% 100%;scale:.85;background:var(--background)!important;color:var(--foreground)!important;z-index:20!important;border:none!important;font-size:.75rem!important;line-height:1rem!important}.leaflet-control-attribution a,.leaflet-control-attribution span{color:var(--foreground)!important;font-size:inherit!important;line-height:inherit!important;border:none!important}html.disco .leaflet-tile-pane{filter:grayscale(0%)brightness()contrast()}html.disco .leaflet-tile-container>img{mix-blend-mode:color!important;filter:grayscale()!important;opacity:.7!important}.disco .leaflet-control-zoom.leaflet-bar a{background:var(--background)!important;color:var(--foreground)!important}
