:root{
  --bg:#090909;
  --paper:#f1ede4;
  --text:#ffffff;
  --muted:#d3cfc6;
  --line:#b41622;
  --panel:rgba(7,7,8,.82);
  --panelSolid:#111214;
  --brick:url('assets/gallery-warehouse-v2.png');
  --depth:10px;
  --tint1:#1a2038;
  --tint2:#31111b;
  --spot:#ffffff22;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,dialog{font:inherit}
button{cursor:pointer}
img{max-width:100%;display:block}

/* entry page */
.entry-body{min-height:100svh;background:radial-gradient(circle at top, #27292c 0%, #0d0e10 52%, #060607 100%)}
.entry-shell{min-height:100svh;display:grid;place-items:center;padding:4vw;position:relative;overflow:hidden}
.entry-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 24%),linear-gradient(90deg,rgba(255,255,255,.02),transparent 20%,transparent 80%,rgba(255,255,255,.02));opacity:.9;pointer-events:none}
.entry-experience{width:min(1100px,92vw);border:1px solid rgba(255,255,255,.12);background:linear-gradient(180deg,rgba(16,16,18,.93),rgba(8,8,9,.98));color:white;padding:5rem 2rem 3rem;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.55);display:grid;place-items:center;text-align:center;position:relative;overflow:hidden}
.entry-kicker,.tour-copy small,.about-section small,.archive small,.contact-section small,.scene-menu small,.depth-panel small{font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:#cbc6bc}
.entry-mark{position:relative;min-height:320px;width:min(940px,88vw);display:grid;place-items:center}
.entry-clean-mark h1,.hero-title h1{margin:0;font:clamp(52px,7vw,92px)/.92 Georgia,serif;font-weight:500;letter-spacing:-.02em}
.entry-clean-mark p,.hero-title p{margin:.5rem 0 0;font-size:clamp(14px,1.4vw,18px);letter-spacing:.9em;text-indent:.9em}
.entry-clean-mark i,.hero-title i,.brand i,.hero-tagline i{display:block;width:210px;max-width:60vw;height:2px;background:var(--line);transform:rotate(-1.2deg);margin:1.1rem auto 0}
.entry-spray-tag{position:absolute;left:50%;top:50%;transform:translate(-50%,-52%) rotate(-3deg);width:min(940px,88vw);display:grid;grid-template-columns:repeat(3,max-content);place-content:center;gap:.1rem 1.25rem;pointer-events:none;opacity:0}
.entry-spray-tag span{font:900 clamp(42px,6.8vw,88px)/.8 Impact, Haettenschweiler, 'Arial Black', sans-serif;color:#d81923;filter:drop-shadow(0 2px 0 #67070d);clip-path:inset(0 100% 0 0);opacity:0;position:relative;text-transform:uppercase}
.entry-spray-tag span:last-child{grid-column:1/-1;font-size:.7em;letter-spacing:.08em}
.entry-spray-tag span:after{content:"";position:absolute;left:50%;bottom:-1px;width:5px;height:0;background:#d81923;border-radius:0 0 4px 4px;transform:translateX(-50%)}
.entry-spray-tag.active{opacity:1}
.entry-spray-tag.active span:nth-child(1){animation:sprayReveal .85s forwards}
.entry-spray-tag.active span:nth-child(2){animation:sprayReveal .85s 1s forwards}
.entry-spray-tag.active span:nth-child(3){animation:sprayReveal .85s 2s forwards}
.entry-spray-tag.active span:nth-child(4){animation:sprayReveal .9s 3s forwards}
.entry-spray-tag.active span:nth-child(1):after{animation:drip 1.1s 3.9s forwards}
.entry-spray-tag.active span:nth-child(2):after{animation:drip 1s 4s forwards}
.entry-spray-tag.active span:nth-child(3):after{animation:drip 1.15s 4.1s forwards}
.entry-spray-tag.active span:nth-child(4):after{animation:drip 1.2s 4.2s forwards}
@keyframes sprayReveal{to{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes drip{to{height:34px}}
.spray-can{position:absolute;right:11%;top:25%;width:82px;height:170px;border-radius:20px 20px 14px 14px;background:linear-gradient(180deg,#f9f9f9,#d8d8d9 62%,#b3b5b7);border:2px solid rgba(0,0,0,.18);box-shadow:0 18px 50px rgba(0,0,0,.45);opacity:0;transform:translateY(0) rotate(-6deg);transition:opacity .2s}
.spray-can:before{content:"";position:absolute;left:28px;top:-14px;width:22px;height:22px;border-radius:50%;background:#222}
.spray-can:after{content:"";position:absolute;left:34px;top:-4px;width:10px;height:8px;border-radius:2px;background:#d81923}
.spray-can b{position:absolute;left:-38px;top:18px;width:40px;height:4px;border-radius:4px;background:linear-gradient(90deg,rgba(216,25,35,.7),rgba(216,25,35,0));opacity:0}
.spray-can.active{opacity:1;animation:canShake .4s infinite linear}
.spray-can.active b{animation:mist 1s linear infinite}
.spray-can b:nth-child(2){top:42px;animation-delay:.2s}
.spray-can b:nth-child(3){top:68px;animation-delay:.4s}
@keyframes canShake{0%,100%{transform:translate(0,0) rotate(-6deg)}25%{transform:translate(2px,-2px) rotate(-4deg)}50%{transform:translate(-2px,1px) rotate(-7deg)}75%{transform:translate(2px,2px) rotate(-5deg)}}
@keyframes mist{0%{opacity:0;transform:translateX(0) scaleX(.4)}40%{opacity:1}100%{opacity:0;transform:translateX(-180px) scaleX(1.25)}}
.entry-copy{max-width:760px;color:#d9d5ce;line-height:1.6;margin-top:1rem}
.entry-cta,.silent-link,.controls button,.movement-pad button,.topnav button,.frame-controls button,.work-actions button,.after-hours-button,.scene-list button{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#fff;padding:.9rem 1rem;text-transform:uppercase;letter-spacing:.16em;font-size:11px;border-radius:999px;transition:background .25s,border-color .25s,transform .25s}
.entry-cta{margin-top:1.4rem;background:var(--line);border-color:transparent}
.silent-link{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);background:transparent;color:#d5d0c7}
.ghost-button{background:transparent!important}

/* site global */
.site-body{background:#080808;color:white}
.topbar{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:flex-start;padding:1.35rem 3vw;pointer-events:none;transition:opacity .35s,transform .35s}
.topbar *{pointer-events:auto}
.brand span{display:block;font:clamp(24px,2.5vw,34px)/.92 Georgia,serif}
.brand small{display:block;font-size:9px;letter-spacing:.56em;text-indent:.56em;margin-top:.45rem}
.topnav{display:flex;gap:1rem;align-items:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.topnav a,.topnav button{padding:.75rem .2rem;background:none;border:0;color:white}
.topnav button{padding:.75rem 1rem;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(8,8,9,.5)}
.idle-ui{transition:opacity .3s,transform .3s}
body.ui-idle .idle-ui{opacity:0;transform:translateY(8px);pointer-events:none}

.hero-gallery{min-height:100svh;position:relative;padding-top:96px;background:linear-gradient(180deg,rgba(0,0,0,.55),rgba(0,0,0,.18) 20%,rgba(0,0,0,.34)), var(--brick);background-size:cover;background-position:center center;overflow:hidden}
.hero-gallery:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.72),transparent 16%,transparent 84%,rgba(0,0,0,.72)),linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%);pointer-events:none}
.hero-wall{position:relative;min-height:100svh}
.hero-title{position:absolute;left:50%;top:19%;transform:translateX(-50%);text-align:center;z-index:2}
.hero-title p{font-size:18px}
.hero-art{position:absolute;z-index:2;box-shadow:0 18px 44px rgba(0,0,0,.6);background:#181615;padding:10px;border:1px solid rgba(255,255,255,.08)}
.hero-art img{width:100%;height:auto;display:block}
.hero-left{left:23%;top:43%;width:min(13.5vw,230px)}
.hero-center{left:50%;top:44%;transform:translateX(-50%);width:min(16vw,270px)}
.hero-right{right:23%;top:43%;width:min(14vw,235px)}
.hero-tagline{position:absolute;left:4vw;bottom:4.2rem;z-index:2;display:grid;gap:.6rem}
.hero-tagline span{font-size:12px;letter-spacing:.38em;text-transform:uppercase}
.hero-tagline i{margin:0;width:120px}
.hero-arrow{position:absolute;left:4vw;bottom:1.2rem;font-size:34px;z-index:2;line-height:1}
.secret-mark{position:absolute;left:5rem;bottom:6.6rem;width:24px;height:10px;border-radius:50%;border:0;background:linear-gradient(90deg,#8f131c,#e01d29,#711018);box-shadow:0 0 12px rgba(224,29,41,.65);z-index:3}

.tour-shell{position:relative;min-height:100svh;padding:9rem 3vw 4rem;display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:2.2rem;align-items:start}
.tour-copy{position:sticky;top:7rem;align-self:start;padding-right:1rem;z-index:5}
.tour-copy h2{font:clamp(38px,5vw,72px)/.94 Georgia,serif;margin:.6rem 0 .8rem}
.tour-copy p{max-width:420px;color:#d7d3cb;line-height:1.65}
.tour-meta{display:flex;flex-wrap:wrap;gap:.8rem 1.2rem;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#c8c4bd}
.scene{min-height:76svh;border-radius:22px;position:relative;overflow:hidden;background:linear-gradient(180deg,var(--tint1),transparent 26%,transparent 74%,var(--tint2)), var(--brick);background-size:cover;background-position:center center;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.scene:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 24%, rgba(255,255,255,.14), transparent 28%), linear-gradient(90deg, rgba(0,0,0,.55), transparent 17%, transparent 83%, rgba(0,0,0,.55));pointer-events:none}
.scene.scene-ibiza{--tint1:#6d7a87;--tint2:#64513e;filter:saturate(1.15) brightness(1.08)}
.scene.scene-canal{--tint1:#121827;--tint2:#452721}
.scene.scene-future{--tint1:#13223c;--tint2:#210f27;filter:saturate(1.28)}
.scene.scene-neon{--tint1:#0d172b;--tint2:#33101b;filter:saturate(1.22)}
.scene.scene-afterhours{--tint1:#17040a;--tint2:#250012;filter:saturate(1.25) brightness(.82)}
.scene.night{filter:brightness(.72) saturate(1.2)}
.scene.blacklight .scene-wall .art-on-wall img{filter:hue-rotate(135deg) saturate(1.4) brightness(1.1)}
.scene.anaglyph .scene-wall .art-on-wall{box-shadow:-6px 0 rgba(255,0,50,.25),6px 0 rgba(0,255,255,.2),0 18px 44px rgba(0,0,0,.55)}
.scene-atmosphere,.scene-wall{position:absolute;inset:0}
.scene-haze,.scene-neon-grid,.scene-train-line,.scene-sign,.scene-rain{position:absolute;pointer-events:none}
.scene-haze{inset:auto -10% -10% -10%;height:42%;background:radial-gradient(circle at 50% 50%, rgba(255,255,255,.08), rgba(255,255,255,0) 68%)}
.scene-neon-grid{left:8%;right:8%;bottom:10%;height:22%;background:linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);background-size:100% 28px, 28px 100%;opacity:.18;transform:perspective(400px) rotateX(70deg);transform-origin:bottom}
.scene-rain{inset:0;background-image:linear-gradient(transparent 0%, rgba(255,255,255,.18) 45%, transparent 100%);background-size:3px 42px;opacity:0;animation:rainFall .65s linear infinite}
.scene.scene-neon .scene-rain,.scene.scene-tokyo .scene-rain,.scene.scene-afterhours .scene-rain{opacity:.18}
@keyframes rainFall{from{background-position:0 0}to{background-position:0 42px}}
.scene-sign{width:160px;height:44px;border:1px solid rgba(255,255,255,.24);background:rgba(255,255,255,.04);box-shadow:0 0 18px rgba(140,180,255,.25)}
.sign-a{right:18%;top:16%;transform:rotate(-4deg);background:rgba(0,180,255,.12)}
.sign-b{left:16%;top:30%;transform:rotate(2deg);background:rgba(255,40,90,.12)}
.scene.scene-ibiza .scene-sign,.scene.scene-canal .scene-sign{display:none}
.scene-train-line{left:6%;right:6%;bottom:22%;height:5px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);opacity:.55}
.scene.scene-ibiza .scene-train-line{display:none}
.scene.scene-ibiza .scene-haze{background:radial-gradient(circle at 50% 30%, rgba(255,214,167,.22), rgba(255,255,255,0) 70%)}
.scene.scene-ibiza:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,214,169,.18),transparent 34%,transparent 70%,rgba(33,64,80,.2));pointer-events:none}
.scene.scene-future:after{content:"";position:absolute;inset:auto 0 0 0;height:34%;background:linear-gradient(180deg,transparent,rgba(58,130,255,.08) 50%,rgba(255,0,106,.08));pointer-events:none}
.scene.scene-neon:after,.scene.scene-afterhours:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(255,0,98,.06) 70%,rgba(0,204,255,.08));pointer-events:none}
.scene-wall{display:flex;align-items:center;justify-content:center;gap:min(4vw,54px);padding:16% 11% 18%;perspective:1400px;transition:transform .8s ease}
.art-on-wall{position:relative;background:#181615;border:10px solid rgba(28,24,22,.95);padding:10px;box-shadow:0 18px 44px rgba(0,0,0,.58);transform:translateZ(var(--depth));transition:transform .3s ease, box-shadow .3s ease, filter .3s ease;max-width:min(26vw,300px);cursor:pointer}
.art-on-wall img{max-height:min(46vh,500px);object-fit:contain;background:#ddd}
.art-on-wall:hover,.art-on-wall:focus-visible{transform:translateZ(calc(var(--depth) * 2)) scale(1.02)}
.art-on-wall.selected{box-shadow:0 0 0 2px rgba(255,255,255,.16), 0 20px 48px rgba(0,0,0,.68), 0 0 90px var(--spot);filter:brightness(1.06)}
.art-label{position:absolute;left:12px;bottom:12px;background:rgba(5,5,6,.72);padding:.5rem .6rem;border-radius:10px;color:#f7f4ee;font-size:11px;letter-spacing:.08em;line-height:1.4;opacity:0;transition:opacity .25s}
.art-on-wall:hover .art-label,.art-on-wall.selected .art-label{opacity:1}

.control-rail{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:flex-end;margin-top:1rem}
.movement-pad{display:grid;grid-template-columns:repeat(2,54px);gap:.55rem}
.movement-pad button{width:54px;height:54px;border-radius:50%;font-size:18px}
.controls{display:flex;flex-wrap:wrap;gap:.75rem}
.controls button.active,.topnav button.active,.scene-list button.active,.after-hours-button.active{background:var(--line);border-color:transparent}
.now-playing{display:grid;gap:.25rem;min-width:240px;text-align:right}
.now-playing small{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:#cbc6bc}

.scene-menu,.depth-panel{position:fixed;right:3vw;top:6rem;z-index:35;width:min(360px,92vw);background:rgba(11,11,12,.94);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(16px);border-radius:18px;padding:1rem}
.scene-menu h3,.depth-panel h3{margin:.25rem 0 1rem;font:30px Georgia,serif}
.scene-list{display:grid;gap:.7rem}
.scene-list button{width:100%;text-align:left;border-radius:14px;padding:1rem 1rem;font-size:11px}
.after-hours-button{margin-top:1rem;width:100%;background:#7f111b}
.close{border:0;background:none;color:#fff;font-size:28px;line-height:1;float:right}
.depth-panel label{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;color:#e0dbd3}
.depth-panel input[type="range"]{width:130px}

.transition-overlay{position:fixed;inset:0;z-index:45;display:grid;place-items:center;background:rgba(6,6,7,.72);backdrop-filter:blur(4px)}
.transition-overlay div{padding:1.5rem 2rem;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:rgba(14,14,16,.86);text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.35)}
.transition-overlay small{display:block;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#cec9c1;margin-bottom:.5rem}
.transition-overlay strong{font:28px Georgia,serif}

.work-dialog,.frame-dialog{width:min(1180px,96vw);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:0;background:#101113;color:white;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.work-dialog::backdrop,.frame-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px)}
.dialog-close{position:absolute;right:18px;top:14px;border:0;background:none;color:white;font-size:32px;z-index:2}
.work-dialog{display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden}
.work-media{padding:1.4rem;background:#09090a;border-right:1px solid rgba(255,255,255,.07)}
.inspection-stage{height:min(70vh,760px);background:linear-gradient(180deg,#202124,#0c0c0d);display:grid;place-items:center;position:relative;overflow:hidden;border-radius:16px}
.inspection-stage img{max-height:88%;max-width:88%;transform-origin:center center;transition:transform .4s ease, filter .3s ease}
.inspection-stage.view-detail img{transform:scale(1.55) translate(-8%, -5%)}
.inspection-stage.view-signature img{transform:scale(1.9) translate(14%, 28%)}
.inspection-stage.view-reverse img{transform:rotateY(180deg);opacity:.82;filter:saturate(.55) brightness(.8)}
.inspection-stage.view-blacklight img{filter:hue-rotate(120deg) saturate(1.45) brightness(1.08)}
.inspection-overlay{position:absolute;inset:0;background:linear-gradient(110deg, transparent 0%, rgba(255,255,255,.18) 48%, transparent 56%);opacity:0;pointer-events:none}
.inspection-stage.view-raking .inspection-overlay{opacity:1;animation:glide 2.4s linear infinite}
@keyframes glide{from{transform:translateX(-100%)}to{transform:translateX(130%)}}
.inspection-tabs{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.inspection-tabs button{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:white;padding:.65rem .8rem;border-radius:999px;font-size:11px;text-transform:uppercase;letter-spacing:.14em}
.inspection-tabs button.active{background:var(--line);border-color:transparent}
.work-copy{padding:2rem 2rem 2rem 1.6rem;overflow:auto;max-height:90vh}
.work-copy small{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:#ccc8c0}
.work-copy h2{margin:.5rem 0 0;font:26px Georgia,serif}
.work-copy h3{margin:.3rem 0 1rem;font:40px Georgia,serif}
.work-copy p{line-height:1.65;color:#dfdbd3}
.work-copy dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;margin:1.2rem 0}
.work-copy dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#bbb6ad;margin-bottom:.35rem}
.work-copy dd{margin:0;color:#fff}
.work-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin:1rem 0 1.2rem}
.work-actions button,.frame-controls button{background:var(--line);border:0;padding:.95rem 1.1rem;border-radius:999px;color:#fff;text-transform:uppercase;letter-spacing:.14em;font-size:11px}
.passport{border-top:1px solid rgba(255,255,255,.08);padding-top:1rem}
.passport summary{cursor:pointer;font-size:12px;letter-spacing:.18em;text-transform:uppercase}
.passport ul{padding-left:1rem;color:#ddd5cc;line-height:1.7}

.frame-dialog{display:grid;grid-template-columns:360px minmax(0,1fr);overflow:hidden}
.frame-controls{padding:2rem}
.frame-controls h2{margin:.4rem 0 .75rem;font:32px Georgia,serif}
.frame-controls p{color:#ddd7ce;line-height:1.6}
.frame-choices{display:grid;gap:.7rem;margin:1rem 0}
.frame-choice{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.8rem 1rem;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);color:white}
.frame-choice:after{content:"";display:block;width:52px;height:18px;border:5px solid currentColor;border-radius:3px}
.frame-choice.active{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2)}
.upload-field{display:grid;gap:.45rem;font-size:12px;text-transform:uppercase;letter-spacing:.15em;margin:1rem 0;color:#ddd7ce}
.upload-field input{margin-top:.2rem}
.dimension-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}
.dimension-grid label{display:grid;gap:.4rem;font-size:11px;text-transform:uppercase;letter-spacing:.16em}
.dimension-grid input,.archive input{background:#161719;border:1px solid rgba(255,255,255,.12);color:white;padding:.85rem .9rem;border-radius:12px}
.room-preview{position:relative;background:#161719;display:grid;place-items:center;min-height:520px;background-size:cover;background-position:center}
.room-preview p{padding:1rem 1.2rem;background:rgba(0,0,0,.58);border-radius:14px;color:#f1ebdf}
.placed-art{position:absolute;display:none;left:50%;top:50%;transform:translate(-50%,-50%);max-width:240px;border:10px solid #181615;box-shadow:0 20px 42px rgba(0,0,0,.45)}

.archive,.about-section,.contact-section{padding:5.2rem 4vw 3rem}
.archive{background:#f0ece4;color:#0f0f10}
.archive header,.about-grid{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:end}
.archive h2,.about-section h2,.contact-section h2{margin:.4rem 0 0;font:clamp(34px,5vw,70px)/.95 Georgia,serif}
.archive label{display:grid;gap:.45rem;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.filters{display:flex;flex-wrap:wrap;gap:.75rem;margin:1.4rem 0 1.2rem}
.filters button{border:0;background:none;border-bottom:2px solid transparent;padding:0 0 .3rem;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#3a3733}
.filters button.active{color:var(--line);border-color:var(--line)}
.grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.1rem}
.card{border:0;background:none;padding:0;text-align:left;color:inherit}
.card img{aspect-ratio:4/5;object-fit:cover;background:#ddd}
.card strong{display:block;margin-top:.7rem;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.card small{display:block;margin-top:.2rem;font-size:12px;line-height:1.55;color:#45403a}
.about-section{background:#0d0d0e}
.about-section p,.contact-section p{max-width:900px;color:#d8d2c8;line-height:1.7}
.about-grid{grid-template-columns:repeat(3,1fr);margin-top:2rem}
.about-grid article{padding:1.4rem;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:rgba(255,255,255,.03)}
.about-grid h3{margin-top:0;font:24px Georgia,serif}
.contact-section{background:#111214}

@media (max-width:1100px){
  .tour-shell{grid-template-columns:1fr}
  .tour-copy{position:relative;top:auto;padding-right:0}
  .grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .work-dialog,.frame-dialog{grid-template-columns:1fr}
  .frame-dialog{max-height:94vh;overflow:auto}
}
@media (max-width:820px){
  .topbar{padding:1rem 1rem}
  .topnav{gap:.6rem;flex-wrap:wrap;justify-content:flex-end}
  .topnav a{display:none}
  .hero-title{top:15%}
  .hero-left{left:8%;top:48%;width:30vw}
  .hero-center{top:47%;width:34vw}
  .hero-right{right:8%;top:48%;width:30vw}
  .scene-wall{padding:25% 4% 24%;gap:1rem}
  .art-on-wall{max-width:30vw;padding:8px;border-width:8px}
  .art-on-wall img{max-height:34vh}
  .control-rail{justify-content:flex-start}
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .archive header{grid-template-columns:1fr}
  .about-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .entry-experience{padding:4rem 1rem 2.4rem}
  .entry-mark{min-height:260px}
  .entry-clean-mark h1,.hero-title h1{font-size:clamp(38px,11vw,54px)}
  .entry-clean-mark p,.hero-title p{letter-spacing:.55em;text-indent:.55em}
  .spray-can{right:8%;top:18%;width:62px;height:132px}
  .hero-gallery{padding-top:86px}
  .hero-title{top:16%}
  .hero-left{left:6%;top:51%;width:29vw}
  .hero-center{width:35vw}
  .hero-right{right:6%;top:51%;width:29vw}
  .hero-tagline span{font-size:10px;letter-spacing:.28em}
  .tour-shell{padding:7rem 1rem 3rem}
  .scene{min-height:62svh}
  .art-on-wall img{max-height:24vh}
  .movement-pad{grid-template-columns:repeat(2,48px)}
  .movement-pad button{width:48px;height:48px}
  .controls button{font-size:10px;padding:.75rem .8rem}
  .dimension-grid{grid-template-columns:1fr}
}

/* FINAL LOCKED ENTRY + HOMEPAGE OVERRIDES */
.entry-body{min-height:100svh;background:#f7f5f0;color:#111}
.entry-page{min-height:100svh;display:grid;place-items:center;position:relative;overflow:hidden;padding:24px}
.entry-stage{position:relative;width:min(1180px,96vw);aspect-ratio:16/9;border:0;background:#fff;color:#111;overflow:hidden;box-shadow:none;padding:0;display:grid;place-items:center}
.entry-clean-title{position:absolute;z-index:1;text-align:center;left:50%;top:50%;transform:translate(-50%,-50%);width:100%}
.entry-clean-title h1{margin:0;font:clamp(56px,8vw,128px)/.9 Georgia,serif;font-weight:400;letter-spacing:-.04em}
.entry-clean-title p{margin:1.5rem 0 0;font-size:clamp(14px,1.8vw,24px);letter-spacing:1em;text-indent:1em}
.approved-spray-final{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0;clip-path:inset(0 100% 0 0)}
.approved-spray-final.active{opacity:1;animation:approvedSprayReveal 4.25s steps(48,end) forwards}
@keyframes approvedSprayReveal{0%{clip-path:inset(0 100% 0 0)}76%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 0)}}
.entry-stage.spraying{animation:entryRattle .12s linear 14 alternate}
@keyframes entryRattle{from{transform:translateX(-1px) rotate(-.05deg)}to{transform:translateX(1px) rotate(.05deg)}}
.entry-hint{position:absolute;z-index:3;bottom:5%;left:50%;transform:translateX(-50%);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:#333;background:rgba(255,255,255,.88);padding:.7rem 1rem;border-radius:999px}
.silent-link{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);border:0;background:transparent;color:#555;font-size:11px;letter-spacing:.18em;text-transform:uppercase}

.hero-approved-a{min-height:100svh;position:relative;background:#0a0a0a url('assets/homepage-approved-a.jpg') center center / cover no-repeat}
.hero-approved-a:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(0,0,0,.04))}
.hero-hotspots{position:absolute;inset:0;z-index:3}
.hotspot{position:absolute;display:block;background:transparent}
.hotspot.collection{top:4.5%;right:27%;width:10%;height:7%}
.hotspot.tour{top:4.5%;right:17.5%;width:8%;height:7%}
.hotspot.about{top:4.5%;right:9.5%;width:7%;height:7%}
.hotspot.contact{top:4.5%;right:1.5%;width:7%;height:7%}
.hotspot.down{left:2.5%;bottom:1.5%;width:7%;height:10%}
.site-topbar{transition:opacity .25s,transform .25s}
body.at-top .site-topbar{opacity:0;pointer-events:none;transform:translateY(-10px)}
#transitionOverlay[hidden]{display:none!important}

@media(max-width:820px){
  .hero-approved-a{background-size:cover;background-position:center center}
  .hotspot.collection{right:26%;width:12%}.hotspot.tour{right:16%;width:10%}.hotspot.about{right:8%;width:8%}.hotspot.contact{right:0;width:8%}
}
@media(max-width:560px){
  .entry-stage{width:100vw;aspect-ratio:4/3}
  .approved-spray-final{object-fit:contain}
}
