:root{
 --ink:#0a0908;--ink2:#100e0b;--paper:#f4f1ea;--paper-dim:#b9b4a8;
 --bronze:#c19a5b;--bronze-soft:#d8b87e;--hair:rgba(244,241,234,.14);
 --display:"Bricolage Grotesque",serif;--body:"Hanken Grotesk",sans-serif;--ease:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--ink);color:var(--paper);font-family:var(--body);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden;line-height:1.55}
::selection{background:var(--bronze);color:var(--ink)}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* NAV */
nav.bar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:22px clamp(20px,5vw,64px);transition:.5s var(--ease);border-bottom:1px solid transparent}
nav.bar.docked{background:rgba(10,9,8,.72);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);padding-top:15px;padding-bottom:15px;border-bottom:1px solid var(--hair)}
.brand{font-family:var(--display);font-weight:500;font-size:17px;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:.55em;color:var(--paper)}
.brand .dot{width:7px;height:7px;border-radius:50%;background:var(--bronze)}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2.4vw,38px)}
.nav-links .lnk{font-size:14px;letter-spacing:.02em;color:var(--paper-dim);position:relative;transition:color .4s var(--ease);padding:6px 0}
.nav-links .lnk::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--bronze);transition:width .45s var(--ease)}
.nav-links .lnk:hover,.nav-links .lnk.active{color:var(--paper)}
.nav-links .lnk:hover::after,.nav-links .lnk.active::after{width:100%}
.havesub{position:relative}
.havesub .sub{position:absolute;top:100%;left:-18px;min-width:250px;background:rgba(16,14,11,.96);backdrop-filter:blur(14px);border:1px solid var(--hair);border-radius:10px;padding:10px 0;opacity:0;visibility:hidden;transform:translateY(10px);transition:.35s var(--ease)}
.havesub:hover .sub{opacity:1;visibility:visible;transform:translateY(0)}
.sub a{display:block;padding:11px 24px;font-size:13.5px;color:var(--paper-dim);transition:.3s}
.sub a:hover{color:var(--paper);background:rgba(193,154,91,.1)}
.cta{font-size:13.5px;letter-spacing:.04em;color:var(--ink);background:var(--paper);padding:11px 22px;border-radius:100px;font-weight:500;transition:.5s var(--ease)}
.cta:hover{background:var(--bronze-soft);transform:translateY(-1px)}
.burger{display:none;background:none;border:0;color:var(--paper);font-size:24px;cursor:pointer}
@media(max-width:980px){
 .nav-links{position:fixed;inset:64px 0 auto 0;flex-direction:column;align-items:flex-start;gap:0;background:rgba(10,9,8,.98);padding:14px 28px 26px;border-bottom:1px solid var(--hair);display:none}
 body.open .nav-links{display:flex}
 .nav-links .lnk{padding:13px 0;font-size:16px;width:100%}
 .havesub .sub{position:static;opacity:1;visibility:visible;transform:none;background:transparent;border:0;padding:0 0 8px 14px;min-width:0}
 .nav-links .cta{margin-top:12px}
 .burger{display:block}
}
/* HERO (video/full) */
.hero{position:relative;height:100svh;min-height:620px;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 10%,#1c1813,#0a0908 70%);z-index:0}
.hero-bg video,.hero-bg img{position:absolute;inset:0;opacity:0;transition:opacity 1.8s var(--ease);transform:scale(1.08);animation:zoom 22s ease-out forwards}
.hero-bg video.on,.hero-bg img.on{opacity:.6}
@keyframes zoom{to{transform:scale(1)}}
.veil{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,9,8,.5),rgba(10,9,8,.15) 40%,rgba(10,9,8,.85))}
.hero-in{position:relative;z-index:2;padding:0 24px;max-width:1100px}
.eyebrow{font-size:13px;letter-spacing:.42em;text-transform:uppercase;color:var(--bronze-soft);margin-bottom:30px;opacity:0;transform:translateY(20px);animation:rise 1s var(--ease) .3s forwards}
h1.big{font-family:var(--display);font-weight:200;font-size:clamp(2.7rem,8vw,7.5rem);line-height:.98;letter-spacing:-.02em}
h1.big span{display:block;opacity:0;transform:translateY(32px);filter:blur(8px);animation:rise 1.2s var(--ease) forwards}
h1.big .l1{animation-delay:.5s}h1.big .l2{animation-delay:.72s;font-style:italic;font-weight:500}
@keyframes rise{to{opacity:1;transform:none;filter:blur(0)}}
.hero-sub{margin:34px auto 0;max-width:540px;font-size:clamp(1rem,1.4vw,1.16rem);color:var(--paper-dim);opacity:0;animation:rise 1.2s var(--ease) 1s forwards}
.btn-hero{display:inline-block;margin-top:36px;background:var(--paper);color:var(--ink);font-weight:500;letter-spacing:.04em;padding:16px 36px;border-radius:100px;font-size:14px;transition:.5s var(--ease);opacity:0;animation:rise 1.2s var(--ease) 1.2s forwards}
.btn-hero:hover{background:var(--bronze-soft);transform:translateY(-2px)}
.cue{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;width:1px;height:46px;background:linear-gradient(var(--bronze),transparent);animation:drop 2.2s ease-in-out infinite}
@keyframes drop{0%,100%{transform:translateX(-50%) scaleY(.3);transform-origin:top;opacity:.4}50%{transform:translateX(-50%) scaleY(1);opacity:1}}
/* PAGE HERO (image + title) */
.phero{position:relative;height:74svh;min-height:480px;display:flex;align-items:flex-end;overflow:hidden}
.phero .hero-bg video,.phero .hero-bg img{animation:zoom 16s ease-out forwards}
.phero-in{position:relative;z-index:2;padding:0 clamp(20px,5vw,64px) clamp(46px,7vh,90px);max-width:1240px;margin:0 auto;width:100%}
.phero .eyebrow{animation-delay:.2s}
.phero h1{font-family:var(--display);font-weight:200;font-size:clamp(2.4rem,6vw,5.4rem);line-height:1;letter-spacing:-.02em;max-width:18ch;opacity:0;transform:translateY(28px);animation:rise 1.1s var(--ease) .4s forwards}
/* shared */
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,5vw,64px)}
.reveal{opacity:0;transform:translateY(40px);transition:opacity 1.1s var(--ease),transform 1.1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.kicker{font-size:12.5px;letter-spacing:.34em;text-transform:uppercase;color:var(--bronze);margin-bottom:24px}
/* SCENE (centered statement) */
.scene{padding:clamp(110px,16vh,200px) 0;text-align:center}
.scene h2{font-family:var(--display);font-weight:200;letter-spacing:-.02em;line-height:1.05;font-size:clamp(2rem,5vw,4.2rem);max-width:18ch;margin:0 auto}
.scene h2 em{font-style:italic;font-weight:400;color:var(--bronze-soft)}
.scene p{margin:34px auto 0;max-width:600px;color:var(--paper-dim);font-size:1.1rem}
.scene p+p{margin-top:18px}
/* INCLUDED CHECKLIST */
.inc-list{list-style:none;margin:34px auto 0;max-width:560px;text-align:left;display:grid;gap:16px}
.inc-list li{position:relative;padding-left:40px;color:var(--paper-dim);font-size:1.06rem;line-height:1.5}
.inc-list li svg{position:absolute;left:0;top:1px;width:24px;height:24px;fill:none;stroke:var(--bronze);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
/* PANEL */
.panel{display:grid;grid-template-columns:1fr 1fr;min-height:84vh;align-items:center}
.panel.flip .pm{order:2}
.pm{position:relative;height:100%;min-height:58vh;overflow:hidden;background:#15110c}
.pm img{transform:scale(1.12);transition:transform 1.6s var(--ease)}
.pm.in img{transform:scale(1)}
.pm::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(10,9,8,.25))}
.pb{padding:clamp(48px,7vw,108px)}
.pnum{font-family:var(--display);font-size:13px;letter-spacing:.3em;color:var(--bronze);margin-bottom:22px}
.pb h3{font-family:var(--display);font-weight:300;font-size:clamp(1.9rem,4.2vw,3.4rem);line-height:1.03;letter-spacing:-.02em;margin-bottom:22px}
.pb p{color:var(--paper-dim);max-width:46ch;font-size:1.06rem;margin-bottom:16px}
.alink{display:inline-flex;align-items:center;gap:.7em;font-size:14px;letter-spacing:.06em;color:var(--paper);text-transform:uppercase;margin-top:18px}
.alink .ar{color:var(--bronze);transition:transform .5s var(--ease)}
.alink:hover .ar{transform:translateX(8px)}
.alink .u{position:relative}
.alink .u::after{content:"";position:absolute;left:0;bottom:-5px;height:1px;width:100%;background:var(--hair);transition:.4s}
.alink:hover .u::after{background:var(--bronze)}
@media(max-width:880px){.panel{grid-template-columns:1fr}.panel.flip .pm{order:0}.pm{min-height:54vh}}
/* PROSE block (text-only sections) */
.prose{padding:clamp(70px,9vh,120px) 0}
.prose .sub-h{font-family:var(--display);font-weight:400;font-size:clamp(1.5rem,3vw,2.2rem);letter-spacing:-.01em;margin:0 0 18px;max-width:22ch}
.prose p{color:var(--paper-dim);max-width:70ch;font-size:1.06rem;margin:0 0 16px}
.prose ul{list-style:none;max-width:70ch;margin:18px 0}
.prose li{color:var(--paper-dim);padding-left:24px;position:relative;margin:10px 0}
.prose li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--bronze)}
/* MORE pills */
.more{padding:clamp(80px,12vh,140px) 0;text-align:center;border-top:1px solid var(--hair)}
.more h4{font-family:var(--display);font-weight:300;font-size:clamp(1.4rem,3vw,2.1rem);margin-bottom:28px}
.pills{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;max-width:820px;margin:0 auto}
.pill{border:1px solid var(--hair);border-radius:100px;padding:11px 22px;font-size:14px;color:var(--paper-dim);transition:.4s var(--ease)}
.pill:hover{border-color:var(--bronze);color:var(--paper);transform:translateY(-2px)}
/* FOUR up */
.four{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.four .cell{background:var(--ink);padding:40px 32px 48px}
.four .cell .n{font-family:var(--display);font-size:13px;letter-spacing:.2em;color:var(--bronze);margin-bottom:26px}
.four .cell h5{font-family:var(--display);font-weight:400;font-size:1.28rem;margin-bottom:12px}
.four .cell p{color:var(--paper-dim);font-size:.97rem;line-height:1.6}
@media(max-width:900px){.four{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.four{grid-template-columns:1fr}}
/* GALLERY */
.gal-sec{padding:clamp(80px,11vh,130px) 0 0}
.gal-head{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:20px;margin-bottom:48px}
.gal-head h2{font-family:var(--display);font-weight:200;font-size:clamp(2.2rem,6vw,4.6rem);letter-spacing:-.02em;line-height:1}
.gal{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(240px,30vw,430px);gap:14px}
.gp{position:relative;overflow:hidden;border-radius:4px;background:#15110c}
.gp img{transition:transform 1.1s var(--ease),filter 1.1s var(--ease);filter:grayscale(.12) brightness(.92)}
.gp:hover img{transform:scale(1.06);filter:grayscale(0) brightness(1)}
.gp.w7{grid-column:span 7}.gp.w5{grid-column:span 5}
.gp.w6{grid-column:span 6}.gp.w4{grid-column:span 4}
.gp.w12{grid-column:span 12}
@media(max-width:760px){.gp{grid-column:span 12!important}.gal{grid-auto-rows:clamp(200px,58vw,320px)}}
/* INVITE */
.invite{padding:clamp(130px,20vh,250px) 0;text-align:center;position:relative;overflow:hidden}
.invite::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 50%,rgba(193,154,91,.12),transparent 70%)}
.invite>.wrap{position:relative}
.invite h2{font-family:var(--display);font-weight:200;font-size:clamp(2.2rem,6vw,5.2rem);line-height:1.02;letter-spacing:-.025em;max-width:18ch;margin:0 auto 24px}
.invite p{color:var(--paper-dim);max-width:540px;margin:0 auto 46px;font-size:1.1rem}
.big-cta{display:inline-flex;align-items:center;gap:.8em;background:var(--paper);color:var(--ink);font-weight:500;font-size:1.02rem;letter-spacing:.02em;padding:19px 40px;border-radius:100px;transition:.5s var(--ease)}
.big-cta:hover{transform:translateY(-3px) scale(1.01);background:var(--bronze-soft)}
.big-cta .ar{transition:transform .5s var(--ease)}.big-cta:hover .ar{transform:translateX(6px)}
/* CONTACT */
.cform{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.cform .row{display:flex;gap:20px}
.cform label{flex:1;display:flex;flex-direction:column;gap:9px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--paper-dim)}
.cform input,.cform select,.cform textarea{background:transparent;border:0;border-bottom:1px solid var(--hair);color:var(--paper);font-family:var(--body);font-size:1.05rem;padding:12px 2px;transition:.4s}
.cform select option{background:#15110c}
.cform input:focus,.cform select:focus,.cform textarea:focus{outline:none;border-color:var(--bronze)}
.cform .big-cta{align-self:flex-start;border:0;cursor:pointer;margin-top:10px}
.cinfo{display:flex;gap:54px;flex-wrap:wrap;justify-content:center;margin-top:70px;text-align:center}
.cinfo .ci .k{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--bronze);margin-bottom:10px}
.cinfo .ci a,.cinfo .ci span{color:var(--paper);font-size:1.05rem}
.cinfo .ci .csoc{display:flex;flex-direction:column;gap:8px}
.cinfo .ci .csoc a{color:var(--paper);font-size:1.05rem;text-decoration:none;transition:color .3s var(--ease)}
.cinfo .ci .csoc a:hover{color:var(--bronze)}
@media(max-width:620px){.cform .row{flex-direction:column}}
/* FOOTER */
footer.ft{border-top:1px solid var(--hair);padding:clamp(70px,9vh,110px) 0 38px;margin-top:0}
.ftg{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:46px;margin-bottom:70px}
.ftbrand .brand{font-size:20px;margin-bottom:22px}
.ftbrand p{color:var(--paper-dim);max-width:32ch;font-size:.98rem}
.ftcol h6{font-family:var(--display);font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--bronze);margin-bottom:20px}
.ftcol a{display:block;color:var(--paper-dim);font-size:14.5px;margin-bottom:12px;transition:.35s}
.ftcol a:hover{color:var(--paper)}
.ftcol .lic{color:var(--paper-dim);font-size:13.5px;line-height:1.7}
.ftbottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding-top:32px;border-top:1px solid var(--hair);font-size:13px;color:var(--paper-dim)}
.fsoc{display:flex;gap:18px}.fsoc a:hover{color:var(--bronze)}
@media(max-width:820px){.ftg{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.ftg{grid-template-columns:1fr}}
/* brand logo */
.brand img{height:30px;width:auto;display:block;transition:height .5s var(--ease)}
nav.bar.docked .brand img{height:26px}
.ftbrand .flogo-img{height:46px;width:auto;display:block;margin-bottom:22px}
@media(max-width:980px){.brand img{height:26px}}
/* darker hero video */
.hero .hero-bg video.on{opacity:.8}
.hero .veil{background:linear-gradient(180deg,rgba(10,9,8,.66),rgba(10,9,8,.5) 40%,rgba(10,9,8,.92))}
/* rotating circular cursor follower */
*{cursor:none}
@media(hover:none),(pointer:coarse){*{cursor:auto}}
.cursor-ring{position:fixed;top:0;left:0;width:120px;height:120px;margin:-60px 0 0 -60px;pointer-events:none;z-index:10000;opacity:0;transition:opacity .45s var(--ease);mix-blend-mode:difference;will-change:transform}
.cursor-ring.show{opacity:1}
.cursor-ring svg{width:100%;height:100%;animation:ringspin 8s linear infinite;transition:transform .5s var(--ease)}
.cursor-ring text{fill:#fff;font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.04em}
.cursor-ring .ring-dot{position:absolute;top:50%;left:50%;width:7px;height:7px;border-radius:50%;background:var(--bronze);transform:translate(-50%,-50%);transition:transform .35s var(--ease),background .35s}
.cursor-ring.hot{opacity:1}
.cursor-ring.hot svg{transform:scale(1.18)}
.cursor-ring.hot .ring-dot{transform:translate(-50%,-50%) scale(2.4);background:var(--bronze-soft)}
@keyframes ringspin{to{transform:rotate(360deg)}}
@media(hover:none),(pointer:coarse){.cursor-ring{display:none!important}}
