/* V5: physical resting places, a clear two-stage encounter, and a central card stage. */
.home-view{min-height:480px;background:#181818;overflow:clip}
.scene-far img{object-position:center;filter:saturate(.72) hue-rotate(5deg)}
.home-support{position:absolute;pointer-events:none}
.home-support img{width:100%;height:100%;object-fit:fill}
.home-depth-group{position:absolute;inset:0;pointer-events:none}
.home-depth-group .hologram-art{mask-mode:luminance;mask-size:contain;mask-position:center;mask-repeat:no-repeat}
.depth-ginkgo{z-index:2}.depth-rose{z-index:4}.depth-lantern{z-index:6}.depth-cat{z-index:7}
.mid-tree-layer{z-index:3;opacity:1}.mid-tree-layer img{width:140%;height:100%;max-width:none;object-fit:fill;filter:brightness(.67) saturate(.6) blur(.35px);transform:translateX(var(--mid-tree-offset,0px))}
.mid-growth-layer{position:absolute;left:-6%;width:112%;bottom:-9%;height:65%;z-index:5;pointer-events:none}
.mid-growth-layer img{width:100%;height:100%;object-fit:fill;filter:brightness(.78) saturate(.72)}
.support-sign{z-index:3;clip-path:url('#inn-cords-only')}.support-lantern,.support-cat{z-index:0}.support-rose{z-index:0}
.node-autumn{z-index:4}.node-spring{z-index:4}.node-summer{z-index:6}.node-winter{z-index:8}
.node-winter .prop-art{clip-path:none}
.ginkgo-node,.ginkgo-crown{display:none}
.ginkgo-node img,.ginkgo-crown img{width:100%;height:100%;object-fit:contain;filter:brightness(.75) saturate(.85) blur(.2px)}
.ginkgo-node img{transform:scaleX(-1)}
.inn-tree{position:absolute;z-index:1;pointer-events:none}

.tree-upper,.tree-soil{position:absolute;left:0;right:0;overflow:hidden}
.tree-upper{top:0;height:64%}.tree-upper img{width:100%;height:125%;object-fit:fill}
.tree-soil{top:64%;bottom:0}.tree-soil img{position:absolute;bottom:0;width:100%;height:500%;object-fit:fill}
.support-sign{filter:brightness(.69) saturate(.66) blur(.65px)}
.support-lantern img{filter:saturate(.65) brightness(.83)}
.home-foreground{z-index:8;opacity:1}.home-foreground img{height:auto;bottom:-47vw;left:-5%;width:110%;filter:brightness(.48)}
.scene-fog{z-index:11;opacity:.28}
.ground-shadow{left:6%;right:3%;bottom:0;height:14%;background:radial-gradient(ellipse at 46% 50%,#02090af5 5%,#02070abc 27%,transparent 72%);transform:translate(4px,4px) scaleY(.48);filter:blur(1.5px)}
.node-spring .ground-shadow,.node-autumn .ground-shadow{display:none}
.physical-prop{filter:drop-shadow(5px 7px 8px #02090a77)}
.node-autumn .physical-prop{filter:url('#matte-dark-bg') brightness(.84)}
.node-spring .physical-prop{filter:brightness(.85) drop-shadow(4px 7px 3px #02070a7d)}
.node-summer .physical-prop{filter:url('#matte-dark-bg') drop-shadow(5px 8px 4px #0009)}
.support-sign .support-physical{opacity:1;transition:opacity .6s ease}
.support-hologram{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .65s ease;mask:none}
.support-hologram img{filter:grayscale(1) contrast(1.5) brightness(1.55)}
.support-hologram:after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,#9febff99 8%,#d1b3ffad 32%,#f6d2cc99 48%,#b5eddfb3 67%,#93b9ff99 88%);mix-blend-mode:color}
.support-sign.is-hologram .support-physical{opacity:1}
.support-sign.is-hologram .support-hologram{opacity:1}
.scene-dots{position:absolute;inset:0;z-index:18;pointer-events:none}.portal-anchor{z-index:15;pointer-events:auto}
.scene-dot{background:radial-gradient(circle,#11192255,transparent 70%);width:46px;height:46px}
.guide-ring{width:21px;height:21px;border-color:#f7fbffb8;box-shadow:0 2px 10px #090b12b0}.guide-ring i{inset:7px}
.guide-ring:before{animation:none;inset:-4px;border-color:#e7efff38}
.scene-guides{z-index:16}.scene-guides [data-guide]{display:none}
.scene-guides [data-panel-guide]{stroke:#eef8ffb8;stroke-width:.85;stroke-dasharray:none;filter:drop-shadow(0 2px 3px #02070bcc)}
.portal-overlays{z-index:17}.portal-info{animation:panel-arrive .42s .14s cubic-bezier(.16,1,.3,1) both}
.portal-info a{min-height:54px;padding:15px 20px;gap:18px;background:linear-gradient(115deg,#dae4f521,#b8cbe712);border:1px solid #e4efff80;box-shadow:none;backdrop-filter:blur(10px);transform:none;letter-spacing:.025em;font-size:13px}
.portal-info a:before,.portal-info a:after,.optical-edge{display:block}
.portal-info a{background:linear-gradient(115deg,#edeaff15,#c2d6ff0a 55%,#f9ebda19);backdrop-filter:blur(5px);border-color:#e9f0ff6b}
.portal-text{animation:signal-lock .5s steps(1,end) both}
.scene-hint{font-size:10px;letter-spacing:.035em;bottom:27px;color:#e7eff3b8}
.site-header{z-index:40;background:none;color:#f4f2ee;transition:color .18s ease}
body[data-view=home] .site-header{filter:none;text-shadow:none;opacity:1;visibility:visible}
.folio-intro{position:absolute;inset:0 0 auto;bottom:auto;width:100%;padding-top:91px;background:none;z-index:30;transform-origin:100% 0;transform:translateY(-110%)}
.folio-intro:before{content:'';position:absolute;inset:0 0 auto;height:91px;background:#f2f0e7}
.folio-intro.playing{animation:none}.folio-intro img{width:100%;height:auto;display:block}
body:has(.folio-intro.playing) .experience-controls button{color:#f4f2ee}
body:has(.folio-intro.playing) .scene-hint{opacity:1}
.experience-controls{gap:10px;right:3.2%;bottom:20px}
.experience-controls #motion-button,.experience-controls #sound-button{width:38px;height:38px;min-width:38px;min-height:38px;padding:9px;display:grid;place-items:center}
.experience-controls #motion-button svg,.experience-controls #sound-button svg{width:19px;height:19px;stroke-width:1.35}
.experience-controls #motion-button span,.experience-controls #sound-button span{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}
.category-filter{display:flex;flex-wrap:nowrap;gap:0;width:100%;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#c9d0db55 transparent;border-bottom:1px solid #d2d6df24;padding:0 0 2px}
.category-filter button{flex:0 0 auto;white-space:nowrap;padding:12px 22px;margin:0;border:0;position:relative;color:#b8bdc8}
.category-filter button:first-child{padding-left:0}.category-filter button:last-child{padding-right:0}
.category-filter button[aria-pressed=true]{color:#f8f2e7;border:0}
.category-filter button[aria-pressed=true]:after{content:'';position:absolute;left:22px;right:22px;bottom:0;height:2px;background:#e6d6bd}
.category-filter button:first-child[aria-pressed=true]:after{left:0}.category-filter button:last-child[aria-pressed=true]:after{right:0}

/* Semantic cutouts each have their own depth; the architecture itself remains intact. */
.semantic-subjects{position:absolute;inset:0;z-index:2;pointer-events:none}
.scene-v5-object{position:absolute;pointer-events:none;isolation:isolate}
.scene-v5-object img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(9px 16px 17px #0b0e1633)}
.scene-v5-object[data-object=summer-fire] img{filter:drop-shadow(0 0 17px #f3b76755)}
.scene-v5-object[data-object=summer-book] img{filter:drop-shadow(5px 7px 5px #020b1859)}
.scene-v5-object[data-object=summer-lantern] img{filter:url('#matte-dark-bg') drop-shadow(4px 6px 5px #020b1859)}
.scene-v5-object[data-object=winter-cat] img{filter:drop-shadow(7px 9px 5px #332b2a33)}
/* Snow contact belongs to the stump and follows its camera transform. */
.scene-v5-object[data-object=winter-stump]>img{position:relative;z-index:1;filter:none;mask-image:linear-gradient(to bottom,#000 0%,#000 98%,#000a 100%)}
.scene-v5-object[data-object=winter-stump]::before{content:'';position:absolute;z-index:0;left:2%;bottom:-3%;width:106%;height:23%;border-radius:50%;background:radial-gradient(ellipse at 46% 51%,#35404d99 0%,#47515a6b 30%,#626b7133 54%,transparent 73%);filter:blur(3px)}
.scene-v5-object[data-object=winter-stump]::after{content:'';position:absolute;z-index:2;left:5%;bottom:-1%;width:90%;height:3%;border-radius:50%;background:radial-gradient(ellipse,#e3e7e847,transparent 73%);filter:blur(2px)}
.scene-v5-object[data-object=winter-cat]>.winter-coin-face{position:absolute;left:66.28%;top:55.65%;width:13.58%;height:17.74%;border-radius:50%;background:url('assets/scene/coin-avatar.webp') center/100% 100% no-repeat;box-shadow:inset 0 0 2px #3e2d1466;pointer-events:none}
body[data-view=winter] .season-works{position:relative;z-index:5}

.scene-v5-object[data-object=inn-building] img{filter:drop-shadow(14px 18px 15px #030c1461)}
.immersive-environment .semantic-foreground{z-index:4}
.immersive-environment .environment-air{z-index:3}
body[data-view=summer] .season-layout{padding-bottom:230px}
body[data-view=winter] .season-layout,body[data-view=spring] .season-layout{grid-template-columns:.62fr 1.38fr;gap:3.5vw;align-items:start}
body[data-view=winter] .season-copy{max-width:370px}.season-view:has(.focus-deck){padding-left:5%;padding-right:5%}
body[data-view=winter] .season-works,body[data-view=spring] .season-works{padding:0}
body[data-view=winter] .season-shade{background:linear-gradient(90deg,#fff9e62e,transparent 68%)}
body[data-view=winter] .environment-distance img{object-position:center}
h1[tabindex="-1"]:focus{outline:none}

@media(max-aspect-ratio:17/20){
 .mid-tree-layer{display:none}
 .tree-upper{height:52%}.tree-soil{display:none}
 .mid-growth-layer{left:-45%;width:190%;height:95%;bottom:-6%}
 .home-view{min-height:580px}
 .folio-intro{padding-top:82px}
 .folio-intro:before{height:82px}
 .scene-hint{left:20px;bottom:22px;font-size:9px}
 .experience-controls,body[data-view=home] .experience-controls{right:12px;bottom:11px;gap:5px}
 .experience-controls #motion-button svg,.experience-controls #sound-button svg{width:19px;height:19px}
 .portal-info a{font-size:12px;min-height:48px;padding:13px 16px;gap:13px}
 .home-foreground img{width:150%;height:auto;bottom:-48vw;left:-25%}
 .season-view{padding:110px 6% 90px}
 .season-layout{display:flex;flex-direction:column;align-items:stretch;gap:34px}
 .season-view:has(.focus-deck){padding-left:4%;padding-right:4%}
 body[data-view=winter] .season-layout,body[data-view=spring] .season-layout{display:flex;gap:0;padding:0}
 body[data-view=winter] .season-copy,body[data-view=spring] .season-copy{max-width:100%;padding:0 2%!important;min-height:0}
 body[data-view=winter] .season-layout{padding-bottom:calc(66vw + 44px)}
 body[data-view=winter] .season-works{padding-top:24px;margin-top:0!important}
 body[data-view=spring] .season-works{padding-top:45px;margin-top:0!important}
 body[data-view=summer] .season-layout{padding-bottom:380px}
 .category-filter{margin-bottom:27px;gap:0}
 .category-filter button{font-size:11px;padding:13px 14px}
 .category-filter button[aria-pressed=true]:after{left:14px;right:14px}
 .scene-v5-object img{filter:drop-shadow(4px 8px 8px #050d1938)}
}
@media(min-width:600px) and (max-aspect-ratio:17/20){
 .season-view{padding-top:135px}.season-copy{max-width:560px}
 body[data-view=winter] .season-works{padding-top:24px}
 body[data-view=spring] .season-works{padding-top:80px}
 body[data-view=summer] .season-layout{padding-bottom:460px}
 .category-filter button{font-size:13px;padding:13px 24px}
}
@media(max-height:580px) and (min-aspect-ratio:17/20){
 .home-view{min-height:360px}.site-header{padding-top:18px;padding-bottom:18px}.folio-intro{padding-top:76px}
 .folio-intro:before{height:76px}
 .scene-hint{bottom:20px}.experience-controls,body[data-view=home] .experience-controls{bottom:8px}
}
@media(prefers-reduced-motion:reduce){.folio-intro{display:none}.portal-info,.portal-text{animation:none!important}}

/* One living tree, cords and plaque; keep the left edge grounded and the inn open. */
.inn-tree{filter:brightness(.69) saturate(.66) blur(.65px)}
.inn-tree>img{width:100%;height:100%;object-fit:fill;filter:url('#inn-white-matte');mask-image:none}
.mid-tree-layer{clip-path:inset(0 0 0 58%)}
.mid-growth-layer{left:-8%;width:116%;bottom:-9%;height:58%}
.mid-growth-layer img{position:absolute;bottom:0;width:60%;height:100%;object-fit:fill;filter:brightness(.74) saturate(.68)}
.mid-growth-layer .left-bank{left:0}
.mid-growth-layer .right-bank{right:0;width:64%;height:98%}
.node-autumn .prop-art{height:100%;overflow:hidden;filter:blur(.35px)}
.node-spring .prop-art{filter:blur(.3px)}
.support-sign.is-hologram{mix-blend-mode:normal}
.support-hologram{mask:none;clip-path:none}
.support-hologram img{filter:url('#inn-white-matte') grayscale(1) sepia(1) saturate(2) hue-rotate(135deg) brightness(1.65)}
.node-autumn.is-hologram{mix-blend-mode:normal}
.node-autumn .hologram-art{max-width:none;object-fit:fill;transform:none;filter:url('#inn-white-matte') grayscale(1) sepia(.6) hue-rotate(130deg) brightness(1.15);mask:none}
.node-autumn.is-hologram .hologram-art{animation:none}
@media(max-aspect-ratio:17/20){
 .mid-tree-layer{display:none}
 .mid-tree-layer img{width:240%;transform:translateX(var(--mid-tree-offset));filter:brightness(.65) saturate(.6) blur(.3px)}
 .mid-growth-layer{left:-30%;width:160%;height:43%;bottom:-5%}
 .mid-growth-layer .left-bank{width:63%}
 .mid-growth-layer .right-bank{width:66%;height:90%}
}
/* Living woodland edge: linked roots on the bank, not an isolated upright pole. */
.mid-tree-left{position:absolute;inset:0;z-index:3;pointer-events:none;mask:none}
.mid-tree-left img{position:absolute;top:-5%;left:-2vw;height:82%;width:auto;max-width:none;aspect-ratio:2/3;object-fit:contain;transform:none;filter:url('#inn-white-matte') brightness(.72) saturate(.6) blur(.4px);mask-image:none}
/* Distant right-hand trunks continue the forest behind the ginkgo and roses. */
.mid-tree-layer{display:block;z-index:1;opacity:.28;clip-path:none;mask-image:linear-gradient(to right,transparent 0 60%,#000 70%)}
.mid-tree-layer img{position:absolute;top:-3%;left:0;width:100%;height:78%;transform:none;filter:brightness(.78) saturate(.55) blur(1.1px);mask-image:linear-gradient(to bottom,#000 0 55%,transparent 85%)}
@media(max-aspect-ratio:17/20){
 .mid-tree-left img{height:70%;left:-26vw;top:-12%}
 .mid-tree-layer{display:block;mask-image:linear-gradient(to right,transparent 0 68%,#000 78%)}
 .mid-tree-layer img{width:100%;transform:none}
}
/* Solid rock and fern overlap replaces the old visible root feather. */
.inn-tree{mask-image:none}
.root-occluder{position:absolute;z-index:4;pointer-events:none;mask:none;filter:brightness(.71) saturate(.63) blur(.35px)}
.root-occluder img{width:100%;height:100%;object-fit:fill;filter:url('#inn-white-matte');mask:none}
.root-occluder img{position:relative}