/* v13 art directions: design 02 fullscreen navigation and design 03 exhibition interface */
:root{--v13-ease:cubic-bezier(.18,.76,.18,1);--v13-paper:#efeee9;--v13-ink:#171715;--v13-red:#d83a2f;}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:clip}
.site-header{position:relative;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px clamp(18px,3.2vw,52px);}
.site-header .wordmark{white-space:nowrap}
.site-header nav{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(12px,2vw,28px)}
.site-header nav a{font:10px/1.3 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em;text-decoration:none}
.site-header nav a::after{display:none}
.site-header nav a:hover{opacity:.55}
.style-switch{border:1px solid currentColor;padding:8px 10px!important}
.motion-toggle{display:inline-flex;align-items:center;gap:7px;border:1px solid currentColor;background:transparent;color:inherit;padding:8px 10px;font:10px "DM Mono",monospace;cursor:pointer;white-space:nowrap}
.motion-toggle-dot{width:6px;height:6px;border-radius:50%;background:#9dba89;display:inline-block}
.motion-toggle[aria-pressed="false"] .motion-toggle-dot{background:#888}
.scroll-progress{position:fixed;inset:0 0 auto;height:2px;z-index:800;background:rgba(127,127,127,.16);pointer-events:none}
#scroll-progress-fill{display:block;width:0;height:100%;background:currentColor}
.pointer-ui{z-index:900}

/* DESIGN 02 — fullscreen project index */
body.variant-fullscreen{--paper:#111210;--ink:#f2f0e9;--muted:#aaa9a1;--line:rgba(242,240,233,.22);background:#111210;color:#f2f0e9;font-family:"Manrope",Arial,sans-serif}
.variant-fullscreen .site-header{position:absolute;top:0;left:0;right:0;color:#f2f0e9;border:0;padding-top:22px;padding-bottom:20px}
.variant-fullscreen .wordmark{font-size:12px;letter-spacing:.12em}
.variant-fullscreen .wordmark span{color:rgba(242,240,233,.65);font-size:9px}
.variant-fullscreen .site-header nav a{color:rgba(242,240,233,.88)}
.variant-fullscreen .motion-toggle{color:rgba(242,240,233,.78);border-color:rgba(242,240,233,.28)}
.fullscreen-stage{position:relative;isolation:isolate;min-height:min(900px,100svh);min-height:max(760px,100svh);display:grid;grid-template-columns:minmax(0,1fr);overflow:hidden;background:#111210}
.fullscreen-stage .stage-visual{position:absolute;z-index:0;inset:0;width:auto;aspect-ratio:auto;height:100%;background:#111210;overflow:hidden;transform:translate3d(var(--stage-x,0px),var(--stage-y,0px),0) scale(1.015);transition:transform .9s var(--v13-ease)}
.fullscreen-stage .stage-visual .hero-shader-fallback,.fullscreen-stage .stage-visual .hero-shader-canvas,.fullscreen-stage .stage-visual #stage-preview-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.fullscreen-stage .stage-visual .hero-shader-fallback{opacity:.98;filter:saturate(.78) brightness(.68);transform:scale(1.015);transition:opacity .5s ease,filter .6s ease,transform 1.1s var(--v13-ease)}
.fullscreen-stage .stage-visual .hero-shader-canvas{opacity:0;transition:opacity .4s ease}
.fullscreen-stage .stage-visual.shader-ready .hero-shader-canvas{opacity:.94}
.fullscreen-stage .stage-visual.shader-ready .hero-shader-fallback{opacity:0}
.fullscreen-stage .stage-visual #stage-preview-video{z-index:3;display:none;filter:brightness(.68) saturate(.78);transform:scale(1.015)}
.fullscreen-stage .stage-visual.is-video-preview #stage-preview-video{display:block}
.fullscreen-stage .stage-visual.is-video-preview .hero-shader-fallback,.fullscreen-stage .stage-visual.is-video-preview .hero-shader-canvas{opacity:0!important}
.fullscreen-stage::after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(9,10,9,.95) 0%,rgba(9,10,9,.78) 26%,rgba(9,10,9,.32) 62%,rgba(9,10,9,.24) 100%),linear-gradient(0deg,rgba(9,10,9,.78) 0%,transparent 32%,rgba(9,10,9,.18) 100%)}
.fullscreen-stage::before{content:"";position:absolute;z-index:2;inset:0;pointer-events:none;opacity:.19;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.83' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.23'/%3E%3C/svg%3E");mix-blend-mode:soft-light}
.stage-content{position:relative;z-index:4;display:grid;grid-template-columns:minmax(245px,.86fr) minmax(320px,1fr);gap:clamp(30px,7vw,130px);align-items:center;padding:130px clamp(20px,5vw,84px) 100px;min-height:100svh}
.stage-intro{align-self:center;max-width:620px}
.stage-eyebrow,.stage-project-label,.stage-bottom,.stage-index-label{font:10px/1.6 "DM Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:rgba(242,240,233,.7)}
.stage-intro h1{margin:clamp(42px,7vh,82px) 0 35px;font-size:clamp(84px,13.4vw,210px);line-height:.75;letter-spacing:-.105em;font-weight:500;color:#f4f2eb}
.stage-intro h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.115em}
.stage-summary{max-width:340px;font-size:clamp(14px,1.45vw,18px);line-height:1.55;color:rgba(242,240,233,.82)}
.stage-intro-bottom{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin-top:32px}
.stage-link{font:10px "DM Mono",monospace;letter-spacing:.1em;text-transform:uppercase;border-bottom:1px solid rgba(242,240,233,.64);padding:0 0 8px;color:#f2f0e9}
.stage-list{align-self:center;max-width:760px;width:100%;justify-self:end}
.stage-index-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(242,240,233,.42)}
.stage-project-row{appearance:none;width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) 44px 18px;gap:12px;align-items:baseline;text-align:left;padding:14px 0 15px;border:0;border-bottom:1px solid rgba(242,240,233,.21);background:transparent;color:#f2f0e9;cursor:pointer;transition:padding .38s var(--v13-ease),border-color .3s ease,opacity .3s ease;opacity:1;translate:0 0;transform:none}
.stage-project-row .row-index,.stage-project-row .row-year,.stage-project-row .row-arrow{font:10px "DM Mono",monospace;color:rgba(242,240,233,.55)}
.stage-project-row .row-title{font-size:clamp(15px,1.65vw,23px);line-height:1.2;letter-spacing:-.035em;transition:transform .35s var(--v13-ease),letter-spacing .35s var(--v13-ease),color .3s ease;}
.stage-project-row .row-caption{display:block;margin-top:5px;font:9px/1.5 "DM Mono",monospace;letter-spacing:.04em;color:rgba(242,240,233,.56)}
.stage-project-row:hover,.stage-project-row:focus-visible,.stage-project-row.is-current{padding-left:12px;border-bottom-color:rgba(242,240,233,.7)}
.stage-project-row:hover .row-title,.stage-project-row:focus-visible .row-title,.stage-project-row.is-current .row-title{letter-spacing:-.055em;transform:translateX(3px);color:#fff}
.stage-project-row:hover .row-index,.stage-project-row.is-current .row-index{color:#e0d18d}
.stage-project-row:hover .row-arrow,.stage-project-row.is-current .row-arrow{transform:translate(3px,-2px);color:#e0d18d}
.stage-project-row .row-arrow{transition:transform .3s var(--v13-ease)}
.stage-bottom{position:absolute;z-index:4;left:clamp(20px,5vw,84px);right:clamp(20px,5vw,84px);bottom:22px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:14px;border-top:1px solid rgba(242,240,233,.27);font-size:9px}
.stage-bottom strong{color:#f2f0e9;font-weight:400}
.stage-bottom a{color:#f2f0e9;border-bottom:1px solid rgba(242,240,233,.55);padding-bottom:4px}
.stage-bottom .stage-live-title{max-width:40%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.stage-interface-note{position:absolute;right:clamp(20px,5vw,84px);top:50%;z-index:3;transform:translateY(-50%) rotate(90deg);transform-origin:right center;font:9px "DM Mono",monospace;letter-spacing:.14em;color:rgba(242,240,233,.43);text-transform:uppercase;pointer-events:none}
.fullscreen-about,.fullscreen-contact{padding:clamp(76px,10vw,140px) clamp(20px,5vw,84px);border-top:1px solid rgba(242,240,233,.16);background:#111210}
.fullscreen-about .section-heading,.fullscreen-contact .section-heading{border:0}
.fullscreen-about .eyebrow,.fullscreen-contact .eyebrow{color:#9b9b91}
.fullscreen-about .about-content{grid-template-columns:1fr 1fr;gap:8vw}
.fullscreen-about h2,.fullscreen-contact h2{font-size:clamp(50px,8vw,110px);line-height:.89;letter-spacing:-.08em;font-weight:500;color:#f2f0e9;margin:0}
.fullscreen-about .about-copy{max-width:570px;color:rgba(242,240,233,.8)}
.fullscreen-about .about-copy>p:first-child{font-size:clamp(17px,1.8vw,23px);line-height:1.55}
.fullscreen-about .skills-label{color:#9b9b91}
.fullscreen-contact .contact-content{min-height:280px}
.fullscreen-contact .contact-link{color:#f2f0e9;border-color:rgba(242,240,233,.7)}
.fullscreen-contact .contact-bottom{color:#989890}
.fullscreen-contact .contact-bottom a{color:#f2f0e9}
.variant-fullscreen .site-footer{background:#111210;border-color:rgba(242,240,233,.16);color:#97968f}
.variant-fullscreen .site-footer a{color:#f2f0e9}

/* DESIGN 03 — an annotated exhibition interface */
body.variant-exhibition{--paper:#efeee8;--ink:#1b1b18;--muted:#787870;--line:rgba(27,27,24,.25);background:#efeee8;color:#1b1b18;font-family:"Manrope",Arial,sans-serif}
.variant-exhibition::before{content:"";position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.12;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.92' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23grain)' opacity='.15'/%3E%3C/svg%3E")}
.variant-exhibition .site-header{position:sticky;top:0;background:rgba(239,238,232,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(27,27,24,.24);padding-top:16px;padding-bottom:16px}
.variant-exhibition .wordmark{font:600 12px "DM Mono",monospace;letter-spacing:.06em}
.variant-exhibition .wordmark span{display:block;margin:5px 0 0 0;font:9px "DM Mono",monospace;letter-spacing:.08em}
.variant-exhibition .site-header nav a{color:#33332e}
.variant-exhibition .motion-toggle{border-color:rgba(27,27,24,.34);color:#33332e}
.variant-exhibition .motion-toggle-dot{background:var(--v13-red)}
.expo-main{padding-bottom:0}
.expo-intro{position:relative;display:grid;grid-template-columns:minmax(0,1.02fr) minmax(340px,.98fr);gap:clamp(26px,5vw,80px);align-items:center;padding:clamp(46px,7vw,96px) clamp(18px,3.2vw,52px) clamp(48px,6vw,76px);min-height:520px;border-bottom:1px solid var(--line);overflow:hidden}
.expo-title-block{position:relative;z-index:2}
.expo-kicker,.expo-ui-label,.expo-card-index,.expo-inspector-label,.expo-card-meta,.expo-intro-foot,.expo-note{font:10px/1.6 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.12em}
.expo-kicker{color:#7b7a71}
.expo-title-block h1{font-size:clamp(62px,9.4vw,140px);line-height:.8;letter-spacing:-.105em;font-weight:500;margin:48px 0 35px;color:#171715}
.expo-title-block h1 em{font-family:Georgia,serif;font-weight:400}
.expo-description{font-size:clamp(15px,1.4vw,18px);line-height:1.6;max-width:400px;color:#55554f;margin:0}
.expo-intro-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:28px}
.expo-button{display:inline-flex;align-items:center;gap:18px;border:1px solid #22221f;padding:11px 14px;font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;transition:background .25s,color .25s,transform .25s;cursor:pointer;background:transparent;color:#22221f}
.expo-button:hover{background:#22221f;color:#efeee8;transform:translateY(-2px)}
.expo-intro-foot{color:#838279;font-size:9px}
.expo-hero-media{position:relative;width:100%;aspect-ratio:1.22/1;overflow:hidden;background:#d7d5cd;border:1px solid #d0cec5;transform:rotate(.3deg);transition:transform .8s var(--v13-ease)}
.expo-hero-media:hover{transform:rotate(0) scale(1.012)}
.expo-hero-media .hero-shader-fallback,.expo-hero-media .hero-shader-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.expo-hero-media .hero-shader-fallback{transition:opacity .5s ease,transform .8s var(--v13-ease);transform:scale(1.015)}
.expo-hero-media.shader-ready .hero-shader-canvas{opacity:1}
.expo-hero-media.shader-ready .hero-shader-fallback{opacity:0}
.expo-hero-media .expo-media-annotation{position:absolute;z-index:4;left:12px;right:12px;bottom:12px;display:flex;justify-content:space-between;gap:18px;color:#f4f0e6;text-shadow:0 1px 8px rgba(0,0,0,.4);font:9px "DM Mono",monospace;letter-spacing:.1em;text-transform:uppercase;pointer-events:none}
.expo-media-corner{position:absolute;z-index:3;inset:8px;border:1px solid rgba(255,255,255,.45);pointer-events:none;opacity:.35;transition:inset .5s var(--v13-ease),opacity .3s}
.expo-hero-media:hover .expo-media-corner{inset:14px;opacity:.8}
.expo-indexline{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px clamp(18px,3.2vw,52px);border-bottom:1px solid var(--line);background:rgba(225,223,214,.48)}
.expo-indexline .expo-ui-label{color:#696960}
.expo-indexline .expo-index-current{color:var(--v13-red);font:10px "DM Mono",monospace;letter-spacing:.12em}
.expo-board-heading{display:flex;justify-content:space-between;gap:20px;align-items:end;padding:clamp(28px,4vw,52px) clamp(18px,3.2vw,52px) 18px}
.expo-board-heading h2{font-size:clamp(24px,3vw,42px);font-weight:500;letter-spacing:-.06em;margin:0}
.expo-board-heading p{max-width:300px;margin:0;color:#6e6d65;font:10px/1.6 "DM Mono",monospace;text-transform:uppercase;letter-spacing:.08em;text-align:right}
.expo-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(16px,2.2vw,32px) clamp(10px,1.5vw,22px);padding:0 clamp(18px,3.2vw,52px) clamp(70px,9vw,124px);align-items:start;perspective:1600px}
.expo-card{display:block;appearance:none;text-align:left;min-width:0;border:0;padding:0;background:transparent;color:#1b1b18;cursor:pointer;grid-column:span 4;position:relative;transform:translate3d(0,12px,0) rotate(var(--art-rot,0deg));transform-origin:center center;transition:transform .6s var(--v13-ease),opacity .65s var(--v13-ease);opacity:1;translate:0 0}
.expo-card:nth-child(1){grid-column:span 7;--art-rot:-.25deg}
.expo-card:nth-child(2){grid-column:span 5;margin-top:70px;--art-rot:.45deg}
.expo-card:nth-child(3){grid-column:span 4;margin-top:-15px;--art-rot:.35deg}
.expo-card:nth-child(4){grid-column:span 4;margin-top:80px;--art-rot:-.35deg}
.expo-card:nth-child(5){grid-column:span 4;--art-rot:.3deg}
.expo-card:nth-child(6){grid-column:span 7;margin-top:20px;--art-rot:-.25deg}
.expo-card:nth-child(7){grid-column:span 5;margin-top:115px;--art-rot:.35deg}
.expo-card:nth-child(8){grid-column:span 7;margin-top:-60px;--art-rot:-.3deg}
.expo-card:hover,.expo-card:focus-visible{z-index:4;transform:translate3d(0,-7px,20px) rotate(0deg) scale(1.012)}
.expo-card .card-media{position:relative;width:100%;aspect-ratio:1.3 / 1;overflow:hidden;background:#d8d6ce;border:1px solid rgba(27,27,24,.16);isolation:isolate}
.expo-card:nth-child(2) .card-media,.expo-card:nth-child(5) .card-media{aspect-ratio:4/5}
.expo-card:nth-child(3) .card-media{aspect-ratio:1.02/1}
.expo-card:nth-child(4) .card-media{aspect-ratio:1.02/1}
.expo-card:nth-child(7) .card-media{aspect-ratio:1.12/1}
.expo-card .card-media img,.expo-card .card-media video{width:100%;height:100%;display:block;object-fit:cover;background:#d8d6ce;transition:transform .95s var(--v13-ease),filter .55s ease;transform:scale(1.005)}
.expo-card .card-media video{object-fit:cover}
.expo-card:hover .card-media img,.expo-card:hover .card-media video{transform:scale(1.065) translate(calc(var(--mx,0)*-7px),calc(var(--my,0)*-5px));filter:saturate(.9) contrast(1.04)}
.expo-card .card-media::before{content:"";position:absolute;z-index:2;inset:0;background:radial-gradient(220px circle at var(--pointer-x,50%) var(--pointer-y,50%),rgba(255,255,255,.18),transparent 72%);opacity:0;mix-blend-mode:screen;pointer-events:none;transition:opacity .3s}
.expo-card:hover .card-media::before{opacity:1}
.expo-card .card-media::after{content:"OPEN ↗";position:absolute;right:11px;bottom:10px;z-index:3;padding:8px 10px;background:rgba(20,20,18,.82);color:#f4f1e9;font:9px "DM Mono",monospace;letter-spacing:.1em;opacity:0;transform:translateY(5px);transition:opacity .2s,transform .35s var(--v13-ease)}
.expo-card:hover .card-media::after,.expo-card:focus-visible .card-media::after{opacity:1;transform:translateY(0)}
.expo-card-meta{display:flex;align-items:start;justify-content:space-between;gap:15px;padding-top:10px;text-transform:none;letter-spacing:0;font-size:11px;line-height:1.5}
.expo-card-meta strong{font:500 13px "Manrope",Arial,sans-serif;letter-spacing:-.02em;display:block}
.expo-card-meta small{display:block;font:9px/1.5 "DM Mono",monospace;color:#77766e;margin-top:4px;text-transform:uppercase;letter-spacing:.05em}
.expo-card-meta .expo-card-index{font-size:9px;color:var(--v13-red);white-space:nowrap;transition:transform .3s}
.expo-card:hover .expo-card-index{transform:translateX(-4px)}
.expo-inspector{position:fixed;z-index:70;right:clamp(14px,2.5vw,36px);top:90px;width:min(235px,26vw);padding:11px 12px;border:1px solid rgba(27,27,24,.2);background:rgba(239,238,232,.8);backdrop-filter:blur(10px);pointer-events:none;transition:transform .4s var(--v13-ease),background .3s;}
.expo-inspector-label{display:block;color:#8a8980;font-size:8px;margin-bottom:7px}
.expo-inspector-title{font-size:13px;line-height:1.25;letter-spacing:-.03em;display:block;max-width:100%}
.expo-inspector-meta{display:block;font:9px "DM Mono",monospace;color:#85847b;margin-top:7px}
.expo-contact{padding:clamp(58px,8vw,110px) clamp(18px,3.2vw,52px);border-top:1px solid var(--line);background:#e7e5dc}
.expo-contact .about-content{grid-template-columns:1.1fr .9fr;gap:8vw}
.expo-contact h2{font-size:clamp(44px,7vw,96px);letter-spacing:-.08em;line-height:.9;font-weight:500;margin:0}
.expo-contact .about-copy{font-size:15px;line-height:1.65;color:#55554d}
.expo-contact .skills-label{color:#77766e}
.expo-contact .contact-link{display:inline-block;color:#1b1b18;border-color:#1b1b18;margin-top:24px}
.variant-exhibition .site-footer{border-color:var(--line);background:#efeee8;color:#77766e}
.variant-exhibition .site-footer a{color:#1b1b18}

/* Shared project dialog is recoloured and animated per direction. */
.project-dialog{width:min(1220px,calc(100% - 24px));max-height:calc(100% - 24px);border:1px solid rgba(127,127,127,.28);box-shadow:0 24px 120px rgba(0,0,0,.28)}
.project-dialog[open]{animation:dialog-enter .55s var(--v13-ease) both}
.dialog-top{position:sticky;top:0;z-index:10;backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.dialog-top .eyebrow{font-size:9px}
.close-dialog{min-width:44px;min-height:38px;padding:8px 10px;border:1px solid var(--line);color:inherit;background:transparent;font:10px "DM Mono",monospace;cursor:pointer}
.close-dialog:hover{background:currentColor;color:var(--paper)}
.dialog-body{padding:clamp(22px,4vw,52px)}
.dialog-body h2{max-width:920px;font-size:clamp(38px,7vw,86px);line-height:.94}
.dialog-gallery{gap:clamp(8px,1.3vw,18px);padding:0 clamp(12px,2vw,28px) 40px}
.gallery-item{background:transparent;overflow:hidden}
.gallery-item img,.gallery-item video{object-fit:contain;background:transparent}
.gallery-item--feature{aspect-ratio:16 / 9}
.gallery-item--wide{aspect-ratio:1.45 / 1}
.gallery-item--half{aspect-ratio:1.12 / 1}
.gallery-item--portrait-wide,.gallery-item--portrait-narrow{aspect-ratio:4/5}
.variant-fullscreen .project-dialog{--paper:#171816;--ink:#f2f0e9;--muted:#aaa9a1;--line:rgba(242,240,233,.2);background:#171816;color:#f2f0e9;border-color:rgba(242,240,233,.2)}
.variant-fullscreen .dialog-top{background:rgba(23,24,22,.9)}
.variant-fullscreen .dialog-gallery .gallery-item img,.variant-fullscreen .dialog-gallery .gallery-item video{background:#171816}
.variant-exhibition .project-dialog{--paper:#efeee8;--ink:#1b1b18;--muted:#787870;--line:rgba(27,27,24,.2);background:#efeee8;color:#1b1b18}
.variant-exhibition .dialog-top{background:rgba(239,238,232,.92)}
.scan-panel-heading p,.scan-panel-footer span,.scan-panel-footer a{font-size:9px}

/* Style comparison / art-direction launcher */
.style-lab{min-height:100svh;background:#ecebe5;color:#1a1a18;padding:0 clamp(18px,4vw,62px) 48px;font-family:"Manrope",Arial,sans-serif}
.style-lab-header{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 0;border-bottom:1px solid rgba(26,26,24,.22);font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em}
.style-lab-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:end;padding:clamp(48px,8vw,110px) 0 34px}
.style-lab-intro h1{font-size:clamp(48px,8vw,112px);line-height:.87;letter-spacing:-.09em;margin:0;font-weight:500}
.style-lab-intro h1 em{font-family:Georgia,serif;font-weight:400}
.style-lab-intro p{max-width:360px;color:#66655d;font-size:13px;line-height:1.7;margin:0}
.style-lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2.5vw,36px)}
.style-lab-card{display:block;color:inherit;text-decoration:none;min-width:0}
.style-lab-card:hover .style-lab-preview{transform:translateY(-5px);border-color:#55554d}
.style-lab-preview{position:relative;aspect-ratio:1.42/1;overflow:hidden;border:1px solid rgba(26,26,24,.25);background:#1b1b18;transition:transform .5s var(--v13-ease),border-color .3s}
.style-lab-preview img{width:100%;height:100%;object-fit:cover;display:block;opacity:.72;transition:transform .9s var(--v13-ease),opacity .4s}
.style-lab-card:hover .style-lab-preview img{transform:scale(1.055);opacity:.92}
.style-lab-preview--full .lab-mock-brand{position:absolute;top:8%;left:6%;color:#f2f0e9;font-size:clamp(29px,4vw,64px);line-height:.8;letter-spacing:-.09em;text-shadow:0 1px 15px rgba(0,0,0,.4)}
.style-lab-preview--full .lab-mock-index{position:absolute;right:5%;top:17%;width:38%;border-top:1px solid rgba(255,255,255,.6);color:#fff;font:9px/2 "DM Mono",monospace;text-shadow:0 1px 8px rgba(0,0,0,.6)}
.style-lab-preview--full::after{content:"02 / FULLSCREEN NAVIGATION";position:absolute;left:6%;bottom:7%;color:#fff;font:9px "DM Mono",monospace;letter-spacing:.14em}
.style-lab-preview--expo{background:#efeee8;padding:10px;display:grid;grid-template-columns:1.2fr .8fr;gap:9px}
.style-lab-preview--expo .lab-expo-large{position:relative;overflow:hidden;grid-row:span 2}
.style-lab-preview--expo .lab-expo-large img,.style-lab-preview--expo .lab-expo-small img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.style-lab-preview--expo .lab-expo-small{position:relative;overflow:hidden;min-height:0}
.style-lab-preview--expo::after{content:"03 / EXHIBITION INTERFACE";position:absolute;left:16px;bottom:16px;padding:8px 10px;background:rgba(239,238,232,.88);color:#1a1a18;font:9px "DM Mono",monospace;letter-spacing:.1em}
.style-lab-card h2{font-size:clamp(20px,2.3vw,30px);font-weight:500;letter-spacing:-.05em;margin:14px 0 7px}
.style-lab-card p{max-width:460px;color:#66655d;font-size:12px;line-height:1.65;margin:0}
.style-lab-card .lab-open{display:inline-block;margin-top:13px;border-bottom:1px solid #1a1a18;padding-bottom:5px;font:10px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em}
.style-lab-foot{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:52px;padding-top:15px;border-top:1px solid rgba(26,26,24,.22);font:9px "DM Mono",monospace;text-transform:uppercase;letter-spacing:.1em;color:#77766e}

@media(max-width:900px){
 .stage-content{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:26px;padding-left:24px;padding-right:24px}
 .stage-intro h1{font-size:clamp(76px,12vw,140px)}
 .stage-project-row{grid-template-columns:27px minmax(0,1fr) 36px 13px;gap:8px;padding:12px 0}
 .stage-project-row .row-title{font-size:16px}
 .expo-intro{grid-template-columns:1fr .85fr;min-height:440px}
 .expo-inspector{width:185px;top:82px}
}
@media(max-width:680px){
 .site-header{position:relative;align-items:flex-start;flex-direction:column;padding:16px 16px 14px;gap:15px}
 .site-header nav{gap:10px 16px}
 .site-header nav a,.motion-toggle{font-size:9px}
 .fullscreen-stage{min-height:0;min-height:100svh}
 .fullscreen-stage .stage-visual{position:absolute;inset:0}
 .fullscreen-stage::after{background:linear-gradient(180deg,rgba(9,10,9,.65) 0%,rgba(9,10,9,.72) 45%,rgba(9,10,9,.9) 100%)}
 .stage-content{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:32px;min-height:100svh;padding:90px 18px 95px}
 .stage-intro h1{font-size:clamp(90px,23vw,150px);margin:34px 0 23px}
 .stage-summary{font-size:14px;max-width:310px}
 .stage-list{width:100%}
 .stage-index-heading{margin-bottom:5px}
 .stage-project-row{grid-template-columns:25px minmax(0,1fr) 34px 15px;padding:10px 0}
 .stage-project-row .row-title{font-size:15px}
 .stage-project-row .row-caption{font-size:8px}
 .stage-bottom{left:18px;right:18px;bottom:13px;gap:8px;font-size:8px}
 .stage-bottom .stage-help{display:none}
 .stage-bottom .stage-live-title{max-width:60%}
 .stage-interface-note{display:none}
 .fullscreen-about .about-content,.expo-contact .about-content{grid-template-columns:1fr;gap:28px}
 .fullscreen-about,.fullscreen-contact{padding:60px 18px}
 .expo-intro{display:flex;flex-direction:column;align-items:stretch;gap:30px;min-height:0;padding:48px 16px 36px}
 .expo-title-block h1{font-size:clamp(70px,18vw,118px);margin:38px 0 27px}
 .expo-hero-media{width:100%;aspect-ratio:1.12/1}
 .expo-indexline{padding:14px 16px}
 .expo-board-heading{padding:30px 16px 17px;align-items:flex-start;flex-direction:column}
 .expo-board-heading p{text-align:left}
 .expo-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:28px 10px;padding:0 16px 72px}
 .expo-card,.expo-card:nth-child(n){grid-column:span 3;margin-top:0;--art-rot:0deg}
 .expo-card:nth-child(1),.expo-card:nth-child(6),.expo-card:nth-child(8){grid-column:span 6}
 .expo-card:nth-child(2) .card-media,.expo-card:nth-child(5) .card-media{aspect-ratio:4/5}
 .expo-inspector{position:sticky;top:65px;right:auto;width:auto;margin:0 16px 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 10px}
 .expo-inspector-label{margin:0}
 .expo-inspector-title{font-size:11px;flex:1}
 .expo-inspector-meta{margin:0}
 .expo-contact{padding:55px 16px}
 .style-lab{padding:0 16px 32px}
 .style-lab-intro{grid-template-columns:1fr;gap:20px;padding-top:48px}
 .style-lab-grid{grid-template-columns:1fr;gap:28px}
 .style-lab-preview{aspect-ratio:1.15/1}
 .style-lab-foot{margin-top:32px}
 .project-dialog{width:calc(100% - 10px);max-height:calc(100% - 10px)}
 .dialog-gallery{grid-template-columns:repeat(6,minmax(0,1fr))}
 .gallery-item--feature,.gallery-item--wide,.gallery-item--half,.gallery-item--narrow,.gallery-item--portrait-wide,.gallery-item--portrait-narrow{grid-column:1/-1}
 .gallery-item--feature{aspect-ratio:1.1/1}
 .gallery-item--portrait-wide,.gallery-item--portrait-narrow{aspect-ratio:4/5}
}
@media(prefers-reduced-motion:reduce){
 .variant-fullscreen *, .variant-exhibition *, .style-lab *{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
 .expo-card,.stage-project-row{transform:none!important;translate:0 0!important}
}
body.motion-paused .stage-project-row,body.motion-paused .expo-card,body.motion-paused .expo-hero-media{transition-duration:.01ms!important;transform:none!important}
body.motion-paused .expo-card .card-media img,body.motion-paused .expo-card .card-media video{transform:none!important}


/* v14 — selected fullscreen direction: clearer pointer and more generous typography */
.variant-fullscreen .wordmark {
  font-size: 13px;
  letter-spacing: .17em;
  line-height: 1.35;
}
.variant-fullscreen .wordmark span {
  display: block;
  margin: 7px 0 0;
  font-size: 9px;
  letter-spacing: .15em;
}
.variant-fullscreen .stage-intro h1 {
  letter-spacing: -.035em;
  line-height: .82;
  word-spacing: .02em;
}
.variant-fullscreen .stage-intro h1 em {
  letter-spacing: -.025em;
}
.variant-fullscreen .stage-project-row .row-title {
  letter-spacing: -.012em;
}
.variant-fullscreen .stage-project-row:hover .row-title,
.variant-fullscreen .stage-project-row:focus-visible .row-title,
.variant-fullscreen .stage-project-row.is-current .row-title {
  letter-spacing: -.005em;
}
.variant-fullscreen .fullscreen-about h2,
.variant-fullscreen .fullscreen-contact h2 {
  letter-spacing: -.045em;
}

/* High-contrast custom pointer: a double-edged ring stays visible over image and dark areas. */
.variant-fullscreen .pointer-ui {
  width: 48px;
  height: 48px;
  color: #f6f4ec;
  mix-blend-mode: normal;
  filter: drop-shadow(0 2px 9px rgba(0,0,0,.5));
}
.variant-fullscreen .pointer-ui-core {
  inset: 7px;
  border: 2px solid #f6f4ec;
  border-radius: 50%;
  background: rgba(12,13,12,.28);
  box-shadow: 0 0 0 1.5px rgba(12,13,12,.95), inset 0 0 0 1px rgba(12,13,12,.2);
}
.variant-fullscreen .pointer-ui-core::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 5px;
  height: 5px;
  transform: translate(-50%,-50%);
  border-radius: 50%;
  background: #f6f4ec;
  box-shadow: 0 0 0 1px #111210;
}
.variant-fullscreen .pointer-ui.is-interactive {
  width: 94px;
  height: 94px;
}
.variant-fullscreen .pointer-ui.is-interactive .pointer-ui-core {
  inset: 0;
  border: 2px solid #f6f4ec;
  background: rgba(12,13,12,.82);
  box-shadow: 0 0 0 1.5px rgba(12,13,12,.95), 0 5px 20px rgba(0,0,0,.28);
}
.variant-fullscreen .pointer-ui.is-interactive .pointer-ui-label {
  color: #f6f4ec;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .13em;
  text-shadow: 0 1px 4px rgba(0,0,0,.7);
}
.variant-fullscreen .pointer-ui.is-interactive .pointer-ui-core::after {
  opacity: 0;
}
@media (max-width: 680px) {
  .variant-fullscreen .wordmark { letter-spacing: .15em; }
  .variant-fullscreen .stage-intro h1 { letter-spacing: -.03em; line-height: .86; }
  .variant-fullscreen .stage-intro h1 em { letter-spacing: -.025em; }
}
@media (prefers-reduced-motion: reduce) {
  .variant-fullscreen .pointer-ui { display: none !important; }
}
