@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,500;1,500&display=swap');

:root{--bg:#050505;--fg:#f1eee8;--muted:#96928b;--line:rgba(255,255,255,.14);--accent:#d6a566;--ink:0;--mx:0;--my:0}
*{box-sizing:border-box}html{scroll-behavior:auto;background:#050505}body{margin:0;background:var(--bg);color:var(--fg);font-family:'DM Sans',system-ui,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button,input,textarea,select{font:inherit}.noscript{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:#050505;color:white}
#webgl,#grain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#webgl{z-index:0}#grain{z-index:3;opacity:.15;mix-blend-mode:soft-light}.preloader{position:fixed;inset:0;z-index:1000;background:#050505;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .8s ease,visibility .8s}.preloader.hidden{opacity:0;visibility:hidden}.preloader-mark{font-family:'Playfair Display',serif;font-size:56px;letter-spacing:.08em}.preloader-line{width:180px;height:1px;background:#252525;overflow:hidden}.preloader-line span{display:block;width:100%;height:100%;background:var(--accent);transform:translateX(-100%);animation:load 1.8s cubic-bezier(.7,0,.2,1) forwards}.preloader p{font-size:9px;letter-spacing:.36em;color:#777}@keyframes load{to{transform:translateX(0)}}
.topbar{position:fixed;top:0;left:0;right:0;z-index:50;height:84px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;border-bottom:1px solid rgba(255,255,255,.07);background:linear-gradient(to bottom,rgba(0,0,0,.52),transparent);backdrop-filter:blur(5px)}.brand{font-family:'Playfair Display',serif;letter-spacing:.23em;font-size:15px}.brand span{color:var(--accent)}.desktop-nav{display:flex;gap:34px}.desktop-nav a,.top-cta{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:#bbb;transition:.25s}.desktop-nav a:hover,.top-cta:hover{color:#fff}.top-cta{justify-self:end}.top-cta span{margin-left:10px;color:var(--accent)}
main{position:relative;z-index:4}.scene{position:relative;min-height:120vh;padding:110px 6vw 70px;display:flex;align-items:center}.scene-hero{height:145vh;align-items:flex-start}.eyebrow{font-size:9px;letter-spacing:.34em;color:#a4a09a;text-transform:uppercase}.hero-copy{position:sticky;top:26vh;width:min(760px,72vw);margin-top:22vh}.hero-copy .kicker{font-size:11px;letter-spacing:.36em;color:#b8b4ae;margin:0 0 22px}.hero-copy h1{margin:0;font-family:'Playfair Display',serif;font-weight:500;line-height:.82;font-size:clamp(70px,11vw,180px);letter-spacing:-.05em}.hero-copy h1 span{display:block}.hero-copy h1 span:last-child{margin-left:18vw;font-style:italic;color:transparent;-webkit-text-stroke:1px rgba(240,235,227,.72)}.hero-sub{margin:28px 0 0 18.5vw;font-size:13px;line-height:1.8;color:#aaa}.scroll-cue{position:absolute;bottom:12vh;right:7vw;display:flex;align-items:center;gap:13px;transform:rotate(90deg);transform-origin:right center}.scroll-cue span{width:54px;height:1px;background:#777}.scroll-cue small{font-size:8px;letter-spacing:.3em;color:#aaa}.chapter-number{position:absolute;left:6vw;bottom:5vh;font-size:9px;letter-spacing:.25em;color:#787878}
.panel{width:min(520px,40vw);position:relative;z-index:5}.left-panel{margin-right:auto}.lower{margin-top:24vh}.panel h2,.work-heading h2,.about-copy h2,.booking-intro h2{font-family:'Playfair Display',serif;font-size:clamp(45px,5.8vw,92px);line-height:.95;font-weight:500;letter-spacing:-.035em;margin:17px 0 28px}.panel h2 em,.work-heading em,.about-copy em,.booking-intro em{font-weight:500;color:var(--accent)}.panel p{max-width:430px;color:#aaa;font-size:13px;line-height:1.8}.microcopy{position:absolute;font-size:8px;letter-spacing:.3em;line-height:2.1;color:#777}.microcopy.right{right:6vw;top:47%}.scene-engrave{min-height:150vh}.scene-machine{min-height:150vh}
.scene-ink{min-height:125vh;background:linear-gradient(180deg,transparent 0 22%,rgba(238,234,225,.96) 55%,#e8e3d9 100%);color:#111;overflow:hidden}.ink-transition{position:fixed;inset:-20%;z-index:2;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 52%,#020202 0 calc(var(--ink)*45%),transparent calc(var(--ink)*62%)),radial-gradient(circle at 20% 68%,#030303 0 calc(var(--ink)*25%),transparent calc(var(--ink)*38%)),radial-gradient(circle at 78% 35%,#050505 0 calc(var(--ink)*28%),transparent calc(var(--ink)*42%));filter:blur(calc((1 - var(--ink))*16px));transform:scale(calc(.72 + var(--ink)*.5));transition:opacity .15s}.ink-copy{margin:auto;text-align:center;position:relative;z-index:6}.ink-copy span{display:block;font-size:10px;letter-spacing:.34em}.ink-copy strong{display:block;margin:12px 0;font-family:'Playfair Display',serif;font-size:clamp(58px,9vw,145px);font-weight:500;letter-spacing:-.05em}.ink-copy p{color:#5b5750}.dark-number{color:#6d675f}
.scene-work{min-height:175vh;background:#050505;display:block;overflow:hidden}.work-heading{display:flex;justify-content:space-between;align-items:flex-end;padding-top:12vh}.work-heading p{width:300px;color:#888;font-size:12px;line-height:1.8}.gallery-orbit{position:sticky;top:16vh;height:68vh;margin-top:5vh;perspective:1500px;transform-style:preserve-3d}.art-card{position:absolute;width:clamp(180px,20vw,330px);aspect-ratio:.68;border:1px solid rgba(255,255,255,.14);background:#111;overflow:hidden;box-shadow:0 35px 90px rgba(0,0,0,.48);transform-style:preserve-3d;transition:filter .3s}.art-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.03)}.art-card figcaption{position:absolute;left:15px;right:15px;bottom:12px;font-size:8px;letter-spacing:.18em;text-shadow:0 1px 10px #000}.c1{left:3%;top:13%;transform:rotateY(16deg) rotateZ(-5deg)}.c2{left:20%;top:4%;transform:translateZ(80px) rotateY(8deg) rotateZ(3deg)}.c3{left:40%;top:12%;z-index:4;transform:translateZ(145px) rotateY(-3deg) rotateZ(-1deg)}.c4{left:60%;top:1%;transform:translateZ(70px) rotateY(-9deg) rotateZ(3deg)}.c5{left:77%;top:14%;transform:rotateY(-16deg) rotateZ(6deg)}.c6{left:47%;top:34%;z-index:1;opacity:.35;transform:scale(.82) translateZ(-160px)}.gallery-link{position:absolute;right:6vw;bottom:7vh;font-size:10px;letter-spacing:.22em;text-transform:uppercase;border-bottom:1px solid #555;padding-bottom:8px}.gallery-link span{color:var(--accent)}
.scene-about{min-height:130vh;background:#090909;display:grid;grid-template-columns:1.05fr .95fr;gap:7vw}.about-photo-wrap{position:relative}.about-photo-wrap img{width:100%;height:72vh;object-fit:cover;filter:grayscale(.25) contrast(1.08)}.about-photo-wrap:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,transparent 50%,rgba(214,165,102,.14));mix-blend-mode:screen}.photo-label{position:absolute;left:18px;bottom:18px;font-size:8px;letter-spacing:.28em;background:rgba(0,0,0,.55);padding:10px 12px;backdrop-filter:blur(7px)}.about-copy p{font-size:13px;line-height:1.9;color:#9e9a94;max-width:560px}.text-link{display:inline-flex;gap:25px;margin-top:20px;padding-bottom:8px;border-bottom:1px solid #777;font-size:10px;letter-spacing:.22em;text-transform:uppercase}.text-link span{color:var(--accent)}
.booking-section{position:relative;z-index:5;min-height:110vh;padding:13vh 6vw;display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;background:radial-gradient(circle at 18% 30%,#17130f 0,#080808 33%,#050505 70%);border-top:1px solid #191919}.booking-intro>p{max-width:440px;color:#888;line-height:1.8}.contact-grid{margin-top:60px;display:grid;gap:1px;background:#222;border:1px solid #222}.contact-grid a{display:flex;justify-content:space-between;gap:20px;padding:17px 18px;background:#090909}.contact-grid small{font-size:8px;letter-spacing:.25em;color:#777}.contact-grid strong{font-size:11px;font-weight:400}.booking-form{display:grid;gap:17px;align-content:start;padding:30px;border:1px solid #252525;background:rgba(10,10,10,.72);backdrop-filter:blur(10px)}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.booking-form label{display:grid;gap:8px}.booking-form label>span{font-size:9px;letter-spacing:.18em;color:#9a9690;text-transform:uppercase}.booking-form input,.booking-form textarea,.booking-form select{width:100%;border:0;border-bottom:1px solid #343434;background:#0a0a0a;color:#eee;padding:14px 11px;outline:none}.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus{border-color:var(--accent)}.booking-form input[type=file]{font-size:11px}.consent{grid-template-columns:auto 1fr!important;align-items:center}.consent input{width:auto!important}.consent span{text-transform:none!important;letter-spacing:.04em!important;line-height:1.5}.submit-btn{margin-top:8px;border:1px solid #9d7548;background:var(--accent);color:#100c08;display:flex;justify-content:space-between;padding:18px 20px;cursor:pointer;font-size:10px;letter-spacing:.22em;font-weight:600;transition:.25s}.submit-btn:hover{background:#e5bb82;transform:translateY(-2px)}.hp{position:absolute!important;left:-9999px!important}
footer{position:relative;z-index:5;background:#030303;padding:36px 6vw;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:25px;align-items:center;border-top:1px solid #171717;color:#777}footer p{font-family:'Playfair Display',serif;font-style:italic;color:#aaa}footer div:nth-of-type(2){display:flex;gap:25px;font-size:10px;text-transform:uppercase;letter-spacing:.16em}footer small{font-size:9px}.footer-brand{color:#ddd}
@media(max-width:900px){.topbar{grid-template-columns:1fr auto;height:70px}.desktop-nav{display:none}.hero-copy{width:88vw}.hero-copy h1 span:last-child{margin-left:4vw}.hero-sub{margin-left:5vw}.panel{width:74vw}.microcopy{display:none}.scene{padding-left:6vw;padding-right:6vw}.work-heading{display:block}.work-heading p{width:auto}.gallery-orbit{height:70vh}.art-card{width:31vw}.c1{left:-4%}.c2{left:14%}.c3{left:36%}.c4{left:58%}.c5{left:78%}.scene-about{grid-template-columns:1fr;gap:6vh;padding-top:15vh}.about-photo-wrap img{height:62vh}.booking-section{grid-template-columns:1fr}.contact-grid{margin-top:35px}footer{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.topbar{padding:0 5vw}.top-cta{font-size:8px}.scene{min-height:115vh}.hero-copy{top:24vh;margin-top:18vh}.hero-copy h1{font-size:19vw}.hero-sub{font-size:11px}.panel{width:92vw}.panel h2,.work-heading h2,.about-copy h2,.booking-intro h2{font-size:14vw}.scene-engrave,.scene-machine{min-height:125vh}.gallery-orbit{height:72vh;margin-left:-6vw;margin-right:-6vw}.art-card{width:43vw}.c1{left:-17%;top:21%}.c2{left:5%;top:6%}.c3{left:31%;top:17%}.c4{left:57%;top:5%}.c5{left:80%;top:21%}.c6{display:none}.field-row{grid-template-columns:1fr}.booking-form{padding:20px}.booking-section{padding:12vh 5vw}.scene-about{padding-top:12vh}.about-photo-wrap img{height:55vh}footer{grid-template-columns:1fr;gap:14px}.footer-brand{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:smooth}.ink-transition{display:none}.art-card{transition:none}.preloader{display:none}}

/* v2: cinematic 3D must remain visible behind copy, with a fallback glow if WebGL is unavailable */
#webgl{z-index:1;filter:contrast(1.04) saturate(1.03)}
main{z-index:4}.scene-hero,.scene-engrave,.scene-machine{background:transparent}
.no-webgl .scene-hero,.no-webgl .scene-engrave,.no-webgl .scene-machine{background:radial-gradient(circle at 62% 42%,rgba(214,165,102,.13),transparent 32%),#050505}
@media(max-width:600px){#webgl{filter:contrast(1.02)}.scene-engrave,.scene-machine{min-height:145vh}}
