@font-face{font-family:Crimson TGH;font-style:normal;font-weight:400;src:url(/assets/fonts/crimson-text-400.woff2) format("woff2")}@font-face{font-family:Crimson TGH;font-style:normal;font-weight:700;src:url(/assets/fonts/crimson-text-700.woff2) format("woff2")}@font-face{font-family:Figtree TGH;font-style:normal;font-weight:400;src:url(/assets/fonts/figtree-400.woff2) format("woff2")}@font-face{font-family:Figtree TGH;font-style:normal;font-weight:700;src:url(/assets/fonts/figtree-700.woff2) format("woff2")}:root{--font-family-display: "Crimson TGH", Georgia, serif;--font-family-ui: "Figtree TGH", Verdana, sans-serif;--font-weight-regular: 400;--font-weight-bold: 700;--font-size-fine: .6875rem;--font-size-control: .8125rem;--font-size-label: .9rem;--font-size-copy: .95rem;--font-size-body: 1rem;--color-canvas: #f8f2e8;--color-paper: #fffaf1;--color-paper-bright: #fffdf7;--color-paper-soft: #f7f1e7;--color-paper-image: #f7efe1;--color-paper-deep: #f6eddd;--color-ink: #3b2a1e;--color-ink-strong: #17120d;--color-ink-muted: #59442e;--color-ink-action: #4d3826;--color-ink-control: #5b4633;--color-teal: #294740;--color-rust: #9a472f;--color-inverse: #fffaf0;--color-black: #000;--color-control: #704c1c;--color-border-subtle: rgba(115, 85, 44, .16);--color-border: rgba(115, 85, 44, .34);--color-surface-edge: rgba(255, 255, 255, .68);--color-surface-inner-edge: rgba(125, 91, 48, .12);--color-hover-wash: rgba(112, 76, 28, .1);--color-pill-border: rgba(80, 62, 43, .16);--color-inverse-muted: rgba(255, 253, 247, .78);--color-surface-highlight: rgba(255, 255, 255, .58);--color-surface-raised-edge: rgba(255, 255, 255, .72);--color-selected-highlight: rgba(255, 255, 255, .2);--surface-floating: rgba(250, 246, 237, .78);--background-selected: linear-gradient(180deg, rgba(54, 88, 80, .98), rgba(34, 66, 64, .98)), var(--color-teal);--shadow-floating: 0 14px 28px rgba(52, 36, 18, .2);--radius-sm: 6px;--radius-md: 8px;--radius-pill: 999px;--radius-circle: 50%;--focus-ring: 3px solid rgba(23, 67, 75, .45);--blur-soft: 10px;--duration-fast: .16s;--duration-reveal: .18s;--duration-slow: .5s;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box}[hidden]{display:none!important}button,input,select,textarea{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;min-width:0;padding:0 14px;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-ink-action);font-family:var(--font-family-ui);font-size:var(--font-size-body);font-weight:var(--font-weight-bold);line-height:1;text-align:center;text-decoration:none;cursor:pointer;touch-action:manipulation;transition:background-color var(--duration-fast) ease,border-color var(--duration-fast) ease,color var(--duration-fast) ease,transform .14s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:var(--focus-ring);outline-offset:0}.btn:disabled{cursor:default;opacity:.5;transform:none}.btn-primary{border-color:#86571557;background:linear-gradient(#d2a042,#a76e19),#b47a24;color:var(--color-paper);box-shadow:0 1px #ffffff42 inset,0 8px 16px #51320e33}.btn-primary:hover:not(:disabled){background:linear-gradient(#dbab50,#b7781e),#bd8128}.btn-display{font:var(--font-weight-bold) 1.28rem/1 var(--font-family-display)}.btn-secondary{border-color:#704c1c57;background:var(--color-paper);color:var(--color-ink-action)}.btn-secondary:hover:not(:disabled){background:#f8eedf}.btn-floating{border:0;background:linear-gradient(#fbf8ef,#efe4d1),var(--color-paper-deep);color:var(--color-control);box-shadow:0 0 0 2px var(--color-surface-highlight) inset,0 5px 14px #46311929}.btn-floating:hover:not(:disabled){background:linear-gradient(#fffaf2,#f4e8d5),var(--color-paper-deep)}.btn-overlay{position:absolute}.btn-ghost{border-color:transparent;background:transparent;box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--color-hover-wash)}.btn-inverse{color:var(--color-inverse-muted)}.btn-ghost.btn-inverse:hover:not(:disabled){background:transparent;color:var(--color-paper-bright)}.btn-icon{flex:0 0 auto;padding:0}.btn-round{border-radius:var(--radius-circle)}.btn-pill{border-radius:var(--radius-pill)}.btn-sm{min-height:34px;padding-right:12px;padding-left:12px;font-size:var(--font-size-control)}.btn-icon.btn-sm{width:34px;height:34px}.btn-md{min-height:42px}.btn-icon.btn-md{width:42px;height:42px}.btn-lg{min-height:52px}.btn-icon.btn-lg{width:52px;height:52px}.btn-block{width:100%}.btn-group{display:grid;grid-template-columns:minmax(0,1fr);gap:9px;width:100%}.btn-group-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.brand-logo{display:block;width:180px;max-width:calc(100vw - 48px);height:auto}.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-pill)}.badge{height:22px;border:1px solid var(--color-pill-border);background:#fff;font-family:var(--font-family-ui);font-size:var(--font-size-fine);font-weight:var(--font-weight-bold);line-height:1;box-shadow:0 3px 8px #261b122e;pointer-events:none}.badge-danger{min-width:20px;height:20px;padding:0 3px;border:2px solid var(--color-inverse);background:#c83f38;color:#fff;box-shadow:0 1px 0 var(--color-selected-highlight) inset,0 2px 5px #581b1652;font-variant-numeric:tabular-nums}.badge-card{position:absolute;z-index:4}.chip{flex:0 0 auto;min-height:35px;padding:0 17px;border-color:var(--color-border);border-radius:var(--radius-pill);background:linear-gradient(180deg,#fffdf7f0,#f4ead8e0),#f9f2e5;color:#5f4527;font-size:var(--font-size-control);letter-spacing:.035em;white-space:nowrap;box-shadow:0 1px #ffffffc7 inset,0 2px 5px #2d20131f;user-select:none;-webkit-user-select:none}.chip:hover:not(:disabled){border-color:#2a4c488c;color:var(--color-teal)}.chip.is-selected,.chip.is-selected:hover:not(:disabled){border-color:var(--color-teal);background:var(--background-selected);color:var(--color-inverse);box-shadow:0 1px #ffffff26 inset,0 2px 5px #1f393733}.text-link{display:inline-flex;align-items:center;justify-content:center;color:var(--color-ink);font-family:var(--font-family-ui);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);line-height:1.2}.text-link:hover,.text-link:focus-visible{color:var(--color-rust);outline:none}.text-link-muted{color:#3b2a1e8f;text-decoration:none}.text-link-muted:hover{text-decoration-line:underline}.text-link-accent{color:var(--color-rust);text-underline-offset:.16em}.text-link-sm{font-size:var(--font-size-fine);text-underline-offset:3px}.menu-item{display:block;width:100%;min-height:42px;padding:0 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink);font:var(--font-weight-bold) var(--font-size-copy)/1 var(--font-family-ui);text-align:left;cursor:pointer}.menu-item:hover,.menu-item:focus-visible{background:var(--color-hover-wash);outline:0}.segmented-control{--segmented-control-highlight-width: 0px;--segmented-control-highlight-x: 0px;position:relative;display:flex;align-items:center;justify-content:center;gap:0;width:max-content;min-width:0;margin-right:auto;margin-left:auto;padding:4px;border:1px solid rgba(100,73,39,.28);border-radius:var(--radius-pill);background:linear-gradient(180deg,#d2c2a78c,#efe5d38a);box-shadow:0 2px 5px #45301933 inset,0 -1px #fff9 inset,0 1px 0 var(--color-surface-raised-edge)}.segmented-control-highlight{position:absolute;z-index:0;top:4px;bottom:4px;left:0;width:var(--segmented-control-highlight-width);border-radius:var(--radius-pill);background:var(--background-selected);box-shadow:0 1px #ffffff29 inset,0 2px 5px #1f393738;transform:translate3d(var(--segmented-control-highlight-x),0,0);pointer-events:none}.segmented-control.is-ready .segmented-control-highlight{transition:width .24s var(--ease-out),transform .24s var(--ease-out)}.segmented-control-item{position:relative;z-index:1;min-height:42px;padding-right:17px;padding-left:17px;border:0;border-radius:var(--radius-pill);background:transparent;box-shadow:none;font-size:var(--font-size-label)}.segmented-control-item:hover:not(:disabled),.segmented-control-item.is-selected,.segmented-control-item.is-selected:hover:not(:disabled){border:0;background:transparent;box-shadow:none;color:var(--color-inverse);transform:none}.slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:32px;margin:-4px 0;border:0;background:transparent;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.slider:focus,.slider:active{outline:none;background:transparent}.slider::-moz-focus-outer{border:0}.slider::-webkit-slider-runnable-track{height:8px;border:1px solid rgba(112,76,28,.24);border-radius:var(--radius-pill);background:#e4d6c0;box-shadow:0 1px 2px #3929181a inset}.slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:26px;height:26px;margin-top:-10px;border:2px solid var(--color-paper);border-radius:var(--radius-circle);background:var(--color-control);box-shadow:0 0 0 1px #4f321142,0 4px 9px #39291833}.slider::-moz-range-track{height:8px;border:1px solid rgba(112,76,28,.24);border-radius:var(--radius-pill);background:#e4d6c0;box-shadow:0 1px 2px #3929181a inset}.slider::-moz-range-thumb{width:22px;height:22px;border:2px solid var(--color-paper);border-radius:var(--radius-circle);background:var(--color-control);box-shadow:0 0 0 1px #4f321142,0 4px 9px #39291833}.dialog-title{margin:0;color:#2f241b;font-family:var(--font-family-ui);font-size:1.45rem;font-weight:var(--font-weight-bold);line-height:1.1;text-align:center}.modal-form{display:grid;gap:18px;padding:22px}html,body{width:100%;min-height:100%;margin:0;overflow:visible;background:var(--color-canvas);color:var(--color-ink)}body{touch-action:auto;font-family:var(--font-family-display);user-select:none;-webkit-user-select:none}html.is-playing,html.is-playing body{height:100%;overflow:hidden}html.is-playing body{touch-action:none}html.is-playing .app-shell{position:fixed;top:0;right:0;bottom:0;left:0;height:100vh;height:100dvh}.scene-menu{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:16px;width:100%;min-height:100vh;min-height:100dvh;padding:16px 12px;overflow:visible}.scene-menu:is([data-page=gallery],[data-page=library]){align-content:start;grid-template-rows:auto auto;max-width:1024px;height:auto;padding-bottom:calc(104px + env(safe-area-inset-bottom));margin-right:auto;margin-left:auto;overflow:visible}.scene-menu[data-page=gallery].has-gallery-cover{position:relative;padding-top:0}.scene-menu[data-page=gallery].has-gallery-cover .gallery-cover{height:clamp(150px,calc(72.5vh - 90px),345px);height:clamp(150px,calc(72.5dvh - 90px),345px)}.gallery-cover{position:relative;z-index:0;justify-self:center;width:calc(100% + 24px);height:345px;margin-right:-12px;margin-left:-12px;overflow:hidden;isolation:isolate}.gallery-cover-artwork{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#eee6d8}.gallery-cover-image{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;object-fit:cover;object-position:center;user-select:none;-webkit-user-select:none}.gallery-cover-mist{position:absolute;z-index:2;inset:auto 0 0;width:100%;height:250px;background:linear-gradient(180deg,rgba(0,0,0,0) 0%,rgba(186,182,174,.754808) 55.77%,var(--color-paper-soft) 100%);pointer-events:none}.gallery-cover-title,.scene-deeplink-title{margin:0;color:var(--color-ink-strong);font-family:var(--font-family-display);font-size:clamp(2.35rem,10.8vw,2.75rem);font-weight:var(--font-weight-regular);letter-spacing:-.04em;line-height:.92;text-shadow:0 0 6px rgba(247,241,231,.5);white-space:nowrap}.gallery-cover-title{position:absolute;z-index:3;right:12px;bottom:80px;left:12px;opacity:1;text-align:center}.gallery-cover-chrome{display:grid;justify-items:center;justify-self:center;width:100%;min-width:0}.scene-menu.has-gallery-cover .gallery-cover-chrome{position:absolute;z-index:4;top:clamp(88px,calc(72.5vh - 152px),283px);top:clamp(88px,calc(72.5dvh - 152px),283px);right:0;left:0}.scene-menu.has-gallery-cover .menu-logo{transform:translateY(-6px)}.gallery-cover-privacy{display:none;min-height:0;overflow:hidden;color:var(--color-ink-strong);font-size:.625rem;letter-spacing:.01em;line-height:24px}.scene-menu.has-gallery-cover .gallery-cover-privacy{position:absolute;top:44px;right:0;left:0;display:inline-flex;width:max-content;max-height:24px;margin-right:auto;margin-left:auto;opacity:1}.scene-menu[data-page=deeplink]{display:block;height:100vh;height:100dvh;padding:0;overflow:hidden}.scene-deeplink{position:relative;width:min(100%,752px);height:100%;margin-right:auto;margin-left:auto;overflow:hidden;isolation:isolate;background:var(--color-paper-soft)}.scene-deeplink-artwork{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:hidden;background:inherit}.scene-deeplink-image{display:block;width:100%;max-width:none;height:100%;max-height:none;object-fit:cover;object-position:center top;-webkit-mask-image:linear-gradient(180deg,var(--color-black) 0%,var(--color-black) 70%,rgba(0,0,0,.72) 84%,transparent 100%);mask-image:linear-gradient(180deg,var(--color-black) 0%,var(--color-black) 70%,rgba(0,0,0,.72) 84%,transparent 100%);user-select:none;-webkit-user-select:none}.scene-deeplink-mist{display:none}.scene-deeplink-panel{position:absolute;z-index:2;right:0;bottom:calc(16px + env(safe-area-inset-bottom));left:0;display:grid;justify-items:center;gap:6px;padding-right:20px;padding-left:20px;isolation:isolate}.scene-deeplink-panel:before{content:"";position:absolute;z-index:-1;top:-160px;right:0;bottom:calc(-16px - env(safe-area-inset-bottom));left:0;background:linear-gradient(180deg,rgba(247,241,231,0) 0%,rgba(247,241,231,.18) 22%,rgba(247,241,231,.78) 50%,rgba(247,241,231,.97) 72%,var(--color-paper-soft) 100%);pointer-events:none}.scene-deeplink-content{display:grid;width:min(100%,440px);justify-items:center;gap:10px;text-align:center}.scene-deeplink-logo{margin-top:0;margin-bottom:4px}.scene-deeplink-gallery{min-height:38px;padding-right:10px;padding-left:10px}.scene-deeplink-privacy{width:max-content;min-height:32px;margin:0;padding-right:8px;padding-left:8px}@media(max-width:899px)and (orientation:landscape),(min-aspect-ratio:2 / 1)and (orientation:landscape){.scene-deeplink{display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,42vw,340px);justify-content:center}.scene-deeplink-artwork{position:relative;inset:auto;display:grid;width:fit-content;height:100%;padding:20px;overflow:visible;place-items:center}.scene-deeplink-image{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);margin-right:0;margin-left:0;object-fit:contain;border:1px solid rgba(91,70,46,.2);border-radius:var(--radius-md);box-shadow:0 0 5px #32241624,0 3px 12px #3224162e;-webkit-mask-image:none;mask-image:none}.scene-deeplink-panel{position:static;z-index:auto;inset:auto;align-content:center;min-width:0;padding:clamp(16px,3vw,32px);isolation:auto}.scene-deeplink-panel:before{display:none}.scene-deeplink-content{align-self:center;width:min(100%,300px)}}@media(max-width:899px)and (orientation:landscape)and (max-height:620px),(min-aspect-ratio:2 / 1)and (orientation:landscape)and (max-height:620px){.scene-deeplink-panel{padding:16px 20px}.scene-deeplink-content{gap:6px}.scene-deeplink-title{font-size:clamp(2rem,5vw,2.5rem)}.scene-deeplink-logo{width:140px;margin-bottom:0}.scene-deeplink-gallery{min-height:30px;font-size:var(--font-size-control)}}.menu-header{display:grid;justify-items:center;justify-self:center;width:100%;max-width:760px}.scene-not-found{display:grid;align-content:center;justify-items:center;gap:20px;min-height:0;padding:24px;text-align:center}.scene-not-found-title{max-width:560px;margin:0;color:#244750;font-size:clamp(1.8rem,7vw,2.9rem);font-weight:var(--font-weight-regular);line-height:1}.scene-not-found-copy{color:#5a4634;font-size:var(--font-size-body)}.scene-catalog{display:grid;align-content:start;align-items:start;gap:14px;justify-self:center;width:100%;min-width:0;overflow:visible}.gallery-filter-bar{position:sticky;top:7px;z-index:20;justify-self:center;width:calc(100% + 24px);min-width:0;isolation:isolate;transform:translateZ(0);transition:opacity var(--duration-reveal) ease,transform .22s var(--ease-out)}.gallery-filter-bar:before{position:absolute;z-index:-1;top:-7px;right:0;bottom:-7px;left:0;border-bottom:1px solid var(--color-border-subtle);background:linear-gradient(180deg,#f8f2e6f7,#f4ebd9eb 72%,#f4ebd900);box-shadow:0 10px 20px #2d201314;opacity:0;content:"";pointer-events:none;transition:opacity var(--duration-fast) ease;-webkit-backdrop-filter:blur(var(--blur-soft));backdrop-filter:blur(var(--blur-soft))}.gallery-filter-bar.is-pinned:before{opacity:1}.gallery-filter-bar.is-scroll-hidden{transform:translate3d(0,calc(-100% - 12px),0);pointer-events:none}.gallery-blueprint-filter-bar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;padding-left:12px}.gallery-filter-all{position:relative;z-index:1;min-width:58px;padding-right:14px;padding-left:14px}.gallery-filter-viewport{position:relative;width:calc(100% + 37px);min-width:0;margin-left:-37px;overflow-x:auto;overflow-y:clip;overscroll-behavior-x:contain;padding-top:7px;padding-bottom:7px;scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(90deg,transparent 0,transparent 24px,var(--color-black) 42px,var(--color-black) calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,transparent 0,transparent 24px,var(--color-black) 42px,var(--color-black) calc(100% - 18px),transparent)}@media(min-width:512px){.scene-menu:is([data-page=gallery],[data-page=library]){border-right:1px solid var(--color-border-subtle);border-left:1px solid var(--color-border-subtle)}}.collection-nav{position:fixed;z-index:40;bottom:max(14px,env(safe-area-inset-bottom));left:50%;display:flex;gap:8px;padding:7px;border:1px solid var(--color-surface-highlight);border-radius:var(--radius-pill);background:#f6eee06b;box-shadow:0 1px #ffffffe0 inset,0 0 0 1px var(--color-hover-wash),0 6px 16px -8px #3e2d1a3d;opacity:1;transform:translate(-50%);visibility:visible;transition:opacity var(--duration-reveal) ease,visibility 0s linear;-webkit-backdrop-filter:blur(22px) saturate(1.28);backdrop-filter:blur(22px) saturate(1.28)}.collection-nav.is-scroll-hidden{opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--duration-reveal) ease,visibility 0s linear var(--duration-reveal)}.collection-nav-link{position:relative}.collection-nav-badge{position:absolute;z-index:2;top:-4px;right:-6px}#collection-library-link.is-progress-pulsing:after{position:absolute;top:-5px;right:-5px;bottom:-5px;left:-5px;border:3px solid rgba(197,138,54,.72);border-radius:inherit;content:"";opacity:0;pointer-events:none;transform:scale(1.55);animation:library-addition-pulse .75s ease-out 3;animation-delay:var(--duration-slow)}#collection-library-link.is-progress-pulsing .collection-nav-icon{transform-origin:center;animation:library-icon-pulse .75s ease-out 3;animation-delay:var(--duration-slow)}@keyframes library-addition-pulse{0%{opacity:.8;transform:scale(.88)}to{opacity:0;transform:scale(1.55)}}@keyframes library-icon-pulse{0%,to{transform:scale(1)}36%{transform:scale(1.06)}68%{transform:scale(.99)}}.collection-nav-link[aria-current=page],.collection-nav-link[aria-current=page]:hover{border-color:#17434bb3;background:linear-gradient(180deg,#315f5d,#214a49),#285553;color:var(--color-inverse);box-shadow:0 1px 0 var(--color-selected-highlight) inset,0 5px 13px #183b3a42}.collection-nav-icon{width:35.64px;height:35.64px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.65}.collection-nav-icon-home{transform:translateY(-1.5px)}.collection-nav-icon-library{width:38.88px;height:38.88px}.scene-library-empty{grid-column:1 / -1;justify-self:center;max-width:28rem;margin:48px 24px;color:#5a4634d1;font-size:1.15rem;line-height:1.5;text-align:center}.gallery-filter-viewport::-webkit-scrollbar{display:none}.gallery-filter-viewport.is-draggable{cursor:grab}.gallery-filter-viewport.is-dragging,.gallery-filter-viewport.is-dragging .chip{cursor:grabbing}.gallery-filter-track{display:flex;align-items:center;width:max-content}.gallery-filter-track.is-static{width:100%}.gallery-filter-track.is-static .gallery-filter-group{justify-content:center;width:100%;padding-right:8px;padding-left:8px}.gallery-filter-group{display:flex;align-items:center;flex:0 0 auto;gap:8px;padding-right:8px}.scene-catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,256px));grid-auto-rows:4px;justify-content:center;width:100%;justify-self:center;column-gap:12px;row-gap:4px}.scene-catalog-grid:not(:has(>.scene-card:nth-child(2))){grid-template-columns:minmax(0,256px)}.scene-catalog-grid:has(>.scene-card:nth-child(2)):not(:has(>.scene-card:nth-child(3))){grid-template-columns:repeat(2,minmax(0,256px))}.scene-catalog-grid:has(>.scene-card:nth-child(3)):not(:has(>.scene-card:nth-child(4))){grid-template-columns:repeat(3,minmax(0,256px))}@media(max-width:920px){.scene-catalog-grid{grid-template-columns:repeat(3,minmax(0,256px))}}@media(max-width:680px){.scene-catalog-grid,.scene-catalog-grid:has(>.scene-card:nth-child(3)):not(:has(>.scene-card:nth-child(4))){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:330px){.scene-catalog-grid,.scene-catalog-grid:has(>.scene-card:nth-child(2)):not(:has(>.scene-card:nth-child(3))),.scene-catalog-grid:has(>.scene-card:nth-child(3)):not(:has(>.scene-card:nth-child(4))){grid-template-columns:minmax(0,1fr)}}.scene-card{position:relative;display:grid;grid-template-rows:auto;align-self:start;width:100%;min-width:0;padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fffaefc2;color:var(--color-ink);font:inherit;text-align:left;box-shadow:0 12px 30px #2d201324;break-inside:avoid;cursor:pointer}.scene-daily-badge{position:absolute;top:7px;left:-4px;z-index:5;display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 10px;border-top-left-radius:4px;border-bottom-right-radius:10px;background:linear-gradient(180deg,#e1b440,#c48b18),#c48b18;color:var(--color-inverse);font-family:var(--font-family-ui);font-size:var(--font-size-control);font-weight:var(--font-weight-bold);text-transform:uppercase;box-shadow:1px 1px 8px #4a31103d;pointer-events:none}.scene-daily-icon{flex:0 0 auto;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}.scene-reward-badge{top:8px;right:8px;gap:4px;padding:0 7px;color:#04675a}.scene-reward-icon{flex:0 0 auto;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.scene-reward-count{color:var(--color-ink)}.scene-card:focus-visible{outline:var(--focus-ring);outline-offset:3px}.scene-card:hover{border-color:#1d343875}.scene-preview-frame{position:relative;display:block;min-width:0;aspect-ratio:1;overflow:hidden;background:var(--color-paper-image)}.scene-preview,.scene-preview-fill{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%;background:transparent}.scene-preview{z-index:2;object-fit:contain}.scene-preview.is-awaiting-load{opacity:0}.scene-preview.is-visible-load{animation:scene-preview-fade-in var(--duration-slow) ease both}@keyframes scene-preview-fade-in{0%{opacity:0}to{opacity:1}}.scene-preview-fill{z-index:1;pointer-events:none;object-fit:contain;opacity:0;transition:opacity var(--duration-slow) ease}.scene-preview-fill.is-loaded{opacity:1}.scene-preview-sweep{position:absolute;top:-75%;right:-75%;bottom:-75%;left:-75%;display:block;z-index:3;overflow:hidden;opacity:0;pointer-events:none;contain:paint;-webkit-mask-image:var(--gallery-fill-sweep-mask);mask-image:var(--gallery-fill-sweep-mask);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;mask-size:100% 100%;transform:translate3d(var(--gallery-fill-sweep-mask-x),var(--gallery-fill-sweep-mask-y),0)}.scene-preview-sweep-image{position:absolute;top:30%;left:30%;display:block;width:40%;height:40%;object-fit:contain;transform:translate3d(var(--gallery-fill-sweep-image-x),var(--gallery-fill-sweep-image-y),0)}.scene-preview-sweep.is-ready{animation:gallery-fill-sweep-fade-in var(--gallery-fill-sweep-fade-duration) ease both;will-change:opacity}@keyframes gallery-fill-sweep-fade-in{0%{opacity:0}to{opacity:1}}.scene-difficulty-badge{bottom:8px;left:8px;gap:5px;padding:0 8px;background:#fffdf8f0;color:var(--color-ink);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.scene-difficulty-marker{width:7px;height:7px;border-radius:var(--radius-circle);background:#5f966b}.scene-difficulty-badge.is-difficulty-1 .scene-difficulty-marker{background:#c58a36}.scene-difficulty-badge.is-difficulty-2 .scene-difficulty-marker{background:#945567}.scene-progress-badge{right:8px;bottom:8px;min-width:34px;padding:0 7px;color:var(--color-teal)}.scene-progress-badge.is-complete{width:26px;min-width:26px;height:26px;padding:0;color:#16884a}.scene-progress-check{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:3}#game-container,#overview-container{width:100%;height:100%}#game-container{position:relative}.app-shell{position:relative;display:block;width:100%;height:100%;padding:0;overflow:hidden}.game-viewport{position:absolute;top:0;right:0;bottom:0;left:0;min-width:0;min-height:0;overflow:hidden;border:0;border-radius:0;background:var(--color-canvas);user-select:none;-webkit-user-select:none}.scene-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;background:#fbf8f3;pointer-events:auto}.scene-loading-content{display:grid;justify-items:center;gap:18px;transform:translateY(-10px)}.scene-loading-spinner{width:48px;height:48px;border:3px solid rgba(126,110,94,.22);border-top-color:#b07a2f;border-radius:var(--radius-circle);animation:scene-loading-spin .82s linear infinite}.scene-loading-message{margin:0;color:var(--color-ink);font-family:var(--font-family-display);font-size:1.6rem;font-weight:var(--font-weight-bold);line-height:1}.scene-loading-status{position:absolute;right:18px;bottom:26px;left:18px;margin:0;color:var(--color-ink-muted);font-family:var(--font-family-ui);font-size:var(--font-size-fine);font-weight:var(--font-weight-bold);letter-spacing:0;line-height:1;text-align:center}@keyframes scene-loading-spin{to{transform:rotate(360deg)}}.overview-panel{position:absolute;top:14px;right:14px;z-index:3;width:min(168px,calc(100vw - 28px),calc(100vh - 120px));height:auto;aspect-ratio:1;overflow:hidden;border:1px solid var(--color-surface-edge);border-radius:var(--radius-md);background:var(--surface-floating);box-shadow:var(--shadow-floating)}.overview-panel.is-portrait{width:auto;height:min(168px,calc(100vw - 28px),calc(100vh - 120px))}.overview-panel:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:"";border-radius:inherit;box-shadow:0 0 0 1px var(--color-surface-inner-edge) inset}.overview-frame{position:relative;width:100%;height:100%}.game-bottom-controls{position:absolute;right:14px;bottom:14px;left:14px;z-index:4;display:flex;align-items:center;justify-content:center;gap:8px;pointer-events:none;opacity:1;transform:translateY(0);visibility:visible;transition:opacity .42s ease,transform .42s var(--ease-out),visibility 0s linear}.app-shell.is-completed .game-bottom-controls{opacity:0;transform:translateY(18px);visibility:hidden;transition:opacity .42s ease,transform .42s var(--ease-out),visibility 0s linear .42s}.game-hud{display:grid;grid-template-columns:minmax(48px,max-content) minmax(0,1fr) max-content;flex:1 1 auto;align-items:center;gap:12px;width:auto;min-width:0;min-height:54px;padding:6px 14px;border:1px solid var(--color-surface-edge);border-radius:var(--radius-pill);background:var(--surface-floating);box-shadow:0 0 0 1px var(--color-surface-inner-edge) inset,0 14px 28px #3424122e;pointer-events:auto}.progress-copy{min-width:48px;width:48px}.progress-percent{display:flex;align-items:baseline;color:#3b2718;font-weight:var(--font-weight-bold);line-height:1;text-shadow:0 1px 0 rgba(255,255,255,.55)}.progress-percent span:first-child{font-size:1.75rem}.progress-mark{margin-left:2px;font-size:var(--font-size-copy)}.progress-cells{margin:0;color:var(--color-ink-muted);font-size:var(--font-size-copy);line-height:1.05;text-align:right;white-space:nowrap}.progress-rail{position:relative;height:18px;min-width:0;border-radius:var(--radius-pill)}.progress-rail:before{position:absolute;top:4px;right:0;bottom:4px;left:0;content:"";border:2px solid rgba(151,118,70,.28);border-radius:var(--radius-pill);background:#fffcf5ad;box-shadow:0 1px 3px #3e2d1a29 inset,0 1px 0 var(--color-surface-raised-edge)}.progress-fill{position:absolute;top:5px;bottom:5px;left:0;width:0%;max-width:100%;border-radius:var(--radius-pill);background:linear-gradient(90deg,#9d7335,#d6b467);box-shadow:0 1px 3px #462b0e5c inset}.app-shell .btn-floating{z-index:4}.scene-home-button{top:14px;left:14px;z-index:101}.overview-toggle,.share-artwork-button{top:14px;right:14px}.scene-options-control{position:relative;flex:0 0 auto;pointer-events:auto}.scene-options-button{position:relative;color:#5f421b;font:var(--font-weight-bold) 1.28rem/1 var(--font-family-ui);letter-spacing:1px}.overview-close{top:6px;right:6px;width:28px;height:28px;background:linear-gradient(var(--color-paper),#eee1ca),var(--color-paper-deep);box-shadow:0 0 0 1px #ffffff9e inset,0 3px 9px #46311929}.overview-button-icon{width:28px;height:28px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.scene-home-button .overview-button-icon{width:35px;height:35px;stroke-width:1.65}.overview-toggle .overview-button-icon{width:34px;height:34px;stroke-width:1.45}.overview-close .overview-button-icon{width:18px;height:18px;stroke-width:2.3}.scene-options-menu{position:absolute;z-index:5;right:0;bottom:calc(100% + 10px);min-width:178px;padding:6px;border:1px solid var(--color-surface-edge);border-radius:var(--radius-md);background:#faf6edf0;box-shadow:0 0 0 1px var(--color-surface-inner-edge) inset,var(--shadow-floating)}.completion-dialog{position:fixed;z-index:2;inset:auto 0 0;width:100%;height:auto;max-width:none;max-height:100vh;max-height:100dvh;margin:0;padding:0;border:0;background:linear-gradient(180deg,#03070600,#0c151261 34%,#0c1512d1 62%,#101b18 78%,#030706);color:var(--color-paper-bright);overflow:hidden}.completion-dialog:not([hidden]){animation:completion-sheet-enter 1.44s cubic-bezier(.16,1,.3,1) both}.completion-dialog.is-closing{animation:completion-sheet-exit var(--duration-slow) cubic-bezier(.4,0,.2,1) both}.completion-dialog.is-closing .completion-content{pointer-events:none}.completion-card{position:relative;display:grid;align-content:end;justify-items:stretch;width:100%;height:auto;max-height:none;padding:74px max(20px,env(safe-area-inset-right)) max(22px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));overflow:hidden;background:transparent;text-align:center}.completion-content{display:grid;gap:24px;width:min(100%,440px);max-height:calc(100dvh - max(22px,env(safe-area-inset-bottom)) - 74px);margin-right:auto;margin-left:auto;overflow-y:auto;scrollbar-width:none}.completion-content::-webkit-scrollbar{display:none}.completion-heading{display:grid;gap:11px;justify-items:center}.completion-title{margin:0;color:var(--color-paper-bright);font-family:var(--font-family-display);font-size:clamp(2.65rem,10vw,3.65rem);font-weight:var(--font-weight-regular);letter-spacing:-.025em;line-height:.88;text-shadow:0 2px 8px rgba(0,0,0,.36)}.completion-subtitle{margin:0;color:var(--color-inverse-muted);font-family:var(--font-family-ui);font-size:var(--font-size-copy);font-weight:var(--font-weight-bold);letter-spacing:.01em;line-height:1.3;text-shadow:0 1px 5px rgba(0,0,0,.38)}.completion-action-icon{flex:0 0 auto;width:24px;height:24px;margin-right:8px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.completion-actions .btn:disabled{cursor:wait;opacity:.72}@keyframes completion-sheet-enter{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes completion-sheet-exit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(84px)}}@media(max-height:600px){.completion-heading{gap:3px}}.modal-dialog{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100vh;height:100dvh;max-height:none;margin:0;padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));border:0;background:transparent;color:var(--color-ink);overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable both-edges;touch-action:pan-y;-webkit-overflow-scrolling:touch}.modal-dialog::backdrop{background:#fffaefa8}.modal-dialog-positioner{display:flex;flex-direction:column;align-items:center;width:100%;min-height:100%;pointer-events:none}.modal-dialog-card{position:relative;flex:0 0 auto;width:min(100%,360px);margin-top:auto;margin-bottom:auto;border:1px solid rgba(125,91,48,.24);border-radius:var(--radius-md);background:#faf6edf7;box-shadow:0 18px 42px #3424123d;pointer-events:auto}.modal-dialog[open] .modal-dialog-card{animation:modal-dialog-enter var(--duration-slow) var(--ease-out) both}@keyframes modal-dialog-enter{0%{opacity:0;transform:translateY(150px)}to{opacity:1;transform:translateY(0)}}.modal-dialog-close{position:absolute;z-index:2;top:5px;right:5px;width:36px;height:36px;min-height:36px;padding:0;color:var(--color-ink-control);outline-offset:2px}.modal-dialog-close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2}.modal-dialog-sm .modal-dialog-card{width:min(100%,280px)}.modal-dialog-md .modal-dialog-card{width:min(100%,340px)}.reward-dialog-card{display:grid;grid-template-rows:auto minmax(0,1fr);width:min(100%,300px);height:420px;padding:20px;background:#f8f2e640;-webkit-backdrop-filter:blur(var(--blur-soft));backdrop-filter:blur(var(--blur-soft))}.modal-dialog[open] .reward-dialog-card{animation-duration:.75s}.reward-dialog-title{font-family:var(--font-family-display);font-size:1.75rem;font-weight:var(--font-weight-regular)}.reward-dialog-title:focus{outline:0}.reward-dialog-item{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:10px;min-height:0;text-align:center}.reward-dialog-presentation{display:grid;align-self:center;justify-items:center;gap:10px;min-height:0}.reward-dialog-preview-frame{display:inline-flex;align-items:center;justify-content:center;align-self:center;justify-self:center;max-width:100%;max-height:176px;padding:7px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fffaefe0;box-shadow:0 6px 12px #2d201329}.reward-dialog-preview{display:block;width:auto;max-width:220px;height:auto;max-height:160px;object-fit:contain;background:var(--color-paper-image)}.reward-dialog-description{min-height:20px;margin:0;padding:0 10px;border:1px solid var(--color-pill-border);color:var(--color-ink-action);font:var(--font-weight-regular) var(--font-size-fine) var(--font-family-ui)}.reward-dialog-item.is-exiting{animation:reward-item-slide-out .28s cubic-bezier(.4,0,1,1) both;pointer-events:none}.reward-dialog-item.is-entering{animation:reward-item-slide-in .36s var(--ease-out) both;pointer-events:none}@keyframes reward-item-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-28px)}}@keyframes reward-item-slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}.set-progress-heading{display:grid;gap:8px;justify-items:center}.set-progress-header{display:grid;grid-template-columns:42px minmax(0,1fr) 42px;gap:10px;align-items:center}.set-progress-header .btn-icon{touch-action:none}.set-progress-header .btn-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.2}.set-progress-value{color:var(--color-ink-control);font:var(--font-weight-bold) var(--font-size-copy)/1 var(--font-family-ui)}.set-progress-preview{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid rgba(112,76,28,.18);border-radius:var(--radius-sm);background:var(--color-canvas);box-shadow:0 1px 0 var(--color-surface-edge) inset,0 10px 20px #3a2a181f}.overview-canvas,.set-progress-preview-canvas,.game-background-canvas,.game-canvas{display:block;width:100%;height:100%;user-select:none;-webkit-user-select:none}.overview-frame>.overview-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.overview-spirit-marker{position:absolute;top:0;left:0;width:11.3px;height:11.3px;border:2.1px solid #ffffff;border-radius:var(--radius-circle);pointer-events:none;will-change:transform}#game-container>.game-background-canvas,#game-container>.game-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.game-background-canvas{z-index:0;pointer-events:none;transform-origin:0 0}#game-container>.game-canvas{z-index:1}.game-canvas{cursor:grab}.game-canvas:active{cursor:grabbing}
