.ui-surface{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius)}.ui-surface--blur{-webkit-backdrop-filter:blur(16px);background:#141414b3}.ui-text--section{font-family:var(--font-ui);font-size:var(--t-section);color:var(--section-color);letter-spacing:0;text-transform:none;font-weight:500}.ui-text--sub{font-family:var(--font-ui);font-size:var(--t-section);color:var(--text-label);letter-spacing:0;text-transform:none;font-weight:500}.ui-text--label{font-size:var(--t-label);color:var(--text-secondary)}.ui-text--value{font-size:var(--t-value);color:var(--text-primary)}.ui-divider{background:var(--border-section);height:1px;margin:0 var(--panel-px)}.panel__header{height:var(--space-4);border-bottom:1px solid var(--border-section);flex-shrink:0}.panel__scroll{flex:1;overflow:hidden auto}.panel__scroll::-webkit-scrollbar{width:4px}.panel__scroll::-webkit-scrollbar-track{background:0 0}.panel__scroll::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:2px}.panel__footer{padding:var(--space-2) var(--panel-px);border-top:1px solid var(--border-section);flex-shrink:0;justify-content:center;display:flex}.panel__ph-badge{opacity:.9;transition:opacity var(--duration-fast) ease;line-height:0;display:inline-flex}.panel__ph-badge:hover{opacity:1}.panel__ph-badge img{width:210px;height:auto;display:block}.acrd__item{border-bottom:1px solid var(--border-section)}.acrd__trigger{width:100%;padding:var(--section-py) var(--panel-px);cursor:pointer;outline-offset:2px;opacity:var(--section-opacity-closed);transition:opacity var(--duration-fast) ease, background-color var(--duration-fast) ease;justify-content:space-between;align-items:center;display:flex}.acrd__trigger:hover{background-color:var(--bg-hover)}.acrd__caret{opacity:.5;flex-shrink:0;margin-inline-start:8px}.acrd__caret-path{d:path("M 1 5 L 5 1 L 9 5");transition:d var(--duration-base) var(--ease-out)}.acrd__ctrl:checked~.acrd__trigger .acrd__caret-path{d:path("M 1 1 L 5 5 L 9 1")}.acrd__ctrl:checked~.acrd__trigger{opacity:var(--section-opacity-open)}.acrd__trigger:focus-visible{outline:2px solid var(--accent)}.acrd__panel{transition:grid-template-rows var(--duration-base) var(--ease-out);grid-template-rows:0fr;display:grid}.acrd__ctrl:checked~.acrd__panel{grid-template-rows:1fr}.acrd__panel-inner{padding-inline:var(--panel-px);overflow:hidden}.acrd__ctrl:checked~.acrd__panel .acrd__panel-inner{padding-block:var(--section-body-py)}.panel__export{padding:var(--section-py) var(--panel-px);border-top:1px solid var(--border-section);flex-shrink:0}.ctrl{margin-block-end:var(--control-gap)}.ctrl:last-child{margin-block-end:0}.ctrl__header{justify-content:space-between;align-items:baseline;margin-block-end:var(--label-gap);display:flex}.ctrl__label{font-size:var(--t-label);color:var(--text-secondary)}.ctrl__value{display:none}.ctrl:has(.ctrl__range){align-items:center;gap:var(--space-1);display:flex}.ctrl:has(.ctrl__range) .ctrl__header{flex-shrink:0;margin-block-end:0}.ctrl:has(.ctrl__range) .ctrl__range{flex:1;min-width:0}:is(.floor-row__slider-inner:has(.ctrl__range),.effect-row__body-inner:has(.ctrl__range)){align-items:center;gap:var(--space-1);display:flex}.floor-row__slider-inner .ctrl__header,.effect-row__body-inner .ctrl__header{flex-shrink:0;margin-block-end:0}.floor-row__slider-inner .ctrl__range,.effect-row__body-inner .ctrl__range{flex:1;min-width:0}.ctrl__range{appearance:none;background:linear-gradient(to right, var(--text-primary) var(--fill,0%), var(--bg-track) var(--fill,0%));cursor:pointer;border-radius:1px;width:100%;height:2px}.ctrl__range::-webkit-slider-thumb{appearance:none;background:var(--text-primary);opacity:0;cursor:pointer;border:1px solid #000;border-radius:50%;width:10px;height:10px;transition:opacity .15s ease-out}.ctrl__range:hover::-webkit-slider-thumb{opacity:1}.ctrl__range::-moz-range-thumb{background:var(--text-primary);cursor:pointer;border:1px solid #000;border-radius:50%;width:0;height:0}.ctrl__range:hover::-moz-range-thumb{width:10px;height:10px}.ctrl__range:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.ctrl__select{width:100%;padding:5px var(--space-1);background-color:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--t-value);color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%23555' d='M2.5 4l2.5 2.5 2.5-2.5'/%3E%3C/svg%3E");background-position:right 6px center;background-repeat:no-repeat}.ctrl__select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ctrl__input{width:100%;padding:5px var(--space-1);background-color:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--t-value);color:var(--text-primary)}.ctrl__input::placeholder{color:var(--text-label)}.ctrl__input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.seg{border:1px solid var(--border);border-radius:var(--radius);gap:0;display:flex;overflow:hidden}.seg__btn{font-size:var(--t-label);color:var(--text-label);background:var(--bg-hover);border-right:1px solid var(--border);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);text-align:center;flex:1;padding:4px 0}.seg__btn:last-child{border-right:none}.seg__btn:hover{color:var(--text-base)}.seg__btn--active{color:#000;background:#fff}.seg__btn--active:hover{color:#000!important}.seg__btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.seg+.ctrl{margin-block-start:var(--space-2)}.toggle{cursor:pointer;align-items:center;gap:6px;display:flex}.toggle__input{opacity:0;width:0;height:0;position:absolute}.toggle__track{background:var(--bg-track);width:20px;height:11px;transition:background var(--duration-fast) var(--ease-out);border-radius:6px;flex-shrink:0;position:relative}.toggle__track:after{content:"";background:var(--text-label);width:8px;height:8px;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);border-radius:50%;position:absolute;top:1.5px;left:1.5px}.toggle__input:checked+.toggle__track{background:var(--text-primary)}.toggle__input:checked+.toggle__track:after{background:var(--bg-panel);transform:translate(9px)}.toggle__input:focus-visible+.toggle__track{outline:2px solid var(--accent);outline-offset:2px}.toggle__name{font-size:var(--t-label);color:var(--text-secondary)}.effect-row{margin-block-end:var(--control-gap)}.effect-row:last-child{margin-block-end:0}.effect-row__header{align-items:center;display:flex}.effect-row__header .toggle{margin-inline-start:auto}.effect-row__body{transition:grid-template-rows var(--duration-base) var(--ease-out);grid-template-rows:0fr;display:grid}.effect-row__body--open{grid-template-rows:1fr}.effect-row__body-inner{transition:padding var(--duration-base) var(--ease-out);padding-block-start:0;overflow:hidden}.effect-row__body--open .effect-row__body-inner{padding-block-start:var(--space-1)}.floor-row{margin-block-end:var(--control-gap)}.floor-row:last-child{margin-block-end:0}.floor-row__header{align-items:center;gap:6px;display:flex}.floor-row__header .toggle{margin-inline-start:auto}.floor-row__slider{transition:grid-template-rows var(--duration-base) var(--ease-out);grid-template-rows:0fr;display:grid}.floor-row__slider--open{grid-template-rows:1fr}.floor-row__slider-inner{overflow:hidden}.floor-row__slider--open .floor-row__slider-inner{padding-block-start:var(--label-gap)}.floor-row__slider-inner .ctrl__header{margin-block-end:3px}.textarea-wrap{margin-block-end:var(--control-gap);position:relative}.ctrl__textarea{resize:none;width:100%;min-height:0;box-shadow:none;appearance:none;field-sizing:content;border-color:#ffffff26;outline:none;padding-inline-end:var(--space-3);font-family:inherit;line-height:1.4;display:block;overflow:hidden}.ctrl__textarea:focus{box-shadow:none;border-color:#ffffff26;outline:none}.textarea-wrap__clear{top:var(--space-1);right:var(--space-1);width:16px;height:16px;color:var(--text-label);cursor:pointer;transition:color var(--duration-fast) ease, background-color var(--duration-fast) ease;background:0 0;border:none;border-radius:9999px;justify-content:center;align-items:center;display:flex;position:absolute}.textarea-wrap__clear:hover{color:var(--text-primary);background-color:var(--bg-hover)}.textarea-wrap__clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.textarea-wrap__clear[hidden]{display:none}.dropzone{padding:var(--section-py) var(--space-1);border:1px dashed var(--bg-track);border-radius:var(--radius);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.dropzone:hover,.dropzone:focus-visible{background-color:var(--bg-hover)}.dropzone--drag{background-color:var(--bg-hover);border-color:var(--text-secondary)}.dropzone--has-file{border-style:solid;border-color:var(--border)}.dropzone__icon{background:var(--text-primary);border-radius:var(--radius);width:32px;height:32px;color:var(--bg-panel);justify-content:center;align-items:center;display:flex}.dropzone__text{font-size:var(--t-label);color:var(--text-secondary)}.dropzone__hint{font-size:var(--t-section);color:var(--text-label)}.dropzone--compact{padding:var(--space-1)}.dropzone--screen{isolation:isolate;background-color:#242425;border-color:#ffffff26;height:32px;padding:0;position:relative;overflow:hidden}.dropzone--screen.dropzone--has-file{aspect-ratio:16/9;height:auto}.dropzone__plus{position:absolute}.dropzone__remove{z-index:2;width:20px;height:20px;color:var(--text-primary);cursor:pointer;transition:opacity var(--duration-fast) var(--ease-out);opacity:.6;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:4px;right:4px;transform:rotate(45deg)}.dropzone__remove:hover{opacity:1}.dropzone__remove:focus-visible{outline:2px solid var(--accent,#fff);outline-offset:2px}.dropzone__hover-label{font-size:var(--t-section);color:var(--text-primary);opacity:0;transition:opacity var(--duration-fast) var(--ease-out);pointer-events:none;background:#0006;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dropzone--has-file:hover .dropzone__hover-label{opacity:1}.light-pad{aspect-ratio:1;cursor:crosshair;touch-action:none;background-color:#0c0c0c;width:100%;margin-top:4px;position:relative;overflow:hidden}.light-pad:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.light-pad__line{background:#fff3;position:absolute}.light-pad__line--h{height:1px;top:50%;left:0;right:0}.light-pad__line--v{width:1px;top:0;bottom:0;left:50%}.light-pad__dot{background:var(--text-primary);pointer-events:none;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.color-ctrl{align-items:center;gap:var(--space-1);display:flex}.color-ctrl__swatch{border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;appearance:none;background:0 0;width:24px;height:24px;padding:0}.color-ctrl__swatch::-webkit-color-swatch-wrapper{padding:2px}.color-ctrl__swatch::-webkit-color-swatch{border:none;border-radius:2px}.color-ctrl__hex{font-family:var(--font-mono);font-size:var(--t-section);color:var(--text-label)}.swatch-row{gap:4px;display:flex}.swatch{border:1px solid var(--border);cursor:pointer;width:20px;height:20px;transition:border-color var(--duration-fast) var(--ease-out);border-radius:2px}.swatch:hover{border-color:var(--text-secondary)}.swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.scale-group{border:1px solid var(--border);border-radius:var(--radius);gap:0;padding:0;display:flex;overflow:hidden}.scale-group__option{font-size:var(--t-label);font-family:var(--font-mono);color:var(--text-label);background:var(--bg-hover);cursor:pointer;border-right:1px solid var(--border);transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);flex:1;justify-content:center;align-items:center;padding:4px 0;display:flex}.scale-group__option:last-child{border-right:none}.scale-group__option:hover{color:var(--text-secondary)}.scale-group__option--active{background:var(--accent);color:var(--btn-primary-fg)}.btn--export{width:100%;height:32px;font-size:var(--t-value);background:var(--btn-primary-bg);color:var(--btn-primary-fg);border-radius:var(--radius);transition:opacity var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;margin-block-start:var(--space-1);font-weight:600;display:flex}.btn--export:hover{opacity:.9}.btn--export:active{opacity:.8}.btn--export:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn--small{font-size:var(--t-section);color:var(--text-secondary);background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;padding:3px 8px;display:inline-flex}.btn--small:hover{color:var(--text-primary);background:var(--bg-active)}.btn--reset{margin-inline-start:auto}.preview-grid{border-radius:var(--radius);border:1px solid #ffffff26;grid-template-columns:repeat(4,1fr);gap:0;margin-block-end:var(--control-gap);display:grid;overflow:hidden}.preview-grid__item{aspect-ratio:1;border:none;cursor:pointer;isolation:isolate;transition:background var(--duration-fast) var(--ease-out);background:0 0;border-inline-end:1px solid #ffffff26;border-radius:0;position:relative;overflow:hidden}.preview-grid__item:last-child{border-inline-end:none}.preview-grid__item--active{background:0 0}.preview-grid__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.preview-grid__img{object-fit:cover;border-radius:inherit;width:100%;height:100%;transition:opacity .15s,filter .15s;display:block}.preview-grid__item--active .preview-grid__img{filter:invert()}.preview-grid__label{font-size:var(--t-section);color:#fff;opacity:0;transition:opacity .15s var(--ease-out);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.preview-grid__item--active:hover .preview-grid__label{color:#fff}.preview-grid__rotate{opacity:.7;pointer-events:none;z-index:2;filter:brightness(0)invert();width:8px;height:8px;transition:filter .15s var(--ease-out);position:absolute;top:4px;right:4px}.preview-grid__item--active .preview-grid__rotate{filter:none}.preview-grid__item:hover .preview-grid__label{opacity:1}.preview-grid__item:hover .preview-grid__img{opacity:.6}.preview-grid--shapes{grid-template-columns:repeat(3,1fr)}.shader-grid{grid-template-columns:1fr 1fr;gap:4px;margin-block-end:var(--control-gap);display:grid}.shader-grid__btn{font-size:var(--t-section);text-align:center;color:var(--text-label);background:var(--bg-hover);border-radius:var(--radius);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:none;padding:6px 4px}.shader-grid__btn:hover{color:var(--text-secondary)}.shader-grid__btn--active{background:var(--bg-active);color:var(--text-primary);border-color:var(--text-label)}.shader-grid__btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.shader-colors{gap:4px;margin-block-end:var(--control-gap);display:flex}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:93.75%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}a{color:inherit;text-decoration:none}ul,ol{list-style:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body{opacity:1}:root{--bg-base:#000;--bg-panel:#000;--bg-hover:#ffffff0a;--bg-active:#ffffff1a;--bg-track:#ffffff1a;--border:#ffffff0f;--border-section:#ffffff0f;--text-primary:#fff;--text-secondary:#ffffffb3;--text-label:#ffffff8c;--section-color:#fff;--section-opacity-closed:.7;--section-opacity-open:1;--accent:#fff;--btn-primary-bg:#fff;--btn-primary-fg:#000;--space-0:4px;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--space-5:48px;--panel-width:280px;--panel-px:var(--space-2);--section-py:var(--space-2);--section-body-py:var(--space-2);--control-gap:var(--space-2);--label-gap:var(--space-0);--font-ui:"Inter", -apple-system, "SF Pro Text", system-ui, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", "Roboto Mono", monospace;--t-section:12px;--t-label:11px;--t-value:12px;--t-body:16px;--radius:4px;--ease-out:cubic-bezier(.16, 1, .3, 1);--duration-fast:.15s;--duration-base:.2s}body{font-family:var(--font-ui);font-size:var(--t-value);color:var(--text-primary);background-color:var(--bg-base);line-height:1.5;overflow:hidden}#shader-bg{z-index:0;pointer-events:none;display:none;position:fixed;inset:0}#canvas-root{z-index:1;transition:right .3s;position:fixed;inset:0 280px 0 0}#canvas-root canvas{display:block;width:100%!important;height:100%!important}body.bg-transparent #canvas-root{--check-a:#d9d9d9;--check-b:#fff;background-color:var(--check-b);background-image:linear-gradient(45deg, var(--check-a) 25%, transparent 25%), linear-gradient(-45deg, var(--check-a) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--check-a) 75%), linear-gradient(-45deg, transparent 75%, var(--check-a) 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px}#shell{width:var(--panel-width);background-color:var(--bg-panel);border-left:1px solid var(--border);z-index:10;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:hidden}.about-panel{z-index:14;overscroll-behavior:contain;padding:12dvh var(--space-4);pointer-events:none;opacity:0;position:fixed;inset:0;overflow-y:auto}.about-panel--open{pointer-events:auto}.about-panel__content{max-width:70dvw;font-family:var(--font-ui);color:#fff;padding-block-end:12dvh;font-size:5dvw;font-weight:600;line-height:1.2}.about-panel__content p{text-wrap:pretty;margin:0 0 1em}.about-panel__content p:last-child{margin-bottom:0}.about-panel__content a{color:#fff;text-underline-offset:3px;text-decoration:underline;transition:color .25s,opacity .2s}.about-panel__content a:hover{opacity:.6}.about-panel__content a:focus-visible{outline-offset:2px;outline:2px solid}#canvas-root,#shader-bg{transition:opacity .3s}body.about-open #canvas-root,body.about-open #shader-bg{opacity:0}body.about-open .about-panel{background-color:#000}#logo-mark,#shell,#canvas-footer,#floating-toolbar,#guide-toolbar{transition:opacity .3s}body.about-open #logo-mark,body.about-open #shell,body.about-open #canvas-footer,body.about-open #floating-toolbar,body.about-open #guide-toolbar{opacity:0;pointer-events:none}#floating-toolbar{bottom:var(--space-5);left:0;right:var(--panel-width);z-index:15;pointer-events:none;justify-content:center;display:flex;position:fixed}.tb-group{-webkit-backdrop-filter:blur(14px);pointer-events:auto;background:#141414d9;border:1px solid #ffffff14;border-radius:12px;align-items:stretch;gap:4px;padding:4px;display:flex;box-shadow:0 2px 8px #0000002e,0 0 0 1px #0000000a}.tb-btn{min-width:32px;font-family:var(--font-ui);font-size:var(--t-label);color:#ffffffb3;cursor:pointer;transition:color var(--duration-fast) ease, background var(--duration-fast) ease;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;margin:0;padding:8px 12px;font-weight:500;display:inline-flex}.tb-btn:hover{color:#fff;background:#ffffff0f}.tb-btn--active{color:#fff;background:#ffffff1f}.tb-btn--accent{color:#111;background:#fff}.tb-btn--accent:hover{opacity:.85;color:#000;background:#fff}.tb-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tb-popout{position:relative}.tb-popout__trigger,.tb-popout__item{text-align:center;justify-content:center;width:72px}.tb-popout__menu{-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;background:#141414eb;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:4px;min-width:100%;padding:4px;transition:opacity .12s,transform .12s;display:flex;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)translateY(4px);box-shadow:0 4px 12px #00000040}.tb-popout--open .tb-popout__menu{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}.tb-popout__item{width:100%;font-family:var(--font-ui);font-size:var(--t-label);color:#ffffffb3;cursor:pointer;transition:color var(--duration-fast) ease, background var(--duration-fast) ease;background:0 0;border:none;border-radius:8px;padding:8px 12px;font-weight:500;display:block}.tb-popout__item:hover{color:#fff;background:#ffffff14}.tb-popout__item--active{color:#fff;background:#ffffff24}.tb-popout__item:focus-visible{outline:2px solid var(--accent);outline-offset:1px}#guide-overlay{z-index:5;pointer-events:none;mix-blend-mode:difference;transition:right .3s;position:fixed;inset:0 280px 0 0}#guide-overlay.guide--on:before,#guide-overlay.guide--on:after{content:"";background:#ffffff4d;position:absolute}#guide-overlay.guide--on:before{width:1px;height:24px;top:calc(50% - 12px);left:50%}#guide-overlay.guide--on:after{width:24px;height:1px;top:50%;left:calc(50% - 12px)}#guide-overlay.guide--on{background:linear-gradient(90deg,#0000 calc(33.3333% - .5px),#ffffff40 calc(33.3333% - .5px) calc(33.3333% + .5px),#0000 calc(33.3333% + .5px) calc(66.6667% - .5px),#ffffff40 calc(66.6667% - .5px) calc(66.6667% + .5px),#0000 calc(66.6667% + .5px)),linear-gradient(#0000 calc(33.3333% - .5px),#ffffff40 calc(33.3333% - .5px) calc(33.3333% + .5px),#0000 calc(33.3333% + .5px) calc(66.6667% - .5px),#ffffff40 calc(66.6667% - .5px) calc(66.6667% + .5px),#0000 calc(66.6667% + .5px))}.loading-bar{--loading-color:#fff;background:var(--loading-color);z-index:10;opacity:1;border-radius:1px;width:40px;height:2px;transition:opacity .4s ease-out;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.loading-bar:after{content:"";background:linear-gradient(90deg,#0000,#ffffff80,#0000);animation:1.2s ease-in-out infinite loading-shimmer;position:absolute;inset:0}.loading-bar--hidden{opacity:0;pointer-events:none}@keyframes loading-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.hotspot{pointer-events:auto;opacity:0;z-index:2;width:0;height:0;transition:opacity .3s ease-out;position:absolute}.hotspot-leader-label{font-family:var(--font-ui);font-size:var(--t-label);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:2;padding:5px 9px;font-weight:500;line-height:1;transition:opacity .3s ease-out;position:absolute;transform:translate(-50%,-50%)}.hotspot-leader-svg{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hotspot-leader{fill:none;stroke-width:1px;shape-rendering:crispedges;opacity:0;pointer-events:none;transition:opacity .2s ease-out}body.labels-off .hotspot-leader,body.labels-off .hotspot-leader-label{display:none}.hotspot__ring{border:1px solid var(--dot-color,#ffffffd9);pointer-events:none;border-radius:50%;width:52px;height:52px;transition:opacity .12s ease-out;position:absolute;top:-26px;left:-26px}.hotspot__pill{background:var(--dot-color,#ffffffd9);border:var(--dot-border,1px solid #0000001f);cursor:pointer;white-space:nowrap;border-radius:9999px;align-items:center;width:12px;height:12px;transition:width .16s cubic-bezier(.2,0,0,1),height .12s cubic-bezier(.2,0,0,1),top .12s cubic-bezier(.2,0,0,1),left .12s cubic-bezier(.2,0,0,1);display:flex;position:absolute;top:-6px;left:-6px;overflow:hidden}.hotspot__pill--pulsing{animation:.2s cubic-bezier(.2,0,0,1) forwards pill-pulse}.hotspot__pill--expanded{width:var(--label-w,100px);height:32px;top:-16px;left:calc(var(--label-w,100px) / -2)}.hotspot__pill--open{width:var(--open-w,220px);height:32px;top:-16px;left:calc(var(--open-w,220px) / -2)}@keyframes pill-pulse{0%{width:12px;height:12px;top:-6px;left:-6px}40%{width:32px;height:32px;top:-16px;left:-16px}to{width:var(--label-w,100px);height:32px;top:-16px;left:calc(var(--label-w,100px) / -2)}}.hotspot__pill-inner{align-items:center;width:100%;padding:0 10px;display:flex}.hotspot__label{font-size:var(--t-label);color:var(--dot-label-color,#fff);opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:opacity 60ms 40ms}.hotspot__pill .ctrl__range{background:linear-gradient(to right, var(--dot-label-color,#fff) var(--fill,0%), var(--dot-track-color,#fff3) var(--fill,0%))}.hotspot__pill .ctrl__range::-webkit-slider-thumb{background:var(--dot-label-color,#fff);border-color:var(--dot-color,#ffffffd9)}.hotspot__pill .ctrl__range::-moz-range-thumb{background:var(--dot-label-color,#fff);border-color:var(--dot-color,#ffffffd9)}.hotspot__caret{color:var(--dot-label-color,#fff);opacity:0;pointer-events:none;-webkit-user-select:none;user-select:none;flex-shrink:0;margin-left:3px;font-size:13px;line-height:1;transition:opacity 60ms 40ms}.hotspot__pill--pulsing .hotspot__label,.hotspot__pill--expanded .hotspot__label,.hotspot__pill--open .hotspot__label,.hotspot__pill--pulsing .hotspot__caret,.hotspot__pill--expanded .hotspot__caret,.hotspot__pill--open .hotspot__caret{display:none}.hotspot__track{opacity:0;pointer-events:none;flex:1;align-items:center;min-width:0;padding-left:0;transition:opacity .1s 60ms;display:flex}.hotspot__pill--open .hotspot__track{opacity:1;pointer-events:auto}.hotspot__track .ctrl__range{width:100%;min-width:60px}.hotspot__pill--expanded~.hotspot__ring,.hotspot__pill--pulsing~.hotspot__ring,.hotspot__pill--open~.hotspot__ring{opacity:0}.hotspot__pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hotspot__rotate{background:var(--dot-color,#ffffffd9);border:var(--dot-border,1px solid #0000001f);width:32px;height:32px;color:var(--dot-label-color,#fff);cursor:pointer;border-radius:9999px;position:absolute;top:-6px;left:-6px}.hotspot__rotate:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#logo-mark{top:var(--space-2);left:var(--space-2);z-index:15;pointer-events:none;align-items:center;gap:var(--space-2);display:flex;position:fixed}#logo-mark .logo-svg{width:120px;height:auto}#canvas-footer{--footer-fg:#0009;--footer-fg-hover:#000000e6;bottom:var(--space-2);left:var(--space-2);right:calc(var(--panel-width) + var(--space-4));z-index:15;justify-content:space-between;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--t-body);color:var(--footer-fg);pointer-events:none;font-weight:500;display:flex;position:fixed}#canvas-footer>*{pointer-events:auto}#canvas-footer a,#canvas-footer button{font:inherit;color:inherit;cursor:pointer;transition:color var(--duration-fast) ease;background:0 0;border:none;margin:0;padding:0;text-decoration:none}#canvas-footer a:hover,#canvas-footer button:hover{color:var(--footer-fg-hover)}#canvas-footer a:focus-visible,#canvas-footer button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}#mobile-block{display:none}@media (width<=1024px){body>:not(#mobile-block):not(script){display:none!important}body{background-color:var(--bg-panel);overflow:auto;opacity:1!important}#mobile-block{z-index:100;background-color:var(--bg-panel);color:var(--text-primary);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-block__inner{align-items:center;gap:var(--space-3);text-align:center;flex-direction:column;max-width:32rem;display:flex}.mobile-block__logo{color:var(--text-primary);flex-shrink:0;margin-block-end:var(--space-2)}.mobile-block__title{font-family:var(--font-ui);letter-spacing:-.01em;color:var(--text-primary);margin:0;font-size:clamp(28px,7vw,44px);font-weight:600;line-height:1.1}.mobile-block__body{font-family:var(--font-ui);color:var(--text-secondary);text-wrap:pretty;margin:0;font-size:clamp(15px,4vw,18px);font-weight:400;line-height:1.5}.mobile-block__body--meta{color:var(--text-label);font-size:clamp(13px,3.6vw,15px)}.mobile-block__body a{color:var(--text-primary);text-underline-offset:3px;text-decoration:underline}}.story-playing #shell,.story-playing #logo-mark,.story-playing .about-btn,.story-playing #floating-toolbar,.story-playing #canvas-footer,.story-playing #camera-gizmo-overlay,.story-playing #guide-overlay,.story-playing .guide-btn,.story-playing .shell-trigger,.story-playing #shell-trigger__outer,.story-playing #shell-trigger__inner{display:none!important}.story-playing #logo-mark.logo-mark--revealed{display:flex!important}.story-playing #canvas-footer.canvas-footer--revealed{right:var(--space-2);display:flex!important}.story-playing #canvas-root,.story-playing #shader-bg{right:0}.story-playing{background:#fff}.story-wipe{z-index:40;pointer-events:none;--wipe:0%;-webkit-mask-image:linear-gradient(to right, transparent 0%, transparent calc(var(--wipe) - 4%), black calc(var(--wipe) + 4%), black 100%);-webkit-mask-image:linear-gradient(to right, transparent 0%, transparent calc(var(--wipe) - 4%), black calc(var(--wipe) + 4%), black 100%);mask-image:linear-gradient(to right, transparent 0%, transparent calc(var(--wipe) - 4%), black calc(var(--wipe) + 4%), black 100%);background:#fff;position:fixed;inset:0}.story-text{z-index:5;pointer-events:none;opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:clamp(80px,15vh,200px);display:flex;position:fixed;inset:0}.story-text__line{text-align:center;font-size:clamp(2.5rem,5vw,60px);line-height:1.1;display:block}.story-text__attr{font-size:clamp(1.2rem,2.5vw,32px)}.story-text__clip{vertical-align:bottom;padding-bottom:.1em;font-size:clamp(2.5rem,5vw,60px);display:inline-block;overflow:hidden}.story-text__clip--sm{font-size:clamp(1.2rem,2.5vw,32px)}.story-text__clip--body{font-size:var(--t-body,16px)}.story-text__line--body{text-align:center;text-wrap:balance;max-width:70ch;margin:0 auto;font-size:18px;line-height:1.5;display:block}.story-text__line--body .story-text__clip{padding-bottom:.05em;font-size:18px}.story-text__word{font-family:var(--font-ui);font-size:inherit;color:#000;letter-spacing:-.03em;will-change:transform, opacity;font-weight:300;display:inline-block}.story-text__attr .story-text__word{color:#969698;letter-spacing:-.01em;font-weight:400}.story-cta-btn{z-index:200;color:#fff;font-family:var(--font-ui);cursor:pointer;pointer-events:auto;background:#000;border:none;border-radius:100px;padding:16px 44px;font-size:15px;font-weight:500;transition:transform .2s;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 2px 12px #ffffff4d,0 0 50px #ffffff14}.story-cta-btn:hover{transform:translate(-50%,-50%)scale(1.04)}.story-cta-btn:focus-visible{outline-offset:4px;outline:2px solid #000}.story-cta-btn--final{pointer-events:auto;margin-top:48px;position:relative;top:auto;left:auto;transform:none}.story-cta-btn--final:hover{transform:scale(1.04)}.story-text--final{justify-content:center;align-items:center;gap:0;height:100%;padding-top:30vh;inset:0}@media (prefers-reduced-motion:reduce){.story-text__word{transition:none!important}}
