:root{color-scheme:dark;--ink:#d9e5e3;--muted:#87a4a4}*{box-sizing:border-box}body{margin:0;background:#020607;color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:1px solid #9cdbd4;outline-offset:8px}a{color:inherit;text-decoration:none}.world{height:100svh;min-height:420px;overflow:hidden;position:relative;background:#020607}.stage{position:absolute;width: min(100vw,177.6833svh);aspect-ratio:1672/941;left:50%;top:50%;transform:translate(-50%,-50%);isolation:isolate}.portrait,.intro-film,canvas,.threads{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.portrait{z-index:-2;user-select:none}.intro-film{z-index:-1}canvas,.threads{pointer-events:none}.threads{overflow:visible}.invitation{position:absolute;left:65.5%;top:30%;width:32%;transition:opacity 1.8s,transform 1.8s}.eyebrow{font-size:9px;letter-spacing:.26em;color:#8ca5a4;margin:0 0 28px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(27px,3.8vw,68px);line-height:1.13;font-weight:400;letter-spacing:-.045em;margin:0;color:#d6dfdb}em,i{font-weight:400;color:#a9c9c3}.intro{font-size:11px;letter-spacing:.05em;color:#8ca29f;margin-top:25px}.enter{margin-top:31px;padding:0 0 10px;border-bottom:1px solid #49626080;color:#c0d3ce;font-size:10px;letter-spacing:.08em}.enter span{margin-left:30px}header{position:absolute;top:36px;left:4%;right:4%;display:flex;align-items:flex-start;justify-content:space-between}.brand{font-size:13px;letter-spacing:.24em;text-shadow:0 1px 12px #000}.brand span{display:block;font-size:8px;letter-spacing:.46em;margin-top:10px;opacity:.6}nav{display:flex;gap:33px}nav button{font-size:9px;letter-spacing:.17em;padding:5px 0;color:#bcccca;transition:color .3s}nav button:hover{color:#fff}footer{position:absolute;bottom:27px;left:4%;right:4%;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:.19em;color:#819a99}footer button{font-size:9px;letter-spacing:.1em}.living{display:flex;align-items:center;gap:9px}.living b{width:3px;height:3px;border-radius:50%;background:#8cbab3;box-shadow:0 0 8px #93dfd2;animation:breathe 5s infinite}.palm{position:absolute;left:60.7%;top:74.4%;width:8%;height:11%;transform:translate(-50%,-50%);border-radius:50%;z-index:3}.palm-light{position:absolute;left:50%;top:50%;width:34px;height:34px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#b6f9de38,transparent 70%);box-shadow:0 0 26px #a2f6df15;animation:breathe 4s infinite;transition:width 1s,height 1s}.palm:hover .palm-light{width:75px;height:65px}.palm-label{position:absolute;white-space:nowrap;top:105%;left:50%;transform:translateX(-50%);font-size:7px;letter-spacing:.23em;color:#c2d9d3;text-shadow:0 2px 8px #000;opacity:.8;transition:opacity 1s}.opened .palm-label{opacity:0}.opened .invitation{opacity:0;transform:translateY(-10px);pointer-events:none}.works{position:absolute;inset:0;pointer-events:none}.work{position:absolute;left:var(--x);top:var(--y);text-align:left;padding:14px 0 10px 20px;width:24%;opacity:0;transform:translateY(9px);transition:opacity 1.8s,transform 1.8s;pointer-events:none}.work.revealed{opacity:1;transform:none;pointer-events:auto}.number{display:block;color:#749391;font-size:7px;letter-spacing:.2em;margin-bottom:13px}.work-title{display:block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(18px,2vw,34px);line-height:1.13;letter-spacing:-.025em;transition:color .7s;text-shadow:0 0 24px #000}.work-preview{display:block;max-width:220px;opacity:0;max-height:0;overflow:hidden;transition:opacity 1s,max-height 1s}.work-preview svg{display:block;width:100%;height:32px;margin-top:7px;fill:none;stroke:#81c6bd;stroke-width:.5}.work-preview>span{font-size:8px;letter-spacing:.1em;color:#a4c9bf}.work:hover .work-preview,.work:focus-visible .work-preview{opacity:1;max-height:72px}.work:hover .work-title{color:#edfff5}.connection{fill:none;stroke:url(#thread-color);stroke-width:.85;transition:opacity 1.2s;opacity:.54}.connection.halo{stroke:#87e3d1;stroke-width:3;filter:url(#glow);opacity:.12}.connection.active{opacity:1;stroke:#b1f4e6}.mobile-note{display:none}dialog{width:min(520px,88vw);padding:65px 48px 40px;background:#061011f5;border:1px solid #3a56534d;color:#bccfc9;box-shadow:0 0 100px #000;border-radius:0}dialog::backdrop{background:#0009;backdrop-filter:blur(9px)}.close{position:absolute;right:24px;top:20px;font-size:10px;color:#8aaba4}h2{font-family:Georgia,serif;font-weight:400;font-size:38px;line-height:1.1;margin:0 0 30px;letter-spacing:-.035em}.detail-line{height:1px;width:90px;background:linear-gradient(90deg,#93c9bf,transparent);margin:25px 0}#detail-copy{font-size:13px;line-height:1.9;color:#91aaa4}.prototype{font-size:8px;letter-spacing:.12em;margin-top:36px;color:#617b77}@keyframes breathe{0%,100%{opacity:.4}50%{opacity:1}}@media(min-aspect-ratio:19/9){header{top:5%}footer{bottom:5%}}@media(max-width:650px){header{top:25px;left:6%;right:6%}.brand{font-size:11px}nav{gap:17px}nav button{font-size:8px}.brand span{font-size:7px}.stage{width:100vw}.invitation{top:21%;left:65%;width:33%}.eyebrow{font-size:5px;letter-spacing:.14em;margin-bottom:12px}h1{font-size:24px}.intro{font-size:7px;line-height:1.6;margin-top:12px}.enter{font-size:7px;margin-top:10px;line-height:1.5}.enter span{margin-left:3px}.work{padding:4px 0 5px 5px;width:26%}.work-title{font-size:13px}.number{font-size:5px;margin-bottom:5px}.work-preview svg{height:18px}.work-preview>span{font-size:5px}.palm{min-width:44px;min-height:44px}.palm-label{font-size:5px;top:90%}footer{left:6%;right:6%;bottom:25px;font-size:6px}.living{display:none}.mobile-note{display:block;position:absolute;top:calc(50% + 34vw);width:100%;text-align:center;font-family:Georgia,serif;font-size:13px;color:#6f8a84}.opened~.mobile-note{opacity:0}dialog .eyebrow{font-size:8px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition-duration:.01s!important}}
@media(max-width:650px){.invitation{top:24%}h1{font-size:clamp(12px,3.75vw,24px)}.invitation .eyebrow{font-size:clamp(3px,.78vw,5px);margin-bottom:8px}.intro{font-size:clamp(4px,1.1vw,7px);margin-top:8px}.enter{font-size:clamp(4px,1.1vw,7px);margin-top:8px;padding-bottom:5px}.work-title{font-size:clamp(8px,2vw,13px)}.number{font-size:clamp(3px,.77vw,5px)}.work-preview>span{font-size:clamp(3px,.77vw,5px)}.work-preview svg{height:14px}.palm-label{font-size:clamp(3px,.77vw,5px)}}
/* Keep a future film above the animated photographic layer. */
.intro-film{z-index:2;pointer-events:none}
/* Round two: retain the original image, framing, typography and palette. */
nav a{font-size:9px;letter-spacing:.17em;padding:5px 0;color:#bcccca;transition:color .3s}nav a:hover{color:white}header{z-index:12}#growth{pointer-events:none}.portal{position:absolute;left:var(--x);top:var(--y);width:23%;padding:12px 0 20px 15px;pointer-events:none;opacity:0;transform:translateY(7px);transition:opacity .45s,transform .7s,color 1s}.portal.revealed{opacity:1;transform:none;pointer-events:auto}.portal-title{display:block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(20px,3vw,50px);font-weight:400;letter-spacing:.015em;line-height:1.2}.portal-subtitle{display:block;margin-top:10px;color:#9dbdb5;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(9px,1.05vw,18px);line-height:1.6}.portal .number{margin-bottom:14px}.portal-arrow{display:block;margin-top:15px;color:#8aafa6;opacity:0;transition:opacity .7s}.portal:hover .portal-arrow,.portal:focus-visible .portal-arrow{opacity:1}.portal:hover{color:#edfff7}.palm-label{text-transform:none;letter-spacing:.08em;font-family:Georgia,serif;font-style:italic;font-size:12px}.stage{transition:opacity .85s,filter .85s}.viewing-page .stage{opacity:0;filter:blur(4px);pointer-events:none}.viewing-page footer,.viewing-page .mobile-note{opacity:0;pointer-events:none}.content-page{position:fixed;inset:0;z-index:8;background:#020607;overflow-y:auto;opacity:0;transform:translateY(20px);transition:opacity .7s,transform .9s;color:#d9e5e3}.content-page.visible{opacity:1;transform:none}.page-inner{width:min(1100px,86vw);margin:130px auto 70px}.back-home{display:inline-block;font-size:10px;letter-spacing:.09em;color:#93b1a9;margin-bottom:52px}.page-inner>.eyebrow{margin-bottom:23px}.page-inner>h1{max-width:850px;font-size:clamp(34px,5.1vw,76px);outline:none}.page-intro{color:#8ca29f;font-size:13px;line-height:1.8;margin:26px 0 60px}.page-section{margin:48px 0}.page-section h2{font-size:25px;margin-bottom:25px}.project-row{display:grid;grid-template-columns:50px 1fr auto;align-items:center;gap:20px;padding:28px 0;border-top:1px solid #8aafa625;transition:color .4s,background .4s}.project-row:hover{color:#a8dfd0;background:#10221e35}.project-row h3{font-family:Georgia,serif;font-weight:400;font-size:26px;margin:0}.project-row>span{font-size:9px;color:#849c95;letter-spacing:.08em}.row-index{align-self:start;padding-top:7px}.content-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:36px;margin:32px 0 60px}.content-grid.three{grid-template-columns:repeat(3,1fr)}.content-slot{border-top:1px solid #8aafa625;padding-top:25px;min-height:160px}.content-slot h3{font-family:Georgia,serif;font-weight:400;font-size:23px;margin:0 0 20px}.content-slot p,.section-note{font-size:12px;line-height:1.9;color:#879d96}.content-slot>span{display:block;font-size:9px;color:#536d64;margin-top:28px;letter-spacing:.09em}.layout-note{font-size:8px;letter-spacing:.16em;color:#536d64;margin-top:60px}.project-placeholder{height:240px;border:1px solid #8aafa622;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#78958a;font-family:Georgia,serif;font-size:22px}.project-placeholder small{font:11px Arial,sans-serif;margin-top:12px;color:#5e796f}.related-links{display:flex;justify-content:space-between;font-size:11px;color:#9ab8ad;gap:24px}.viewing-page header{background:linear-gradient(#020607 50%,transparent);top:0;left:0;right:0;padding:36px 4% 25px}.portal:focus-visible{outline-offset:4px}
@media(max-width:650px){nav{gap:13px}nav a{font-size:7px}.portal{padding:3px 0 6px 5px}.portal-title{font-size:clamp(12px,3vw,20px)}.portal-subtitle{font-size:clamp(6px,1.15vw,9px);margin-top:5px;line-height:1.4}.portal .number{font-size:4px;margin-bottom:5px}.portal-arrow{margin-top:4px;font-size:8px}.palm-label{font-size:6px}.page-inner{margin-top:110px}.page-inner>h1{font-size:36px}.back-home{margin-bottom:40px}.page-intro{margin-bottom:36px;font-size:12px}.content-grid,.content-grid.three{grid-template-columns:1fr;gap:20px}.project-row{grid-template-columns:25px 1fr;gap:10px;padding:23px 0}.project-row h3{font-size:22px}.project-row>span:last-child{grid-column:2;font-size:8px}.viewing-page header{padding:25px 6%}.content-slot{min-height:135px}.related-links{font-size:10px}}
/* Identity, automatic network, and eye portal. */
.brand span{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:11px;letter-spacing:.055em;opacity:.75;margin-top:9px;text-transform:none}.portal .number{opacity:.65}.palm-label{font-size:10px}.eye-entry{position:absolute;left:29.1%;top:27.1%;width:4.5%;height:5.8%;transform:translate(-50%,-50%);z-index:4;border-radius:50%;display:block}.iris-light{position:absolute;left:50%;top:50%;width:30%;height:27%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#89d7f85c,#73cce921 45%,transparent 72%);opacity:0;transition:opacity 1.2s;mix-blend-mode:screen}.eye-label{position:absolute;left:85%;top:-15%;white-space:nowrap;color:#bdd9dc;font-family:Georgia,serif;font-style:italic;font-size:11px;opacity:0;transition:opacity .8s;text-shadow:0 0 10px #000}.eye-entry:hover .iris-light,.eye-entry:focus-visible .iris-light,.eye-entry.near .iris-light{opacity:1;animation:iris-breathe 3.8s ease-in-out infinite}.eye-entry:hover .eye-label,.eye-entry:focus-visible .eye-label,.eye-entry.near .eye-label{opacity:1}.stage{transform-origin:29.1% 27.1%;transition:transform 1.3s cubic-bezier(.2,.65,.3,1),opacity .85s,filter .85s}.stage.eye-zoom{transform:translate(-50%,-50%) scale(2.35)}.about-statement{font-size:16px;line-height:1.9;color:#b6cbc5;max-width:620px}.view-cv{display:inline-block;font-size:13px;padding:12px 0;border-bottom:1px solid #7aaba5;margin:20px 0 35px;color:#bedfd5}.mobile-note{font-style:italic}#skip-film{position:fixed;right:5%;bottom:6%;z-index:20;font-size:11px;letter-spacing:.1em;color:#c0d7d3;padding:12px}.intro-film{z-index:6}@keyframes iris-breathe{0%,100%{opacity:.5}50%{opacity:1}}@media(max-width:650px){.brand span{font-size:8px}.eye-entry{min-width:28px;min-height:28px}.eye-label{font-size:6px}.palm-label{font-size:6px}.portal-subtitle{font-size:clamp(6px,1.15vw,9px)}}@media(prefers-reduced-motion:reduce){.stage.eye-zoom{transform:translate(-50%,-50%)}.iris-light{animation:none!important}}
/* The supplied glass network sits behind, never obscures, the existing labels. */
.portal-title,.portal-subtitle{text-shadow:0 1px 3px #020607,0 0 7px #020607,0 0 12px #020607,0 0 20px #020607}
/* One timeline controls opacity and the 10px horizontal entrance. */
.portal{transition:color .8s ease-out;transform:translateX(10px);opacity:0}.portal.revealed{transform:none}.core-drop{position:absolute;left:50%;top:50%;width:16px;height:15px;border-radius:48% 52% 56% 44% / 42% 45% 55% 58%;transform:translate(-50%,-50%) scale(var(--core-scale,1));background:radial-gradient(ellipse at 32% 24%,#ecffffb5 0%,#c8e6ed55 13%,transparent 28%),radial-gradient(ellipse at 63% 65%,#7acbc763,transparent 62%),linear-gradient(140deg,#91c6de25,#b0e5df10 55%,#c2edec55);box-shadow:inset .6px .8px 1.6px #d9f5ff7a,inset -1px -1px 2px #64bcc83d,0 0 8px #73b6c329;border:.5px solid #c6e7e640;animation:core-breathe 5.8s ease-in-out infinite;transition:box-shadow .8s}.palm:hover .core-drop,.palm:focus-visible .core-drop,.palm.near .core-drop{box-shadow:inset .6px .8px 2px #e0f9ff9a,inset -1px -1px 2px #75c9d84d,0 0 12px #8adbd44a}.core-pulse{position:absolute;left:50%;top:50%;width:28px;height:24px;border-radius:50%;border:.5px solid #a9dce18c;box-shadow:0 0 7px #83cdd64a;transform:translate(-50%,-50%) scale(var(--pulse-scale,1));opacity:var(--pulse-opacity,0);pointer-events:none}.palm-label{opacity:0;transition:opacity .8s}.palm:hover .palm-label,.palm:focus-visible .palm-label{opacity:.65}#reset{font-size:9px;color:#839796;transition:color .7s}#reset:hover,#reset:focus-visible{color:#c4ded9}@keyframes core-breathe{0%,100%{filter:brightness(.88)}50%{filter:brightness(1.1)}}@media(prefers-reduced-motion:reduce){.core-drop{animation:none}.core-pulse{display:none}.portal{transition:none}}

/* Palm refinement: image-relative centre, transparent navigation, soft light release. */
.palm{left:59.81%;top:78%;}
.portal-spacing{display:block;height:22px;pointer-events:none}
.portal-title,.portal-subtitle{text-shadow:0 1px 3px #02060780;background:transparent}
.core-pulse{background:radial-gradient(ellipse,#d8fff347 0%,#91e9e02b 25%,#6ccbd514 48%,transparent 72%);border-color:#bcefe83d;box-shadow:0 0 12px #83cdd62a;}
@media(max-width:650px){.portal-spacing{height:9px}}

/* Living tesseract uses the same 1672 × 941 portrait coordinates. */
#tesseract{z-index:2;pointer-events:none}.palm{left:64.59%;top:56.85%;width:10.2%;height:18%;min-width:44px;min-height:44px}.palm-label{top:110%}

/* Whole photographic layers translate together; navigation remains stationary. */
.portrait,#growth{transform:translate(var(--parallax-x,0px),var(--parallax-y,0px));will-change:transform}
.eye-entry{translate:var(--parallax-x,0px) var(--parallax-y,0px)}
@media(prefers-reduced-motion:reduce){.portrait,#growth{transform:none;will-change:auto}.eye-entry{translate:none}}

/* Tesseract and its hit target share the photograph's exact parallax offset. */
#tesseract{transform:translate(var(--parallax-x,0px),var(--parallax-y,0px))}
.palm{translate:var(--parallax-x,0px) var(--parallax-y,0px)}
@media(prefers-reduced-motion:reduce){#tesseract{transform:none}.palm{translate:none}}

/* Film and still share one uncropped 16:9 frame on every aspect ratio. */
#cinematic-intro{position:fixed;inset:0;z-index:30;background:transparent;opacity:1;transition:opacity .4s ease-out}
#cinematic-intro[hidden]{display:none}#cinematic-intro.leaving{opacity:0;pointer-events:none}
.cinematic-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(100vw,177.6833svh);aspect-ratio:1672/941}
#intro-film{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.intro-running .world header,.intro-running .world footer,.intro-running .mobile-note,.intro-running #replay-intro,.intro-pending .world header,.intro-pending .world footer,.intro-pending .mobile-note,.intro-pending #replay-intro{visibility:hidden}
.intro-running #growth,.intro-running #tesseract,.intro-running .portals,.intro-running .palm,.intro-running .eye-entry{visibility:hidden}
.intro-pending .stage{visibility:hidden}
#intro-sound,#skip-film,#replay-intro{position:fixed;z-index:31;border:0;background:none;color:#adbbbd;font:9px Arial,Helvetica,sans-serif;letter-spacing:.13em;padding:12px 0;transition:color .5s;text-shadow:0 1px 6px #0008}
#intro-sound{right:4%;top:24px}#skip-film{right:4%;bottom:22px}
#intro-sound:hover,#skip-film:hover,#replay-intro:hover{color:#effbf8}
#replay-intro{z-index:13;right:4%;top:62px;font-size:8px;color:#829492}
.viewing-page #replay-intro{display:none}
@media(max-width:650px){#intro-sound{right:6%;top:15px}#skip-film{right:6%;bottom:15px}#replay-intro{right:6%;top:53px;font-size:7px}}
@media(prefers-reduced-motion:reduce){#cinematic-intro{transition:none}}
/* Becoming MushRoom: scoped editorial project page. */
.mushroom-page{background:#050a09;color:#d9e3dd;scroll-behavior:smooth}.mushroom-page .page-inner{width:min(1180px,86vw);margin:142px auto 70px}.mushroom-page .back-home{margin-bottom:64px}.mushroom-page #page-kicker{font-size:9px;letter-spacing:.19em;color:#8daba0}.mushroom-page #page-title{font-size:clamp(42px,7.1vw,103px);max-width:none;letter-spacing:-.05em;line-height:1}.mushroom-page #page-intro{font-family:Georgia,serif;font-size:clamp(16px,1.6vw,22px);font-style:italic;color:#a4b9ae;margin:24px 0 32px}.mush-toplinks{display:flex;justify-content:space-between;gap:24px;font-size:9px;letter-spacing:.12em;color:#8da99d}.mush-toplinks button{padding:0;text-align:left}.mush-index{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #8da99d33;border-bottom:1px solid #8da99d33;margin-top:52px;padding:21px 0;gap:16px}.mush-index button{text-align:left;padding:5px 0;font-size:10px;color:#bfd1c6;letter-spacing:.06em}.mush-index span{color:#7f9b8d;margin-left:12px}.mush-index button:hover,.mush-scroll:hover,.mush-toplinks button:hover{color:#f1fff7}.mush-section{padding:110px 0;border-bottom:1px solid #8da99d26;scroll-margin-top:110px}.mush-kicker{font-size:9px;letter-spacing:.19em;color:#819d8f;margin:0 0 38px}.mushroom-page h2{font-size:clamp(36px,4.8vw,68px);line-height:1.12;letter-spacing:-.035em;margin:0 0 36px}.mushroom-page h2 em,.mushroom-page h3 em{color:#9fb9ab}.mush-copy{font-size:14px;line-height:1.95;color:#a6b8af;max-width:590px}.mush-copy p{margin:0 0 21px}.mush-copy strong{font-weight:400;color:#e0eae3}.mush-invitation{padding-top:110px;padding-bottom:95px;text-align:center}.mush-invitation .mush-copy{margin:0 auto;max-width:560px}.mush-invitation .mush-copy p:nth-last-child(2){font:italic 28px Georgia,serif;margin-top:32px}.mush-scroll{margin:26px 0 0;padding:10px 0;color:#a6c2b2;font-size:11px;letter-spacing:.06em}.mush-editorial{display:grid;grid-template-columns:1fr 1fr;gap:9%}.mush-pair{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:54px 0}.mushroom-page figure{margin:0}.mush-photo img{display:block;width:100%;height:auto}.mush-enlarge{position:relative;display:block;width:100%;padding:0;text-align:left;overflow:hidden}.mush-enlarge img{transition:filter .5s}.mush-enlarge:hover img{filter:brightness(1.08)}.mush-enlarge>span{position:absolute;right:14px;bottom:12px;color:#d5e9df;text-shadow:0 1px 8px #000;font-size:16px}.mushroom-page figcaption{display:flex;align-items:baseline;gap:18px;font-size:10px;line-height:1.7;letter-spacing:.04em;color:#8fa89a;margin-top:15px}.mushroom-page .mush-film{margin-top:52px}.mush-film video{display:block;width:100%;aspect-ratio:16/9;background:#020504;object-fit:contain}.mush-film figcaption span{font-size:8px;letter-spacing:.16em;color:#657f70}.mushroom-page .mush-panorama{margin:48px 0 72px}.mush-touch-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:9%;align-items:start}.mush-touch-grid .mush-copy{padding-top:8px}.mush-touch-grid .mush-copy p:last-child{font-family:Georgia,serif;font-size:22px;line-height:1.6;margin-top:36px}.mushroom-page dl{margin:46px 0 64px}.mushroom-page dl>div{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:19px 0;border-bottom:1px solid #8da99d26;font-size:13px;line-height:1.8}.mushroom-page dt{font-size:10px;letter-spacing:.08em;color:#799585}.mushroom-page dd{margin:0;color:#b7c9bd}.mushroom-page dd a{border-bottom:1px solid #718d7d66;padding-bottom:3px}.mushroom-page dd a:hover{color:#effff2}.mush-credits{display:grid;grid-template-columns:1fr 1fr;gap:9%}.mushroom-page h3{font-family:Georgia,serif;font-weight:400;font-size:27px;margin:0 0 25px}.mush-explore{padding:75px 0;scroll-margin-top:110px}.mush-explore h3{font-size:clamp(25px,3vw,38px);line-height:1.35}.mush-pending{display:flex;gap:50px;flex-wrap:wrap;font-size:11px;color:#8aa391;margin-top:38px}.mush-pending small{display:block;font-size:9px;color:#62796b;margin-top:10px}.mushroom-page .related-links{border-top:1px solid #8da99d26;padding-top:32px}.mush-lightbox{position:fixed;width:min(1200px,94vw);max-width:94vw;max-height:94svh;padding:44px 16px 16px;background:#050a09;border:1px solid #8da99d33}.mush-lightbox img{display:block;width:100%;height:auto;max-height:78svh;object-fit:contain}.mush-lightbox p{font-size:11px;color:#9ab2a4;margin:16px 0 0}.mush-close{position:absolute;right:18px;top:13px;font-size:11px}.mush-lightbox::backdrop{background:#000d;backdrop-filter:blur(5px)}
@media(max-width:700px){.mushroom-page .page-inner{width:88vw;margin-top:112px}.mushroom-page .back-home{margin-bottom:45px}.mushroom-page #page-kicker{font-size:7px;letter-spacing:.12em}.mushroom-page #page-title{font-size:clamp(35px,9vw,60px)}.mushroom-page #page-intro{font-size:16px;line-height:1.6}.mush-toplinks{font-size:8px}.mush-index{grid-template-columns:1fr 1fr;gap:15px;padding:19px 0;margin-top:32px}.mush-section{padding:65px 0;scroll-margin-top:92px}.mush-kicker{font-size:8px;margin-bottom:26px}.mushroom-page h2{font-size:38px}.mush-copy{font-size:13px;line-height:1.9}.mush-editorial,.mush-touch-grid,.mush-credits{grid-template-columns:1fr;gap:30px}.mush-pair{gap:24px;grid-template-columns:1fr;margin:32px 0}.mush-touch-grid>.mush-photo{max-width:80%;margin:0 auto}.mushroom-page .mush-panorama{margin:30px 0 38px}.mushroom-page dl>div{grid-template-columns:1fr;gap:7px;padding:16px 0}.mushroom-page dl{margin:30px 0 40px}.mush-explore{padding:48px 0}.mushroom-page .mush-film{margin-top:34px}.mushroom-page figcaption{font-size:9px}.mushroom-page .related-links{font-size:10px;line-height:1.6}.mush-lightbox{padding:44px 10px 14px}}
@media(prefers-reduced-motion:reduce){.mushroom-page{scroll-behavior:auto}.mush-enlarge img{transition:none}}

/* Continuous, quiet underground environment, limited to this project. */
.mushroom-page{background:#030504;isolation:isolate}
.mushroom-page .mush-substrate{position:sticky;top:0;height:100svh;margin-bottom:-100svh;width:100%;pointer-events:none;z-index:0;overflow:hidden}
.mushroom-page .mush-substrate canvas{display:block;width:100%;height:100%}
.mushroom-page .page-inner{position:relative;z-index:1}
.mushroom-page #page-title,.mushroom-page #page-kicker,.mushroom-page #page-intro{text-align:center}
.mushroom-page h2{text-align:center}
.mushroom-page .mush-section{border-bottom-color:#8da99d18}
.mushroom-page .mush-editorial h2{text-align:left}
.mushroom-page dl>.mush-exhibition{padding:30px 0;border-top:1px solid #8da99d55;border-bottom:1px solid #8da99d55;margin:15px 0}
.mushroom-page .mush-exhibition dt{color:#c4d6ca}
.mushroom-page .mush-exhibition dd{font:clamp(23px,2.8vw,36px)/1.4 Georgia,serif;max-width:760px}
.mushroom-page .mush-exhibition dd a{color:#e1eee5;border-bottom-color:#a1c0ac}
.mushroom-page .mush-photo-credit{font-size:11px;color:#a4bbac;border-top:1px solid #8da99d33;padding-top:22px;margin-top:30px}
.mushroom-page button:focus-visible,.mushroom-page a:focus-visible{outline:1px solid #b8d6c5;outline-offset:6px}
@media(max-width:700px){.mushroom-page .mush-editorial h2{text-align:center}.mushroom-page .mush-exhibition dd{font-size:25px}}
/* Project facts: consistent readable scale, with a quieter exhibition link. */
.mushroom-page #mush-info dl>div{font-size:17px;line-height:1.8}
.mushroom-page #mush-info dt{font-size:13px;letter-spacing:.07em}
.mushroom-page #mush-info .mush-exhibition dd{font:20px/1.65 Georgia,serif}
.mushroom-page .mush-festival-film-row{margin-top:18px}
.mushroom-page #mush-info .mush-festival-film{font:15px/1.7 Arial,Helvetica,sans-serif;color:#b7c9bd;display:inline-block}
.mushroom-page #mush-info .mush-festival-film:hover{color:#effff2}
.mushroom-page .mush-explore .mush-kicker{font-size:13px;margin-bottom:28px}
.mushroom-page .mush-pending{font-size:18px;line-height:1.7;margin-top:0;color:#b3c7ba}
.mushroom-page .mush-pending small{font-size:13px;color:#91a99a;margin-top:8px}
@media(max-width:700px){.mushroom-page #mush-info dl>div{font-size:16px}.mushroom-page #mush-info .mush-exhibition dd{font-size:19px}}
.mushroom-page #mush-info .mush-festival-video{margin-top:26px;width:100%}
.mushroom-page #mush-info .mush-festival-video figcaption{font:15px/1.7 Arial,Helvetica,sans-serif;color:#b7c9bd;letter-spacing:.02em;margin-top:13px}
/* Scholar content uses the existing portfolio typography and layout. */
.scholar-page #page-intro{font-style:italic}
.scholar-page .page-section{margin:65px 0}
.scholar-page .scholar-entry{margin:28px 0 36px}
.scholar-page .scholar-entry h4{font-size:16px;font-weight:400;line-height:1.65;color:#d9e5e3;margin:0 0 12px}
.scholar-page .content-slot p,.scholar-page .section-note,.scholar-page .project-row p{font-size:14px;line-height:1.9;color:#9bb0a9}
.scholar-page .scholar-research .content-slot{max-width:800px}
.scholar-page .project-row p{margin:12px 0 0}
.scholar-page .content-slot strong{font-weight:400;color:#d9e5e3}
@media(max-width:700px){.scholar-page .content-grid,.scholar-page .content-grid.three{grid-template-columns:1fr}.scholar-page .project-row{grid-template-columns:25px minmax(0,1fr);gap:15px}.scholar-page .project-row>span:last-child{grid-column:2}.scholar-page .project-row h3{font-size:23px}}
.scholar-page .content-slot .scholar-activity-entry{font-size:16px;color:#d9e5e3;margin-top:24px}
.cv-page #page-intro:empty{display:none}
.cv-page #page-content{max-width:900px}
.cv-page .page-section{margin:56px 0;padding-top:32px;border-top:1px solid #8aafa629}
.cv-page .page-section h2{font-size:17px;letter-spacing:.1em;line-height:1.65;margin-bottom:30px}
.cv-page .page-section h3{font:23px/1.5 Georgia,serif;font-weight:400;margin:32px 0 22px;color:#bdcfc8}
.cv-page .page-section p,.cv-page .page-section li{font-size:16px;line-height:1.9;color:#a8bbb4}
.cv-page .page-section p{margin:0 0 24px}
.cv-page .page-section strong{font-weight:500;color:#e0e9e5}
.cv-page .page-section ul{padding-left:22px;margin:0 0 32px}
.cv-page .page-section li{margin-bottom:10px}
@media(max-width:700px){.cv-page .page-section p,.cv-page .page-section li{font-size:15px}.cv-page .page-section h2{font-size:15px}}

/* Academic activities: category / year / title / details. */
.scholar-page .scholar-activities .content-slot h3{font:32px/1.25 Georgia,'Times New Roman',serif;color:#E0E6E2;margin-bottom:32px}
.scholar-page .scholar-activities .activity-year{font:14px/1.5 Arial,Helvetica,sans-serif;letter-spacing:.14em;color:#91ADA3;margin:32px 0 18px}
.scholar-page .scholar-activities .activity{margin-bottom:30px}
.scholar-page .scholar-activities .activity h5{font:21px/1.5 Georgia,'Times New Roman',serif;color:#E0E6E2;margin:0 0 12px}
.scholar-page .scholar-activities .activity p{font:15px/1.85 Arial,Helvetica,sans-serif;color:#A1B2AA;margin:0}
.mushroom-page .mush-substrate canvas{opacity:.8}
/* Scholar typographic hierarchy. Existing grids and project routes remain intact. */
.scholar-page .page-section{margin:clamp(88px,12vw,160px) 0}
.scholar-page .page-section>h2{font:400 clamp(32px,4.1vw,52px)/1.18 Georgia,'Times New Roman',serif;letter-spacing:-.025em;color:#E0E6E2;margin:0 0 clamp(42px,5.5vw,72px)}
.scholar-page .page-section>.content-grid{margin:0;align-items:start}
.scholar-page .content-slot{min-width:0}
.scholar-page .content-slot>h3,.scholar-page .scholar-activities .content-slot>h3{font:400 clamp(25px,2.4vw,30px)/1.3 Georgia,'Times New Roman',serif;color:#E0E6E2;margin:0 0 36px}
.scholar-page .scholar-entry{margin:0 0 48px}
.scholar-page .scholar-entry:last-child{margin-bottom:0}
.scholar-page .scholar-entry h4,.scholar-page .scholar-activities .activity h5{font:400 clamp(18px,1.6vw,20px)/1.55 Georgia,'Times New Roman',serif;color:#E0E6E2;margin:0 0 14px}
.scholar-page .scholar-entry p,.scholar-page .scholar-activities .activity p{font:400 clamp(14px,1.2vw,15px)/1.85 Arial,Helvetica,sans-serif;color:#A1B2AA;margin:0}
.scholar-page .scholar-activities .activity-year{font-size:clamp(14px,1.15vw,15px);margin:36px 0 20px}
.scholar-page .scholar-activities .activity{margin:0 0 36px}
.scholar-page .scholar-activities .activity:last-child{margin-bottom:0}
.scholar-page .scholar-research .content-slot{max-width:800px}
.scholar-page .scholar-research .content-slot>h3{font-size:clamp(36px,5vw,64px);line-height:1.12;letter-spacing:-.035em;margin-bottom:32px;overflow-wrap:break-word}
.scholar-page .scholar-research h3 em{color:#91ADA3;font-style:italic}
.scholar-page .scholar-research .content-slot>p{max-width:800px;font-size:clamp(15px,1.3vw,17px);line-height:1.9;margin:0 0 24px}
.scholar-page .scholar-research .content-slot>p:first-of-type{font-size:clamp(14px,1.2vw,16px);margin-bottom:44px}
.scholar-page .project-row h3{font:400 clamp(26px,3vw,38px)/1.25 Georgia,'Times New Roman',serif;transition:color .55s ease}
.scholar-page .project-row p{font-size:clamp(14px,1.3vw,16px);line-height:1.8;margin-top:16px}
.scholar-page .project-row{padding-top:34px;padding-bottom:34px}
.scholar-page .project-row>span:last-child{display:inline-block;transition:color .55s ease,transform .55s ease}
.scholar-page .project-row:hover h3,.scholar-page .project-row:focus-visible h3{color:#bdd9cc}
.scholar-page .project-row:hover>span:last-child,.scholar-page .project-row:focus-visible>span:last-child{color:#dcece4;transform:translateX(3px)}
.scholar-page .page-section>.section-note{margin:0 0 36px}
@media(prefers-reduced-motion:reduce){.scholar-page .project-row h3,.scholar-page .project-row>span:last-child{transition:none}.scholar-page .project-row:hover>span:last-child,.scholar-page .project-row:focus-visible>span:last-child{transform:none}}
/* About: original photographic layers, three continuous narrative spaces. */
.about-page{background:#020607}
.about-page .page-inner{width:min(1280px,90vw);margin:125px auto 0}
.about-page #page-title,.about-page #page-kicker,.about-page #page-intro{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.about-page .back-home{margin-bottom:35px}
.about-page .about-me{display:grid;grid-template-columns:45fr 55fr;gap:clamp(40px,5vw,80px);align-items:center;position:relative;padding:35px 0 120px}
.about-page .about-portrait{position:relative;display:block;width:100%;height:800px;padding:0;align-self:stretch;max-height:950px;overflow:hidden;mask-image:linear-gradient(to bottom,#000 78%,transparent),linear-gradient(to right,transparent,#000 12%,#000 82%,transparent);mask-composite:intersect}
.about-page .about-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.about-page .about-portrait canvas,.about-page .about-network canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.about-page .about-copy{position:relative;z-index:1;max-width:550px}
.about-page .about-label{font:12px/1.6 Arial,Helvetica,sans-serif;letter-spacing:2px;color:#91ada3;margin:0 0 30px}
.about-page .about-copy h2{font:400 clamp(34px,3.5vw,46px)/1.16 Georgia,'Times New Roman',serif;letter-spacing:-.025em;color:#dce6e7;margin:0 0 36px}
.about-page .about-copy>p:not(.about-label){font:clamp(16px,1.3vw,17px)/1.8 Arial,Helvetica,sans-serif;color:#aabcb9;margin:0 0 21px}
.about-page .about-copy strong{font-weight:400;color:#d4e2df}
.about-page .about-cv{display:inline-block;font-size:13px;letter-spacing:1.5px;padding:8px 0;margin-top:14px;border-bottom:1px solid transparent;transition:border-color .6s,color .6s}
.about-page .about-cv:hover,.about-page .about-cv:focus-visible{border-color:#a9c8d4;color:#ecf7f6}
.about-page .about-world{position:relative;display:grid;grid-template-columns:55fr 45fr;gap:60px;align-items:center;padding:120px 0}
.about-page .about-world:before{content:'';position:absolute;inset:-160px -5vw -100px;background:url('assets/about/mycelium.png') center/cover no-repeat;opacity:.055;pointer-events:none;mask-image:linear-gradient(transparent,#000 35%,#000 65%,transparent)}
.about-page .about-network{position:relative;height:700px;min-width:0;mask-image:radial-gradient(ellipse at 55% 50%,#000 20%,#0009 55%,transparent 75%)}
.about-page .about-network img{width:100%;height:100%;object-fit:cover;opacity:.48;display:block}
.about-page .about-pathways{display:flex;gap:48px;margin-top:45px;padding-top:25px;border-top:1px solid #8ba7ae40}
.about-page .about-pathways a{font:18px/1.6 Georgia,serif;letter-spacing:.08em;color:#bfcecf;transition:color .6s}
.about-page .about-pathways a:hover{color:#efffff}
.about-page .about-closing{position:relative;padding:170px 0 190px;text-align:center}
.about-page .about-closing:before{content:'';position:absolute;inset:0;background:url('assets/about/mycelium.png') center/cover;opacity:.025;mask-image:linear-gradient(transparent,#000,transparent);pointer-events:none}
.about-page .about-closing>div{opacity:0;transition:opacity 1.8s ease}
.about-page .about-closing.seen>div{opacity:1}
.about-page .about-closing p{position:relative;font:italic clamp(22px,2.2vw,28px)/1.85 Georgia,serif;color:#c6d3d5;margin:0 0 15px}
@media(max-width:800px){.about-page .page-inner{margin-top:100px}.about-page .about-me,.about-page .about-world{grid-template-columns:1fr;gap:30px;padding:40px 0 80px}.about-page .about-portrait{height:620px;max-height:85svh;width:100%;max-width:510px;margin:auto}.about-page .about-copy{max-width:550px;margin:auto}.about-page .about-world{padding-top:80px}.about-page .about-network{height:360px}.about-page .about-closing{padding:100px 0 130px}.about-page .about-pathways{gap:35px}}
@media(prefers-reduced-motion:reduce){.about-page .about-closing>div{opacity:1;transition:none}.about-page canvas{display:none}}
.about-page .page-inner{position:relative;z-index:1;margin-top:155px}
.about-page .about-me{padding-top:55px}
.about-page .about-copy>p:not(.about-label){font-size:clamp(15px,1.25vw,16px);margin-bottom:18px}
.about-page .about-world:before,.about-page .about-closing:before{display:none}
.about-page .about-network{mask-image:none}

.about-page .about-world{padding-bottom:65px}
.about-page .about-closing{padding:95px 0 130px}
@media(max-width:800px){.about-page .page-inner{margin-top:110px}.about-page .about-me{padding-top:30px}.about-page .about-closing{padding:70px 0 100px}}
/* Quiet About: only aligned photographic light layers, no generated network. */
.about-page{background:#020405}
.about-page .about-world:before,.about-page .about-closing:before,.about-page .about-closing:after{display:none;content:none}
.about-page .about-network{overflow:hidden;mask-image:radial-gradient(ellipse at 55% 50%,#000 24%,#000b 60%,transparent 78%)}
.about-page .about-network>img{visibility:visible;opacity:1;filter:brightness(.28)}
.about-page .about-network>img.about-local-light,.about-page .about-portrait>img.about-local-light{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;filter:none;pointer-events:none;mask-image:linear-gradient(transparent,transparent)}
.about-page .about-portrait>img.about-local-light{object-position:50% 0;mix-blend-mode:screen;clip-path:inset(27% 0 0 0)}
.about-page .about-cut{display:inline;text-align:left;padding:0;font:inherit;line-height:inherit;color:#d4e2df;transition:color .7s,text-shadow .7s}
.about-page .about-cut:hover,.about-page .about-cut.active{color:#d8f1f5;text-shadow:0 0 14px #7dbccc35}
.about-page .about-network:focus-visible{outline:1px solid #a9c8d4;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.about-page .about-cut{transition:none}}
/* Local About portrait response; no layout movement or canvas network. */
.about-dot-cursor{position:fixed;left:0;top:0;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;border-radius:50%;background:#b8e6f0;box-shadow:0 0 5px #8ac9df66;pointer-events:none;z-index:100;visibility:hidden}
.about-dot-cursor:before{content:'';position:absolute;inset:-10px;border-radius:50%;background:radial-gradient(#8bc7e038,transparent 70%)}
.about-dot-cursor.visible{visibility:visible}
@media(hover:hover) and (pointer:fine){.about-page.about-dot-enabled,.about-page.about-dot-enabled *{cursor:none!important}}
.about-page .about-portrait>img{will-change:transform}
@media(prefers-reduced-motion:reduce){.about-dot-cursor{display:none}.about-page .about-portrait>img{transform:none!important;will-change:auto}}
/* A quiet five-work exhibition, exclusively on the Practice directory. */
.practice-page{background:#050606;color:#dfe7e8}
.practice-page .page-inner{width:100%;margin:100px auto 0}
.practice-page .back-home{margin:0 4vw 12px;font-size:9px}
.practice-page #page-title,.practice-page #page-kicker,.practice-page #page-intro{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
.practice-room{position:relative;width:94%;margin:0 auto;height:max(760px,calc(100svh - 135px));max-width:1600px}
.practice-room-title{position:absolute;left:24%;top:39%;width:47%;margin:0;z-index:3;pointer-events:none;font:400 clamp(44px,5.3vw,85px)/.96 Georgia,serif;letter-spacing:-.045em;color:#c5dce4}
.practice-piece{position:absolute;transform:translate3d(var(--px,0px),var(--py,0px),0) rotate(var(--angle));z-index:2}
.practice-piece-link{display:block}
.practice-piece-image{overflow:hidden;transition:filter .65s,transform .7s;transform-origin:center}
.practice-piece img{width:100%;height:100%;object-fit:cover;display:block}
.practice-piece-caption{position:relative;padding:14px 0 0;display:grid;grid-template-columns:24px 1fr;column-gap:10px}
.practice-piece-number{font:10px/1.8 Arial,sans-serif;color:#91a4a7}
.practice-piece h3{font:400 clamp(16px,1.45vw,23px)/1.25 Georgia,serif;margin:0;color:#d2e1e5}
.practice-piece-detail{grid-column:2;opacity:0;transform:translateY(4px);transition:opacity .5s,transform .5s;pointer-events:none}
.practice-piece-detail p{font:11px/1.6 Arial,sans-serif;color:#a3b4b3;margin:9px 0}
.practice-piece-detail span{font:9px/1.7 Arial,sans-serif;letter-spacing:.1em;color:#c0d6dc}
.practice-room.has-active .practice-piece:not(.is-active) .practice-piece-image{filter:brightness(.68)}
.practice-piece.is-active{z-index:4}
.practice-piece.is-active .practice-piece-image{transform:scale(1.025)}
.practice-piece.is-active .practice-piece-detail{opacity:1;transform:none}
.practice-piece-link:focus-visible{outline:1px solid #bdd9e3;outline-offset:8px}
.piece-1{left:4%;top:2%;width:39%;--angle:-1.3deg}.piece-1 .practice-piece-image{aspect-ratio:1.85}
.piece-5{left:59%;top:5%;width:34%;--angle:2deg}.piece-5 .practice-piece-image{aspect-ratio:2.54}
.piece-3{left:70%;top:39%;width:28%;--angle:-2deg}.piece-3 .practice-piece-image{aspect-ratio:1.98}
.piece-4{left:3%;top:65%;width:28%;--angle:1deg}.piece-4 .practice-piece-image{aspect-ratio:1.5}
.piece-2{left:39%;top:65%;width:30%;--angle:-2.4deg}.piece-2 .practice-piece-image{aspect-ratio:1.86}
@media(max-width:1100px) and (min-width:901px){.practice-room-title{font-size:54px;left:21%;top:41%}.practice-piece-detail p{font-size:10px}}
@media(max-width:900px){.practice-page .page-inner{margin-top:110px}.practice-room{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:65px 30px;width:86%;padding-bottom:70px}.practice-room-title{position:static;grid-column:1 / 3;width:auto;font-size:clamp(42px,8vw,68px);margin:15px 0 10px}.practice-piece{position:relative;left:auto;top:auto;width:100%;transform:rotate(var(--angle))}.piece-1{grid-column:1 / 3;width:86%}.piece-2{margin-top:25px}.piece-3{margin-top:85px}.piece-5{margin-top:45px}.practice-piece-detail{opacity:1;transform:none}.practice-room.has-active .practice-piece:not(.is-active) .practice-piece-image{filter:none}.practice-piece h3{font-size:20px}}
@media(max-width:520px){.practice-room{display:flex;flex-direction:column;gap:48px}.practice-room-title{font-size:46px}.practice-piece{width:94%;margin:0}.piece-2,.piece-5{align-self:flex-end;width:88%}.piece-3{width:100%}.practice-piece-detail{display:block}}
@media(prefers-reduced-motion:reduce){.practice-piece{transform:rotate(var(--angle))!important}.practice-piece-image,.practice-piece-detail{transition:none}.practice-piece.is-active .practice-piece-image{transform:none}}
/* Individually composed photographic planes; captions stay in the reading plane. */
@media(min-width:901px){
 .practice-page .practice-room{width:94%;height:max(790px,calc(100svh - 125px))}
 .practice-page .practice-piece{transform:translate3d(var(--px,0px),var(--py,0px),0)}
 .practice-page .practice-piece-image{transform:perspective(1100px) rotateX(var(--plane-x)) rotateY(var(--plane-y)) rotateZ(var(--angle)) scale(var(--plane-scale,1));transform-origin:var(--origin,50% 50%);backface-visibility:hidden}
 .practice-page .practice-piece.is-active .practice-piece-image{transform:perspective(1100px) rotateX(var(--plane-x)) rotateY(var(--plane-y)) rotateZ(var(--angle)) scale(calc(var(--plane-scale,1)*1.025))}
 .practice-page .piece-1{left:12%;top:1%;width:38%;--plane-x:4deg;--plane-y:12deg;--angle:-1.5deg;--plane-scale:1.02;--origin:20% 45%}
 .practice-page .piece-1 .practice-piece-image{aspect-ratio:1.78}
 .practice-page .piece-5{left:59%;top:3%;width:32%;--plane-x:-4deg;--plane-y:-13deg;--angle:2.4deg;--plane-scale:.96;--origin:70% 50%}
 .practice-page .piece-5 .practice-piece-image{aspect-ratio:2.54}
 .practice-page .piece-3{left:66%;top:37%;width:31%;--plane-x:3deg;--plane-y:-16deg;--angle:-2deg;--plane-scale:.96;--origin:80% 50%}
 .practice-page .piece-3 .practice-piece-image{aspect-ratio:1.98}
 .practice-page .piece-4{left:11%;top:67%;width:27%;--plane-x:7deg;--plane-y:10deg;--angle:1deg;--plane-scale:.97;--origin:20% 50%}
 .practice-page .piece-4 .practice-piece-image{aspect-ratio:1.5}
 .practice-page .piece-2{left:44%;top:64%;width:28%;--plane-x:-8deg;--plane-y:12deg;--angle:-2.8deg;--plane-scale:1.04;--origin:45% 60%}
 .practice-page .piece-2 .practice-piece-image{aspect-ratio:1.86}
 .practice-page .practice-room-title{left:15%;top:42%;width:46%;font-size:clamp(48px,5.3vw,82px);line-height:.98}
 .practice-page .practice-piece-caption{position:absolute;padding:0;display:block;width:120px;top:20%}
 .practice-page .practice-piece-number{display:block;margin-bottom:9px}
 .practice-page .practice-piece h3{font-size:clamp(16px,1.25vw,20px);line-height:1.35}
 .practice-page .piece-1 .practice-piece-caption{right:calc(100% + 20px);width:110px}
 .practice-page .piece-4 .practice-piece-caption{right:calc(100% + 18px);width:100px;top:25%}
 .practice-page .piece-5 .practice-piece-caption{left:calc(100% + 20px);width:100px;top:12%}
 .practice-page .piece-3 .practice-piece-caption{left:15%;top:calc(100% + 24px);width:80%}
 .practice-page .piece-2 .practice-piece-caption{left:calc(100% + 25px);width:145px;top:48%}
 .practice-page .practice-piece-detail{margin-top:10px}
}
@media(min-width:901px) and (max-width:1200px){
 .practice-page .practice-room{height:900px;width:90%}
 .practice-page .practice-room-title{top:35%;left:12%;font-size:56px}
 .practice-page .piece-1{left:6%;width:43%}.practice-page .piece-5{left:60%;width:36%}
 .practice-page .piece-3{left:65%;top:37%;width:33%}
 .practice-page .piece-4{left:4%;top:65%;width:31%}.practice-page .piece-2{left:43%;top:64%;width:32%}
 .practice-page .practice-piece .practice-piece-caption{position:relative;left:auto;right:auto;top:auto;width:100%;padding-top:20px;display:grid;grid-template-columns:22px 1fr}
 .practice-page .practice-piece-number{margin:0}.practice-page .practice-piece-detail{grid-column:2}
}
@media(prefers-reduced-motion:reduce) and (min-width:901px){.practice-page .practice-piece{transform:none!important}.practice-page .practice-piece.is-active .practice-piece-image{transform:perspective(1100px) rotateX(var(--plane-x)) rotateY(var(--plane-y)) rotateZ(var(--angle)) scale(var(--plane-scale,1))}}
/* Reference-proportioned desktop composition: one 16:9 exhibition stage. */
@media(min-width:901px){
 .practice-page .page-inner{margin:0;width:100%}
 .practice-page .back-home{position:absolute;left:3%;top:94px;z-index:6;margin:0}
 .practice-page .practice-room{width:100%;max-width:none;height:max(720px,100svh);margin:0}
 .practice-page .practice-room-title{left:9%;top:37%;width:48%;font-size:clamp(68px,7.2vw,124px);line-height:.88;letter-spacing:-.055em;color:#d5e0e3;z-index:3}
 .practice-page .practice-room-title br+*{margin-left:0}
 .practice-page .piece-1{left:13%;top:8%;width:36%;--plane-x:7deg;--plane-y:22deg;--angle:-1.7deg;--plane-scale:1.08;--origin:25% 45%}
 .practice-page .piece-1 .practice-piece-image{aspect-ratio:1.58}
 .practice-page .piece-5{left:56%;top:9%;width:28%;--plane-x:-7deg;--plane-y:-24deg;--angle:2.6deg;--plane-scale:1.06;--origin:50% 50%}
 .practice-page .piece-5 .practice-piece-image{aspect-ratio:1.85}
 .practice-page .piece-3{left:64%;top:39%;width:27%;--plane-x:5deg;--plane-y:-25deg;--angle:-2.8deg;--plane-scale:1.04;--origin:70% 50%}
 .practice-page .piece-3 .practice-piece-image{aspect-ratio:1.62}
 .practice-page .piece-4{left:11%;top:69%;width:25%;--plane-x:10deg;--plane-y:16deg;--angle:1deg;--plane-scale:1.03;--origin:25% 45%}
 .practice-page .piece-4 .practice-piece-image{aspect-ratio:1.55}
 .practice-page .piece-2{left:40%;top:63%;width:26%;--plane-x:-16deg;--plane-y:22deg;--angle:-3deg;--plane-scale:1.08;--origin:45% 55%}
 .practice-page .piece-2 .practice-piece-image{aspect-ratio:1.65}
 .practice-page .practice-piece .practice-piece-caption{position:absolute;display:block;padding:0;width:110px;top:26%;left:auto;right:auto}
 .practice-page .piece-1 .practice-piece-caption{right:calc(100% + 24px)}
 .practice-page .piece-4 .practice-piece-caption{right:calc(100% + 22px);width:95px}
 .practice-page .piece-5 .practice-piece-caption{left:calc(100% + 28px);top:24%}
 .practice-page .piece-3 .practice-piece-caption{left:calc(100% + 20px);width:100px}
 .practice-page .piece-2 .practice-piece-caption{left:calc(100% + 40px);top:58%;width:145px}
 .practice-page .practice-piece h3{font-size:clamp(14px,1.15vw,20px)}
 .practice-page .practice-piece-number{margin-bottom:8px}
}
.practice-cursor-trail{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9}
@media(max-width:1100px) and (min-width:901px){.practice-page .practice-piece .practice-piece-caption{width:80px}.practice-page .piece-2 .practice-piece-caption{width:105px;left:calc(100% + 20px)}.practice-page .practice-piece-detail p{font-size:9px}.practice-page .practice-piece-detail span{font-size:8px}.practice-page .practice-room-title{font-size:7.4vw}}
@media(prefers-reduced-motion:reduce),(pointer:coarse){.practice-cursor-trail{display:none}}

/* The Shape of Hugging: scoped photographic project narrative. */
.hugging-page {background:#050606;color:#dce2df}
.hugging-page .page-inner {max-width:1160px;margin:auto;padding-bottom:90px}
.hugging-page #page-title {font-size:clamp(46px,6.6vw,94px);line-height:1.05;max-width:1000px;margin-bottom:24px}
.hugging-page .page-intro {max-width:900px;font-style:italic}
.hugging-page .hug-info {display:grid;grid-template-columns:1fr 2fr .4fr;gap:32px;margin:50px 0 64px;font-size:15px;line-height:1.8}
.hugging-page .hug-info dt,.hugging-page .hug-number {font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#91ada3;margin-bottom:12px}
.hugging-page .hug-info dd {margin:0}
.hugging-page .hug-photo {margin:64px 0}
.hugging-page .hug-photo img {display:block;width:100%;height:auto}
.hugging-page .hug-section {padding:85px 0 30px}
.hugging-page .hug-section h2 {font-family:var(--serif,Georgia,serif);font-size:clamp(32px,4.2vw,58px);font-weight:400;line-height:1.14;text-align:center;margin:20px auto 52px;max-width:850px;color:#e0e6e2}
.hugging-page .hug-number {text-align:center}
.hugging-page .hug-copy {max-width:690px;margin:0 auto;font-size:clamp(16px,1.3vw,18px);line-height:1.85;color:#b7c2bc}
.hugging-page .hug-copy p {margin:0 0 23px}
.hugging-page .hug-copy strong {font-weight:400;color:#e0e6e2}
.hugging-page .hug-question,.hugging-page .hug-verse {font-family:var(--serif,Georgia,serif);font-size:clamp(23px,2.4vw,32px);line-height:1.65;margin:35px 0!important}
.hugging-page .hug-bang {font-family:var(--serif,Georgia,serif);font-size:clamp(62px,8vw,110px);line-height:1.2;padding:30px 0;text-align:center}
.hugging-page .hug-pair {display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start;margin:64px auto;max-width:960px}
.hugging-page .hug-pair .hug-photo {margin:0}
.hugging-page .hug-pair .hug-photo:nth-child(2) {margin-top:90px}
.hugging-page .hug-ending {text-align:center;padding:30px 0 80px;font-family:var(--serif,Georgia,serif);font-size:clamp(24px,3vw,36px)}
@media(max-width:650px){.hugging-page .hug-info{grid-template-columns:1fr;gap:20px;margin:30px 0}.hugging-page .hug-section{padding-top:55px}.hugging-page .hug-photo{margin:36px 0}.hugging-page .hug-pair{gap:14px;margin:36px 0}.hugging-page .hug-pair .hug-photo:nth-child(2){margin-top:40px}}
/* Project-local, silent balloon/paint encounter; no global cursor overrides. */
.hugging-page.hug-cursor-active,.hugging-page.hug-cursor-active *{cursor:none}
.hug-paint-layer{position:fixed;inset:0;width:100%;height:100%;z-index:9;pointer-events:none}
.hug-balloon{position:fixed;left:0;top:0;width:19px;height:24px;margin:-13px 0 0 -9px;z-index:50;pointer-events:none;transform-origin:50% 55%;will-change:transform;transition:opacity .2s}
.hug-balloon i{display:block;width:100%;height:100%;border-radius:48% 49% 46% 47%;border:.5px solid #b4d6df88;background:radial-gradient(ellipse at 28% 23%,#eefaffbb 0%,#c5e1ec55 10%,transparent 30%),radial-gradient(ellipse at 55% 42%,#6c9eb52b 30%,#a0c1ce77 76%,#d3e4e888 100%);box-shadow:inset -2px -2px 4px #253c4e55;transition:opacity .18s}
.hug-balloon b{position:absolute;top:23px;left:8px;width:4px;height:4px;background:#93b4c399;clip-path:polygon(50% 0,100% 100%,0 100%)}
.hug-balloon.is-burst i,.hug-balloon.is-burst b{opacity:0}
.hug-reset{position:fixed;right:25px;bottom:22px;z-index:15;color:#9ba9a8;font-size:10px;letter-spacing:.14em;padding:10px;background:#050606;border:0;transition:color .3s}
.hug-reset:hover{color:#e0e6e2}
@media(prefers-reduced-motion:reduce),(hover:none),(pointer:coarse){.hug-balloon,.hug-paint-layer,.hug-reset{display:none}.hugging-page.hug-cursor-active,.hugging-page.hug-cursor-active *{cursor:auto}}
/* Lunar project: a single pinned photographic pull-back. */
.lunar-page{background:#050606!important}
.lunar-page .page-inner{width:100%;max-width:none;margin:0;padding:0 0 80px}
.lunar-page .page-inner>.back-home,.lunar-page #page-kicker,.lunar-page #page-intro{display:none}
.lunar-page #page-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.lunar-film{height:100svh;width:100%;position:relative;overflow:hidden;background:#050606;outline:none}
.lunar-images{position:absolute;inset:0}
.lunar-shot{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;will-change:transform,opacity}
.lunar-surface{inset:auto;object-fit:contain}
.lunar-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10vw;opacity:0;pointer-events:none}
.lunar-title h1{font-size:clamp(34px,6vw,84px);line-height:1.12;max-width:1000px}
.lunar-title p{font-family:Georgia,serif;font-size:clamp(20px,2.5vw,32px);line-height:1.5}
.lunar-title .lunar-medium{font-family:Arial,sans-serif;font-size:13px;letter-spacing:.08em;color:#9baaa8}
.lunar-scroll{position:absolute;bottom:24px;left:0;width:100%;text-align:center;font-size:9px;letter-spacing:.2em;color:#becdca;text-shadow:0 1px 4px #000}
.lunar-copy{max-width:750px;width:86%;margin:0 auto;padding:130px 0;font-size:clamp(18px,2vw,23px);line-height:1.85}
.lunar-copy h2,.lunar-copy h3{font-family:Georgia,serif;font-weight:400;font-size:clamp(30px,3.8vw,50px);line-height:1.3;margin:0 0 44px}
.lunar-copy h3{margin-top:60px}
.lunar-page .lunar-label,.lunar-info h2{font-family:Arial,sans-serif;font-size:11px;letter-spacing:.2em;text-transform:uppercase;font-weight:400;color:#9bb9b5}
.lunar-ar a{border-bottom:1px solid #738d88;overflow-wrap:anywhere}
.lunar-back{padding:18px 0;font-size:13px;letter-spacing:.06em;border-bottom:1px solid #738d8855;margin-top:20px}
.lunar-question{max-width:1030px;width:86%;margin:0 auto;padding:140px 0}
.lunar-question p{font-family:Georgia,serif;font-size:clamp(32px,4.5vw,62px);line-height:1.45}
.lunar-info{max-width:750px;width:86%;margin:0 auto;padding:60px 0 130px;font-size:14px;line-height:1.9}
.lunar-page .related-links{width:86%;max-width:1030px;margin:auto}
.lunar-still .lunar-film{height:auto;overflow:visible;padding-top:100px}
.lunar-still .lunar-images{position:relative;display:flex;flex-direction:column-reverse;gap:30px}
.lunar-still .lunar-shot{position:static;width:100%;height:75svh;object-fit:contain}
.lunar-still .lunar-title{position:relative;opacity:1;padding:100px 7%}
.lunar-still .lunar-scroll{display:none}
@media(max-width:650px){.lunar-copy{padding:80px 0}.lunar-question{padding:70px 0}.lunar-info{padding-bottom:70px}}
/* Lunar refinement: transparent header and stable first frame, route scoped. */
body:has(.lunar-page:not([hidden])) header{background:transparent;text-shadow:0 1px 4px #000,0 0 10px #000}
body:has(.lunar-page:not([hidden])) header a{color:#e0e6e2}
.content-page.lunar-page{transform:none;overflow-x:hidden;transition:opacity .7s}
.lunar-page .lunar-surface{width:min(90vw,86svh);height:min(90vw,86svh);left:50%;top:50%;transform:translate(-50%,-50%)}
.lunar-page .lunar-encounter{position:relative;isolation:isolate;overflow:hidden;min-height:740px;padding-bottom:150px}
.lunar-page .lunar-encounter .lunar-copy{max-width:1150px;width:86%;position:relative;z-index:1}
.lunar-page .lunar-introduction{max-width:700px;font-size:clamp(16px,1.55vw,19px);line-height:1.85;color:#bdc9c5}
.lunar-page .lunar-encounter h3{max-width:740px;font-size:clamp(34px,4.5vw,62px);line-height:1.18;margin-top:60px;color:#dce5e1}
.lunar-page .lunar-orbit{position:absolute;width: min(600px,48vw);height:260px;right:-130px;bottom:0;overflow:hidden;z-index:0;pointer-events:none;opacity:.4}
.lunar-page .lunar-globe{width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 28% 22%,transparent 5%,#02040570 44%,#020405fa 78%),url('assets/lunar/surface.jpg') center/cover;filter:grayscale(1) brightness(.48);box-shadow:inset 1px 2px 2px #cedbe050;transform:translateY(12%)}
.lunar-page .lunar-ar{max-width:1150px;width:86%;margin:0 auto;padding:110px 0 160px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,100px);align-items:center}
.lunar-page .lunar-ar h2{font-size:clamp(36px,4vw,56px);font-style:normal;margin-bottom:40px}
.lunar-page .lunar-ar p{font-size:16px;line-height:1.85;color:#becac6;margin:22px 0}
.lunar-page .lunar-ar .lunar-see{font-family:Georgia,serif;font-size:clamp(25px,2.4vw,32px);margin:30px 0}
.lunar-page .lunar-ar a{color:#a9c9c3;text-decoration:none;border-bottom:1px solid #8cb9ae66;font-size:clamp(13px,1.35vw,16px);overflow-wrap:anywhere}
.lunar-page .lunar-ar figure{margin:0;min-width:0}
.lunar-page .lunar-ar img{display:block;width:100%;height:auto;filter:none;mask:none}
.lunar-page .lunar-back{font-size:11px;letter-spacing:.12em}
.lunar-page .lunar-question{position:relative;isolation:isolate;overflow:hidden;max-width:none;width:100%;padding:100px 7% 300px}
.lunar-page .lunar-question-copy{position:relative;z-index:1;max-width:1030px;margin:auto}
.lunar-page .lunar-question p{font-size:clamp(29px,4.1vw,56px);line-height:1.25;margin:0;max-width:1030px}
.lunar-page .lunar-question .lunar-orbit{right:-90px;height:250px}
.lunar-page .lunar-dust{position:absolute;inset:0 20% 20% 0;opacity:.6}
.lunar-page .lunar-dust i{position:absolute;left:var(--dx);top:var(--dy);width:var(--size);height:var(--size);border-radius:45% 60% 30% 50%;background:#b6b8b5;filter:blur(1px)}
.lunar-page .lunar-info{text-align:center;padding:90px 0 120px;max-width:750px}
.lunar-page .lunar-info h2{font-size:11px;letter-spacing:.22em;margin-bottom:32px}
.lunar-page .lunar-date{font-family:Georgia,serif;font-size:clamp(26px,3vw,32px);margin:0 0 22px}
.lunar-page .lunar-place{font-size:clamp(18px,2vw,20px);line-height:1.7}
.lunar-still .lunar-surface{width:100%;height:75svh;transform:none}
@media(max-width:650px){.lunar-page .lunar-encounter{min-height:0;padding-bottom:160px}.lunar-page .lunar-orbit{width:340px;right:-140px;height:150px}.lunar-page .lunar-ar{grid-template-columns:1fr;padding:65px 0 90px;gap:45px}.lunar-page .lunar-ar img{max-width:480px;margin:auto}.lunar-page .lunar-question{padding:65px 7% 210px}.lunar-page .lunar-question p br{display:none}.lunar-page .lunar-question .lunar-orbit{height:155px;right:-140px}.lunar-page .lunar-info{padding:65px 0 85px}}
@media(prefers-reduced-motion:reduce){.lunar-page .lunar-dust{display:none}.lunar-page .lunar-last-line{opacity:1!important}}
.lunar-page .lunar-print,.lunar-page .lunar-table{opacity:0}
.lunar-still .lunar-print,.lunar-still .lunar-table{opacity:1}
/* Shared narrative moon and local, persistent flour overlay. */
.lunar-shared-moon{position:fixed;right:-140px;bottom:-240px;width:min(580px,48vw);aspect-ratio:1;z-index:9;pointer-events:none;opacity:0}
.lunar-shared-moon .lunar-globe{transform:none;width:100%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 28% 22%,transparent 5%,#02040570 44%,#020405fa 78%),url('assets/lunar/surface.jpg') center/cover;filter:grayscale(1) brightness(.4);box-shadow:inset 1px 2px 2px #cedbe030}
.lunar-page .lunar-ar{display:block;text-align:center;max-width:720px;padding:110px 0 130px}
.lunar-page .lunar-qr-area{max-width:500px;margin:65px auto 0}
.lunar-page .lunar-qr-area p{font-size:14px;line-height:1.8}
.lunar-page .lunar-qr-area>a:first-of-type{display:flex;align-items:center;flex-direction:column;gap:20px;border:0;margin:28px auto 18px;font-size:10px;letter-spacing:.12em}
.lunar-page .lunar-qr-area img{width:170px;height:170px;max-width:100%;display:block;image-rendering:pixelated}
.lunar-scan-hint{display:none;position:absolute;bottom:15px;width:100%;text-align:center;font-size:10px;letter-spacing:.16em;line-height:1.8;color:#bac9c6}
.lunar-scan-hint span{font-size:10px;letter-spacing:.02em}
.lunar-scan-mode .lunar-scan-hint{display:block}
.lunar-scan-mode .lunar-scroll,.lunar-scan-mode .lunar-title,.lunar-scan-mode .lunar-print,.lunar-scan-mode .lunar-table{visibility:hidden!important}
.lunar-scan-mode .lunar-images,.lunar-scan-mode .lunar-surface{opacity:1!important}
.lunar-scan-mode .lunar-surface{width:min(88vw,72svh)!important;height:min(88vw,72svh)!important}
.lunar-flour-layer{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}
.lunar-page.lunar-flour-cursor,.lunar-page.lunar-flour-cursor *{cursor:none}
.lunar-flour-bag{position:fixed;top:0;left:0;margin:-24px 0 0 -10px;width:22px;height:30px;z-index:50;pointer-events:none;opacity:0;background:linear-gradient(100deg,#8e897b,#d0c8b4 20%,#b0a998 27%,#d6ceba 55%,#b2ab9a 83%,#827e70);clip-path:polygon(10% 0,88% 4%,87% 18%,100% 87%,86% 100%,5% 95%,0 81%,13% 18%);filter:drop-shadow(1px 2px 2px #0007)}
.lunar-flour-bag i{position:absolute;top:4px;left:3px;width:16px;height:4px;border-top:1px solid #777366;border-bottom:1px solid #e0d7c177;transform:rotate(5deg)}
.lunar-flour-bag span{position:absolute;left:4px;top:16px;font:4px Georgia,serif;letter-spacing:.5px;color:#5c6059;border-block:1px solid #777c6e66;padding:2px 0}
@media(max-width:650px){.lunar-shared-moon{width:300px;right:-170px;bottom:-130px}.lunar-page .lunar-ar{padding:70px 0 85px}.lunar-page .lunar-qr-area{margin-top:40px}}
@media(prefers-reduced-motion:reduce){.lunar-shared-moon{display:none}}
.lunar-scan-mode.lunar-still .lunar-film{height:100svh;padding:0;overflow:hidden}
.lunar-scan-mode.lunar-still .lunar-images{position:absolute;inset:0;display:block}
.lunar-scan-mode.lunar-still .lunar-surface{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
/* Quiet narrative rhythm; only this project. */
.lunar-shared-moon{width:min(560px,42vw);right:-100px;bottom:-220px}
.lunar-sphere{position:static;display:block;width:100%;height:100%;object-fit:contain}
.lunar-page .lunar-title h1{font-size:clamp(34px,4.6vw,64px)}
.lunar-page .lunar-encounter{min-height:0;padding-bottom:30px}
.lunar-page .lunar-encounter .lunar-copy{padding:85px 0 50px}
.lunar-page .lunar-encounter h3{font-size:clamp(30px,3.4vw,46px);max-width:650px;line-height:1.25;margin-top:45px}
.lunar-page .lunar-introduction{font-size:clamp(17px,1.5vw,19px);max-width:700px}
.lunar-page .lunar-question{padding:45px 7% 150px}
.lunar-page .lunar-question-copy{max-width:1150px}
.lunar-page .lunar-question p{font-size:clamp(29px,3.3vw,44px);max-width:750px;line-height:1.3}
.lunar-page .lunar-info{padding:65px 0 85px}
.lunar-page .lunar-info h2{font-size:11px}
.lunar-page .lunar-invitation{font-family:Georgia,serif;font-size:clamp(24px,2.6vw,34px);line-height:1.35;margin:0 auto 20px}
.lunar-page .lunar-workshop-description{font-size:17px;line-height:1.7;max-width:560px;margin:0 auto 34px}
.lunar-page .lunar-date{font-size:clamp(30px,3vw,38px);margin-bottom:14px}
.lunar-page .lunar-place{font-size:14px;line-height:1.8}
.lunar-page .lunar-ar{padding:65px 0 85px}
.lunar-page .lunar-ar h2{font-size:clamp(32px,3.3vw,42px);margin-bottom:25px}
.lunar-page .lunar-ar .lunar-see{font-size:28px;margin:20px 0}
.lunar-page .lunar-qr-area{margin-top:38px}
.lunar-page .lunar-qr-area p{font-size:16px}
.lunar-test-panel{position:fixed;bottom:16px;left:16px;z-index:60;padding:12px 16px;background:#121816;border:1px solid #738d8866;font:11px Arial;color:#cedbd6;max-width:calc(100vw - 32px)}
.lunar-test-panel select{margin-left:12px;background:#050606;color:#dce5e1;padding:5px}
.lunar-test-panel small{display:block;margin-top:8px;color:#91ada3}
@media(max-width:650px){.lunar-shared-moon{width:260px;right:-150px;bottom:-130px}.lunar-page .lunar-encounter .lunar-copy{padding:60px 0 30px}.lunar-page .lunar-question{padding-bottom:95px}.lunar-page .lunar-workshop-description{font-size:16px}}
/* NASA sphere at the right; compact, left-aligned AR reading column. */
.lunar-shared-moon{width:56vw;max-width:850px;right:-12vw;bottom:-16vw;transform-origin:center center}
.lunar-page .lunar-question{padding-bottom:90px}
.lunar-page .lunar-ar{width:86%;max-width:1150px;text-align:left;padding:39px 0 75px;position:relative}
.lunar-page .lunar-ar h2{max-width:560px;margin:0 0 45px}
.lunar-page .lunar-qr-area{max-width:490px;margin:0}
.lunar-page .lunar-qr-area p{font-size:16px;line-height:1.8;margin:0 0 20px}
.lunar-page .lunar-qr-area img{margin:25px 0 4px;width:170px;height:170px}
.lunar-page .lunar-qr-area p a{color:#a9c9c3;display:inline;border-bottom:1px solid #8cb9ae66;letter-spacing:normal;font-size:inherit}
.lunar-page .lunar-back{margin-top:16px}
@media(max-width:650px){.lunar-shared-moon{width:68vw;right:-35vw;bottom:-20vw}.lunar-page .lunar-question{padding-bottom:55px}.lunar-page .lunar-ar{padding-top:25px}.lunar-page .lunar-qr-area{max-width:85%}.lunar-page .lunar-ar h2{font-size:30px;margin-bottom:40px}}
/* ABOUT portrait film: top-layer modal, no changes to the portrait layout. */
dialog.about-encounter{position:fixed;inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:#000;box-shadow:none;overflow:hidden;opacity:0;transition:opacity .95s ease;outline:none}
dialog.about-encounter.is-visible{opacity:1;transition-duration:.4s}
dialog.about-encounter::backdrop{background:#000;backdrop-filter:none;opacity:0;transition:opacity .95s ease}
dialog.about-encounter.is-visible::backdrop{opacity:1;transition-duration:.4s}
.about-encounter video{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.about-encounter-close{position:absolute;right:max(22px,env(safe-area-inset-right));top:max(18px,env(safe-area-inset-top));z-index:2;padding:10px;width:44px;height:44px;font:30px/24px Arial,sans-serif;font-weight:200;color:#b9c6c8;background:transparent;border:0;text-shadow:0 1px 5px #000;cursor:pointer}
.about-encounter-close:hover{color:#fff}
.about-encounter-error{position:absolute;left:10%;right:10%;top:45%;margin:0;text-align:center;color:#c5cfce;font:14px/1.8 Arial,sans-serif}
@media(prefers-reduced-motion:reduce){dialog.about-encounter,dialog.about-encounter::backdrop{transition:none}}
.about-touch-hint{position:fixed;left:0;top:0;z-index:51;pointer-events:none;font:italic 13px/1.4 Georgia,'Times New Roman',serif;color:#dce4e5;white-space:nowrap;opacity:0;transition:opacity .2s ease;will-change:transform}
.about-touch-hint.visible{opacity:1}
.about-touch-hint.instant-hide{transition:none;opacity:0}
.about-touch-mobile{display:none;position:absolute;left:0;right:0;bottom:18px;text-align:center;font:italic 12px/1.5 Georgia,'Times New Roman',serif;color:#bbc9cd;pointer-events:none;z-index:3}
@media(hover:none),(pointer:coarse){.about-touch-mobile{display:block}.about-touch-hint{display:none}}
@media(prefers-reduced-motion:reduce){.about-touch-hint{transition:none}}
.lunar-material-active .page-inner{position:relative;z-index:1}
.lunar-settled-layer{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.lunar-fresh-layer{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}
.lunar-reveal{position:fixed;right:22px;bottom:20px;z-index:65;padding:12px 14px;background:#050606;color:#b7cac4;font:10px Arial,sans-serif;letter-spacing:.12em;animation:lunar-reveal-in .8s ease both}
.lunar-reveal[hidden]{display:none}
.lunar-trace-notice{position:fixed;bottom:65px;right:28px;z-index:65;pointer-events:none;font:italic 15px Georgia,serif;color:#d4ddd7;opacity:0;transition:opacity .5s}
.lunar-trace-notice.visible{opacity:1}
.lunar-page .lunar-traces-ending{text-align:center;margin:30px auto 75px;font:italic 22px/1.5 Georgia,serif;color:#a9c9c3}
@keyframes lunar-reveal-in{from{opacity:0}to{opacity:1}}
@media(max-width:650px){.lunar-reveal{right:12px;bottom:12px;font-size:9px}.lunar-trace-notice{right:20px;font-size:13px}}
.lunar-trace-notice{right:auto;bottom:auto;margin:0;font-size:13px;color:#c9ceca;max-width:225px;white-space:nowrap;pointer-events:none}
/* Text-only contact page. */
.contact-page{background:#050606}
.contact-page .page-inner{max-width:1050px;padding-top:clamp(25px,8vh,90px);padding-bottom:100px}
.contact-page #page-title{font-size:clamp(40px,6vw,78px);max-width:100%;line-height:1.12;color:#dce5e1}
.contact-page .page-intro{font:italic clamp(18px,2.1vw,25px)/1.7 Georgia,'Times New Roman',serif;max-width:720px;color:#a9beb5;margin:32px 0 60px}
.contact-page .contact-email{display:inline-block;font-family:Georgia,'Times New Roman',serif;font-size:clamp(25px,3.5vw,42px);color:#dce5e1;padding-bottom:10px;border-bottom:1px solid #91ada34d;transition:color .25s,border-color .25s;overflow-wrap:anywhere}
.contact-page .contact-email span{display:inline-block;margin-left:15px;font-size:.65em;color:#91ada3}
.contact-page .contact-email:hover{color:#b9d9cf;border-color:#a9c9c3}

.mush-festival-video iframe{display:block;width:100%;aspect-ratio:16/9;border:0;background:#020504}
