:root{color-scheme:dark;--gold:#e3c68a;--white:#fff8e9}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#100d09;color:var(--white);font-family:Arial,sans-serif}button{font:inherit;cursor:pointer;color:inherit;background:transparent;border:0}button:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button:disabled{opacity:.25;cursor:default}[hidden]{display:none!important}#photographs,.photo,.shade,#webgl{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.photo{object-fit:cover;opacity:0;transition:opacity var(--scene-fade,6s) cubic-bezier(.25,0,.35,1);transform:scale(1.035)}.photo.active{opacity:1}.photo.motion{animation:cameraPan var(--camera-duration,24000ms) linear both;will-change:transform}@keyframes cameraPan{from{transform:translate3d(var(--camera-x-start,0vw),var(--camera-y-start,0vh),0) scale(1.04)}to{transform:translate3d(var(--camera-x-end,0vw),var(--camera-y-end,0vh),0) scale(1.04)}}.shade{z-index:1;background:linear-gradient(90deg,rgba(7,6,4,.8),rgba(7,6,4,.28) 65%),linear-gradient(0deg,rgba(7,6,4,.8),transparent 35%,transparent 70%,rgba(7,6,4,.7))}body.landing .shade{background:linear-gradient(0deg,rgba(7,6,4,.68),rgba(7,6,4,.4),rgba(7,6,4,.64))}#webgl{z-index:2}header{position:fixed;z-index:5;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:26px 4vw}.brand{display:flex;gap:12px;align-items:center;text-align:left;font-family:Georgia,serif;font-size:18px;letter-spacing:.15em}.brand img{width:47px;height:50px;object-fit:contain}.brand small{display:block;font:9px Arial;letter-spacing:.24em;margin-top:9px;color:var(--gold)}.settings{display:flex;gap:24px}.settings button{font-size:12px;letter-spacing:.13em;padding:12px 0;border-bottom:1px solid #dec59170}main{position:fixed;inset:0;z-index:3;pointer-events:none}main button,main nav{pointer-events:auto}#landing{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:110px 22px 85px;animation:appear 2s both}.overline{color:var(--gold);font-size:12px;letter-spacing:.3em;line-height:1.6}h1{font:normal clamp(60px,8vw,135px)/1.03 Georgia,serif;letter-spacing:-.055em;margin:24px 0 30px}h1 em{font-weight:normal}.gold-rule{height:1px;width:76px;background:var(--gold)}#landing p{font:italic clamp(18px,2vw,25px)/1.6 Georgia,serif;color:#f2e7d3;margin:25px 0 38px}.entrance{padding:19px 24px;border:1px solid #dbc18788;background:#100d0940;letter-spacing:.21em;font-size:12px;transition:background .3s,box-shadow .3s}.entrance:hover{background:#b48b3b35;box-shadow:0 0 36px #dfb35425}.entrance span{padding-left:32px;font-size:20px}.landing-foot{position:absolute;bottom:34px;font-size:10px;letter-spacing:.25em;color:#e0d3ba}#chapters{position:absolute;top:112px;left:4vw;right:4vw;display:flex;gap:27px;border-top:1px solid #f1d29c30;padding-top:17px}#chapters button{font-size:12px;color:#ddd3c2;padding:6px 0;white-space:nowrap}#chapters button[aria-current=true]{color:var(--gold);border-bottom:1px solid var(--gold)}.copy{position:absolute;left:8vw;top:49%;transform:translateY(-40%);width:min(600px,48vw);text-shadow:0 2px 22px #0009}.copy h2{font:normal clamp(44px,5.8vw,98px)/1.04 Georgia,serif;letter-spacing:-.035em;margin:22px 0 26px;text-wrap:balance}.copy p{font:italic 20px/1.6 Georgia,serif;max-width:390px;color:#ede3d1}.copy.reveal h2{animation:appear 1.4s both}.copy.reveal p{animation:appear 1.7s .22s both}.copy[data-style="1"] h2{font-style:italic}.copy[data-style="2"] h2{animation-name:revealSide}body.team .shade{background:linear-gradient(90deg,#080705e6,#08070570 45%,transparent 80%),linear-gradient(0deg,#080705bb,transparent 45%,#08070599)}footer{position:absolute;bottom:39px;left:4vw;right:4vw;display:flex;align-items:center;justify-content:space-between}.counter{display:flex;align-items:center;gap:16px;font-size:13px;letter-spacing:.1em}.counter i{width:40px;height:1px;background:#bda67b}.counter span:last-child{color:#a79d8c}.hint{font-size:10px;letter-spacing:.2em;color:#cfc2a9}.controls{display:flex;gap:10px}.controls button{height:46px;width:46px;border:1px solid #d9bd8160;font-size:22px}.controls button:hover{background:#d9bd8125}.progress{position:absolute;bottom:20px;left:4vw;right:4vw;height:1px;background:#d9bd8130}.progress span{height:1px;display:block;background:var(--gold);transition:width 1.5s}#status{position:fixed;bottom:90px;right:4vw;z-index:8;font-size:13px;background:#100d09cc;padding:8px}#status:empty{display:none}@keyframes appear{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes revealSide{from{opacity:0;translate:-22px 0}to{opacity:1;translate:0 0}}@media(max-width:700px){header{padding:18px 20px}.brand{font-size:13px;gap:8px;letter-spacing:.08em}.brand img{width:31px;height:39px}.brand small{font-size:7px;letter-spacing:.13em}.settings{gap:12px}.settings button{font-size:10px;letter-spacing:.04em}#chapters{top:87px;left:20px;right:20px;gap:20px;overflow-x:auto;padding:13px 0 10px;scrollbar-width:thin}#chapters button{font-size:12px}h1{font-size:clamp(54px,13vw,90px);max-width:90vw}h1 em{display:block}.overline{font-size:10px;letter-spacing:.2em}.copy{left:7vw;top:auto;bottom:142px;transform:none;width:84vw}.copy h2{font-size:clamp(38px,10.5vw,58px);max-width:90%;margin:15px 0}.copy p{font-size:17px;line-height:1.5;max-width:310px;margin-bottom:0}.shade,body.team .shade{background:linear-gradient(0deg,#080705f2,#080705aa 30%,#08070515 65%,#08070599)}footer{left:7vw;right:7vw;bottom:42px}.hint{display:none}.landing-foot{font-size:8px;letter-spacing:.12em;bottom:30px}#landing p{font-size:18px}.photo{object-position:center}.progress{bottom:22px}.entrance{font-size:11px}}@media(max-height:520px){header{padding-top:10px}.brand img{height:30px}#chapters{top:66px;padding-top:8px}.copy{top:48%;bottom:auto;transform:translateY(-30%)}.copy h2{font-size:38px;margin:12px 0}.copy p{font-size:16px;margin:0}.copy .overline{font-size:10px}footer{bottom:24px}.progress{bottom:12px}h1{font-size:52px;margin:12px 0}#landing p{margin:12px 0}.landing-foot{display:none}#landing{padding:65px 15px 10px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Chapter typography: self-hosted editorial serif, display serif and calligraphy. */
@font-face{font-family:Cormorant;src:url('../assets/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Cormorant;src:url('../assets/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:Italiana;src:url('../assets/fonts/italiana-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:'Great Vibes';src:url('../assets/fonts/great-vibes-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{--accent-light:#fff2c9;--accent-deep:#e6b867;--copy-color:#f4e9d7}
body[data-chapter="1"]{--accent-light:#fff4da;--accent-deep:#eac28a;--copy-color:#f9ecda}
body[data-chapter="2"]{--accent-light:#ffe8db;--accent-deep:#e9b4a0;--copy-color:#fff0e9}
body[data-chapter="3"]{--accent-light:#f1f7ff;--accent-deep:#b5cadd;--copy-color:#edf3f9}
body[data-chapter="4"]{--accent-light:#fff2c6;--accent-deep:#d9b76d;--copy-color:#f9efd8}
body[data-chapter="5"]{--accent-light:#f9f0dc;--accent-deep:#e5cd9d;--copy-color:#f6eddf}
body[data-chapter="6"]{--accent-light:#fff0b2;--accent-deep:#e0b452;--copy-color:#fff1d6}
.brand{font-family:Italiana,Georgia,serif}h1{font-family:Italiana,Georgia,serif;letter-spacing:-.035em}h1 em{font-family:'Great Vibes',cursive;color:#f2d395;font-size:1.12em;line-height:1.3}#landing p{font-family:Cormorant,Georgia,serif;font-size:27px}
.copy{width:min(630px,46vw)}.copy h2{font-family:Cormorant,Georgia,serif;font-size:clamp(46px,5.7vw,86px);font-weight:400;line-height:1.04;letter-spacing:-.025em;color:#fff8ed;margin:22px 0 25px}.copy h2 em{font-family:Cormorant,Georgia,serif;font-weight:400;color:var(--accent-light);background:linear-gradient(115deg,var(--accent-light),var(--accent-deep) 65%,var(--accent-light));background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 2px 8px #0008)}.copy p{font-family:Cormorant,Georgia,serif;font-size:25px;line-height:1.4;color:var(--copy-color);max-width:390px;letter-spacing:.005em}.copy .overline{color:var(--accent-light)}.copy .overline::after{content:'';display:block;width:48px;height:1px;margin-top:18px;background:linear-gradient(90deg,var(--accent-deep),transparent)}
.copy.reveal h2{animation:luxuryRise 3.4s .65s both}.copy.reveal p{animation:luxuryRise 2.8s 3.4s both}.copy[data-style="1"] h2{font-style:normal}.copy[data-style="2"] h2{animation-name:luxurySide}
body[data-chapter="2"] .copy h2 em,body[data-chapter="6"] .copy h2 em{display:block;font-family:'Great Vibes',cursive;font-style:normal;font-size:1.15em;line-height:1.35;margin-top:3px}
body[data-chapter="3"] .copy h2,body[data-chapter="4"] .copy h2{font-family:Italiana,Georgia,serif;font-size:clamp(44px,5vw,74px);line-height:1.13}body[data-chapter="3"] .copy h2 em{font-style:normal}body[data-chapter="5"] .copy h2{font-size:clamp(46px,5.1vw,76px)}
body.opening .copy{width:min(470px,38vw)}body.opening .copy h2{font-size:clamp(40px,4.2vw,66px)}body.opening .copy.reveal h2{animation-duration:1s;animation-delay:.1s}body.opening .copy.reveal p{animation-duration:1s;animation-delay:.6s}body.opening .copy p{font-size:23px}
#autoplay[aria-pressed=true]{color:var(--accent-light)}#chapters button[aria-current=true]{color:var(--accent-light);border-bottom-color:var(--accent-deep)}
@keyframes luxuryRise{from{opacity:0;translate:0 22px;filter:blur(5px)}to{opacity:1;translate:0 0;filter:blur(0)}}@keyframes luxurySide{from{opacity:0;translate:-24px 0;filter:blur(4px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@media(max-width:700px){.copy,body.opening .copy{width:84vw;bottom:140px}.copy h2,body.opening .copy h2,body[data-chapter="3"] .copy h2,body[data-chapter="4"] .copy h2,body[data-chapter="5"] .copy h2{font-size:clamp(39px,10.8vw,57px);max-width:100%;margin:14px 0 17px;line-height:1.07}.copy p,body.opening .copy p{font-size:22px;line-height:1.3;max-width:330px}.copy .overline::after{margin-top:10px}body[data-chapter="2"] .copy h2 em,body[data-chapter="6"] .copy h2 em{font-size:1.08em;line-height:1.28}#landing p{font-size:24px}.brand{font-size:13px}h1 em{line-height:1.35}}
@media(max-height:520px){.copy,body.opening .copy{top:44%;bottom:auto;width:55vw;transform:translateY(-20%)}.copy h2,body.opening .copy h2,body[data-chapter="3"] .copy h2,body[data-chapter="4"] .copy h2,body[data-chapter="5"] .copy h2{font-size:34px;margin:10px 0}.copy p,body.opening .copy p{font-size:19px;line-height:1.2}.copy .overline::after{display:none}body[data-chapter="2"] .copy h2 em,body[data-chapter="6"] .copy h2 em{display:inline}#landing p{font-size:20px}}

/* Visual refinement. Existing chapter navigation and playback controls retained. */
@font-face{font-family:Cormorant;src:url('../assets/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Cormorant;src:url('../assets/fonts/cormorant-garamond-latin-500-italic.woff2') format('woff2');font-style:italic;font-weight:500;font-display:swap}
#entrance-loader{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;background:#100d09;color:#ead2a1}#entrance-loader img{object-fit:contain}#entrance-loader p{font:italic 21px Cormorant,Georgia,serif}#retry-entrance{font-size:14px;padding:12px 25px;border:1px solid #d7b77b}
.entrance-loading #landing,.entrance-loading header,.entrance-loading #photographs,.entrance-loading #webgl{visibility:hidden;opacity:0;animation:none}.entrance-ready #photographs{animation:entranceReveal 1.8s ease both}.entrance-ready #landing{animation:entranceReveal 1.8s ease both}@keyframes entranceReveal{from{opacity:0}to{opacity:1}}
.shade{background:linear-gradient(90deg,rgba(7,6,4,.48),rgba(7,6,4,.09) 66%),linear-gradient(0deg,rgba(7,6,4,.72),transparent 32%,transparent 72%,rgba(7,6,4,.68))}body.team .shade{background:linear-gradient(90deg,#08070588,#08070525 48%,transparent 80%),linear-gradient(0deg,#080705aa,transparent 45%,#08070599)}body.landing .shade{background:radial-gradient(ellipse at 50% 49%,#0706048c 14%,#07060430 67%),linear-gradient(0deg,#070604a8,transparent 35%,#07060455)}
.copy{isolation:isolate}.copy::before{content:'';position:absolute;z-index:-1;pointer-events:none;inset:-25% -23% -26% -18%;background:radial-gradient(ellipse at 38% 50%,rgba(7,6,4,.66) 15%,rgba(7,6,4,.3) 51%,transparent 73%)}.copy p{font-weight:500;text-shadow:0 2px 12px #000b;letter-spacing:.008em}.copy h2 em{font-size:.96em}body[data-chapter="2"] .copy h2 em,body[data-chapter="6"] .copy h2 em{font-size:1.04em;line-height:1.3}
#webgl{mask-image:radial-gradient(ellipse 42% 44% at 25% 55%,#0002 20%,#0007 55%,#000 90%);-webkit-mask-image:radial-gradient(ellipse 42% 44% at 25% 55%,#0002 20%,#0007 55%,#000 90%)}body.landing #webgl{mask-image:radial-gradient(ellipse 45% 34% at 50% 49%,#0002 30%,#000 95%);-webkit-mask-image:radial-gradient(ellipse 45% 34% at 50% 49%,#0002 30%,#000 95%)}
.enquiry{pointer-events:auto;display:inline-flex;align-items:center;gap:25px;margin-top:18px;padding:16px 21px;color:#fff0ca;background:#17100865;border:1px solid #d9b67590;text-decoration:none;font:12px Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase;transition:background .3s,border-color .3s}.enquiry span{font-size:19px}.enquiry:hover{background:#b48b3b35;border-color:#f5d692}.enquiry:focus-visible{outline:2px solid #e3c68a;outline-offset:5px}.copy.reveal .enquiry{animation:luxuryRise 2s 5s both}
@media(max-width:700px){.shade,body.team .shade{background:linear-gradient(0deg,#080705c9,#08070533 34%,#08070508 62%,#08070599)}.copy::before{inset:-22% -10% -25%;background:radial-gradient(ellipse at 42% 56%,#080705bb 10%,#08070566 50%,transparent 77%)}#webgl{mask-image:radial-gradient(ellipse 72% 28% at 44% 71%,#0001 30%,#0006 65%,#000 100%);-webkit-mask-image:radial-gradient(ellipse 72% 28% at 44% 71%,#0001 30%,#0006 65%,#000 100%)}body[data-chapter="2"] .copy h2 em,body[data-chapter="6"] .copy h2 em{font-size:1.01em}.enquiry{font-size:11px;padding:14px 17px;margin-top:19px;letter-spacing:.12em}body.has-enquiry .copy h2{font-size:40px}body.has-enquiry .copy p{font-size:21px}}
@media(max-height:520px){body.has-enquiry .copy{top:39%;width:57vw}body.has-enquiry .copy h2{font-size:30px}body.has-enquiry .copy p{font-size:18px}.enquiry{padding:10px 14px;margin-top:10px;font-size:10px}}

/* Photograph-specific atmosphere: floor mist, stage light and occasional accents. */
.effect-definitions{position:fixed;pointer-events:none}
#atmosphere{position:fixed;inset:0;z-index:2;overflow:hidden;pointer-events:none;mix-blend-mode:screen;--light-rgb:255,214,153;--stage-x:60%;--stage-y:46%;--haze:0;--bloom:0;--halo:0;--beams:0;--silk:0;--effect-fade:4.5s;mask-image:linear-gradient(90deg,#0005,#0008 35%,#000 62%);-webkit-mask-image:linear-gradient(90deg,#0005,#0008 35%,#000 62%)}
#atmosphere>div{position:absolute;inset:0;transition:opacity var(--effect-fade) ease,background-position var(--effect-fade) ease}
.stage-bloom{opacity:var(--bloom);background:radial-gradient(ellipse 22% 25% at var(--stage-x) var(--stage-y),rgba(var(--light-rgb),.8),rgba(var(--light-rgb),.19) 38%,transparent 75%);animation:stageBreath 14s ease-in-out infinite alternate}
.stage-halo{opacity:var(--halo);background:radial-gradient(ellipse 36% 9% at var(--stage-x) calc(var(--stage-y) + 5%),rgba(var(--light-rgb),.7),rgba(var(--light-rgb),.08) 45%,transparent 78%);filter:blur(15px);animation:haloBreath 19s ease-in-out infinite alternate}
.beam-set{opacity:var(--beams);filter:blur(8px);mask-image:linear-gradient(transparent,#000 18%,#0009 57%,transparent 82%);-webkit-mask-image:linear-gradient(transparent,#000 18%,#0009 57%,transparent 82%)}
.light-beam{position:absolute;top:-17%;left:calc(var(--stage-x) - 13%);width:26%;height:118%;transform-origin:50% 0;clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);background:linear-gradient(90deg,transparent,rgba(var(--light-rgb),.56) 49%,transparent);animation:stageBeam 32s ease-in-out infinite alternate}
.beam-b{left:calc(var(--stage-x) + 10%);width:17%;opacity:.52;animation-direction:alternate-reverse;animation-duration:41s;animation-delay:-17s}
.silk-light{opacity:var(--silk);background:linear-gradient(119deg,transparent 45%,rgba(var(--light-rgb),.05) 51%,rgba(var(--light-rgb),.19) 54%,transparent 65%),linear-gradient(122deg,transparent 64%,rgba(var(--light-rgb),.11) 70%,transparent 80%);filter:blur(15px);animation:silkDrift 31s ease-in-out infinite alternate}
.floor-haze{opacity:var(--haze);mask-image:linear-gradient(transparent 36%,#000 69%,#0005);-webkit-mask-image:linear-gradient(transparent 36%,#000 69%,#0005)}
.mist-cloud{position:absolute;left:-25%;bottom:-13%;width:145%;height:64%;background:radial-gradient(ellipse at 24% 62%,rgba(var(--light-rgb),.50),transparent 41%),radial-gradient(ellipse at 55% 53%,rgba(var(--light-rgb),.72),transparent 43%),radial-gradient(ellipse at 79% 70%,rgba(var(--light-rgb),.53),transparent 34%);filter:url('#haze-distortion');animation:mistDrift 36s ease-in-out infinite alternate;will-change:transform}
.mist-b{bottom:-6%;left:-13%;height:43%;opacity:.56;transform:scaleX(-1);animation:mistReturn 47s ease-in-out infinite alternate;animation-delay:-19s}
#webgl{opacity:var(--particle-opacity,.5);transition:opacity 4s ease;mix-blend-mode:screen}
body.landing #atmosphere{mask-image:radial-gradient(ellipse 40% 36% at 50% 48%,#0003 25%,#000 90%);-webkit-mask-image:radial-gradient(ellipse 40% 36% at 50% 48%,#0003 25%,#000 90%)}
body.entrance-loading #atmosphere{visibility:hidden;opacity:0}body.entrance-ready #atmosphere{animation:entranceReveal 1.8s ease both}
@keyframes mistDrift{from{transform:translate3d(-4%,-1%,0) scale(1)}to{transform:translate3d(7%,4%,0) scale(1.08)}}
@keyframes mistReturn{from{transform:translate3d(5%,3%,0) scaleX(-1)}to{transform:translate3d(-8%,-2%,0) scaleX(-1.05)}}
@keyframes stageBreath{from{transform:scale(.96)}to{transform:scale(1.045)}}
@keyframes haloBreath{from{transform:scaleX(.91)}to{transform:scaleX(1.09)}}
@keyframes stageBeam{from{transform:rotate(var(--beam-angle,-10deg))}to{transform:rotate(calc(var(--beam-angle,-10deg) + 8deg))}}
@keyframes silkDrift{from{transform:translateX(-3%)}to{transform:translateX(4%)}}
@media(max-width:700px){#atmosphere{mask-image:linear-gradient(#000 25%,#000b 45%,#0003 71%,#0008);-webkit-mask-image:linear-gradient(#000 25%,#000b 45%,#0003 71%,#0008)}.mist-cloud{filter:blur(16px);height:54%}.mist-b{display:none}.beam-b{display:none}.stage-bloom{background:radial-gradient(ellipse 37% 24% at var(--stage-x) var(--stage-y),rgba(var(--light-rgb),.7),rgba(var(--light-rgb),.12) 45%,transparent 78%)}.beam-set{filter:blur(6px)}}
body.motion-paused #atmosphere *,body.motion-paused #photographs *{animation-play-state:paused!important}
