:root{
  --obsidian:#121110;
  --charcoal:#1b1917;
  --char-2:#24211e;
  --stone:#f3efea;
  --sand:#e7e0d6;
  --ink:#171513;
  --muted:#665f58;
  --muted-d:#a39a90;
  --freijo:#b87d4b;
  --freijo-l:#d9a679;
  --line-d:rgba(243,239,234,.14);
  --line-l:rgba(23,21,19,.14);
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-io:cubic-bezier(.65,0,.35,1);
  --gutter:clamp(20px,4.6vw,80px);
  --font:Verdana,Geneva,Tahoma,sans-serif;
}
*,*:before,*:after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:80px}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--obsidian);color:var(--stone);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a,button,label{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:1.5px solid var(--freijo-l);outline-offset:5px}
img,video{display:block;width:100%;height:100%;object-fit:cover}
figure,p,h1,h2,h3,blockquote,dl,dd,ol,fieldset{margin:0;padding:0}
fieldset{border:0}
h1,h2,h3{font-weight:400;letter-spacing:-.05em;line-height:1}
b{font-weight:400;color:var(--freijo-l)}
.ar{display:inline-block;width:1em;height:1em;vertical-align:-.14em;flex:none;stroke-width:1.6}
svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
::selection{background:var(--freijo);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;z-index:100;left:16px;top:-80px;padding:12px 16px;background:var(--stone);color:var(--ink)}
.skip:focus{top:16px}

.label{display:flex;align-items:center;gap:12px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d)}
.label span{display:inline-grid;place-items:center;min-width:34px;height:22px;padding:0 6px;border:1px solid currentColor;color:var(--freijo-l);letter-spacing:.1em;outline:1px solid var(--line-d);outline-offset:2px}
.tag{display:flex;align-items:center;gap:12px;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d)}
.tick{width:22px;height:1px;background:var(--freijo-l);position:relative}
.tick:after{content:'';position:absolute;right:0;top:-4px;width:1px;height:9px;background:var(--freijo-l)}
.title{font-size:clamp(38px,5.6vw,96px);line-height:.98}
.line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.line>span{display:inline-block;will-change:transform}

.btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:16px;height:58px;padding:0 26px 0 30px;background:var(--freijo);color:#fff;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;outline:1px solid rgba(217,166,121,.5);outline-offset:5px;overflow:hidden;transition:outline-offset .5s var(--ease),outline-color .5s}
.btn:before{content:'';position:absolute;inset:0;z-index:-1;background:#8f5b30;transform:scaleX(0);transform-origin:right;transition:transform .7s var(--ease)}
.btn:hover:before{transform:scaleX(1);transform-origin:left}
.btn:hover{outline-offset:8px;outline-color:var(--freijo-l)}
.btn i{display:inline-flex;font-style:normal;font-size:16px;transition:transform .5s var(--ease)}
.btn:hover i{transform:translate(3px,-3px)}
.btn .ar{stroke-width:1.7}
.btn-line{display:inline-flex;align-items:center;min-height:58px;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 16px)/100% 1px no-repeat;transition:background-size .6s var(--ease)}
.btn-line:hover{background-size:0 1px;background-position:100% calc(100% - 16px)}

/* Loader */
.loader{display:none;position:fixed;inset:0;z-index:90;flex-direction:column;align-items:center;justify-content:center;gap:26px;background:var(--obsidian);pointer-events:none;clip-path:inset(0)}
.is-loading .loader{display:flex;animation:loader-out .9s 3.2s var(--ease-io) both}
.loader-frame{position:relative;width:min(56vw,300px);aspect-ratio:300/160;display:grid;place-items:center}
.loader-frame svg{position:absolute;inset:-14px;width:calc(100% + 28px);height:calc(100% + 28px);stroke:var(--freijo-l);stroke-width:1;stroke-dasharray:920;stroke-dashoffset:920;animation:draw 1.4s .1s var(--ease) forwards;vector-effect:non-scaling-stroke}
.loader-frame img{width:100%;height:auto;object-fit:contain;clip-path:inset(0 100% 0 0);animation:wipe 1.1s .5s var(--ease-io) forwards}
.loader-meta{display:flex;gap:28px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d)}
.loader-count{color:var(--freijo-l);min-width:3ch;text-align:center}
.loader.is-exiting{animation:loader-out .9s var(--ease-io) forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes wipe{to{clip-path:inset(0 0 0 0)}}
@keyframes loader-out{to{clip-path:inset(0 0 100% 0)}}

/* Nav */
.nav{position:fixed;z-index:50;top:0;left:0;right:0;display:flex;align-items:center;gap:36px;padding:18px var(--gutter);transition:background .5s,transform .6s var(--ease),padding .5s var(--ease)}
.nav.is-scrolled{background:rgba(18,17,16,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line-d);padding-top:12px;padding-bottom:12px}
.nav.is-hidden{transform:translateY(-105%)}
.nav-logo{width:92px;flex:none}
.nav-logo img{height:auto;object-fit:contain}
.nav-links{display:flex;gap:30px;margin-left:auto;font-size:12px;letter-spacing:.06em}
.nav-links a{position:relative;padding:6px 0;color:rgba(243,239,234,.8);transition:color .3s}
.nav-links a:hover{color:var(--stone)}
.nav-links a:after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--freijo-l);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease)}
.nav-links a:hover:after{transform:scaleX(1);transform-origin:left}
.nav-cta{display:inline-flex;align-items:center;gap:12px;height:42px;padding:0 18px;border:1px solid rgba(217,166,121,.55);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;transition:background .4s,border-color .4s}
.nav-cta i{display:inline-flex;font-style:normal;font-size:14px;color:var(--freijo-l);transition:transform .5s var(--ease)}
.nav-cta:hover{background:var(--freijo);border-color:var(--freijo)}
.nav-cta:hover i{transform:translate(2px,-2px);color:#fff}
.menu-toggle{display:none;align-items:center;gap:12px;height:44px;margin-left:auto;font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.menu-lines{display:grid;gap:6px;width:24px}
.menu-lines i{display:block;height:1.5px;background:var(--stone);transition:transform .4s var(--ease)}
.menu-open .menu-lines i:first-child{transform:translateY(3.75px) rotate(45deg)}
.menu-open .menu-lines i:last-child{transform:translateY(-3.75px) rotate(-45deg)}
.mobile-menu{position:fixed;inset:0;z-index:45;display:flex;flex-direction:column;justify-content:center;padding:100px var(--gutter) 40px;background:var(--obsidian)}
.mobile-menu[hidden]{display:none}
.mobile-menu a{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-d);font-size:34px;letter-spacing:-.05em}
.mobile-menu small{font-size:11px;letter-spacing:.1em;color:var(--freijo-l)}
.mobile-menu p{margin-top:28px;font-size:12px;color:var(--muted-d)}
.menu-open{overflow:hidden}

/* Hero */
.hero{position:relative;background:var(--obsidian)}
.hero-pin{position:relative;height:100svh;min-height:600px;overflow:hidden}
.hero-copy{position:absolute;left:var(--gutter);top:50%;transform:translateY(-44%);width:min(48vw,720px);z-index:1}
.hero-title{margin:26px 0 0;font-size:clamp(46px,7.4vw,132px);line-height:.94;letter-spacing:-.065em}
.hero-title b{color:var(--freijo-l)}
.hero-lead{max-width:440px;margin-top:30px;color:rgba(243,239,234,.72);font-size:15px}
.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 30px;margin-top:34px}
.hero-window{--w:min(34vw,calc(71svh * .78));position:absolute;z-index:2;top:16svh;left:calc(100% - var(--gutter) - var(--w));width:var(--w);height:71svh}
.window-frame{position:absolute;inset:0;overflow:hidden;background:var(--charcoal)}
.hero-video{transform:scale(1.04)}
.window-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,17,16,.15),rgba(18,17,16,.45));opacity:0}
.window-outline{position:absolute;inset:-12px;border:1px solid var(--line-d);pointer-events:none}
.window-outline:before{content:'';position:absolute;inset:-1px;border:1px solid var(--freijo-l);clip-path:polygon(0 0,28% 0,28% 1px,1px 1px,1px 28%,0 28%,0 100%,0 100%,72% 100%,72% calc(100% - 1px),calc(100% - 1px) calc(100% - 1px),calc(100% - 1px) 72%,100% 72%,100% 100%,0 100%)}
.dim{position:absolute;display:flex;align-items:center;gap:10px;font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d);pointer-events:none}
.dim i{flex:1;height:1px;background:var(--line-d);position:relative}
.dim em{font-style:normal;white-space:nowrap}
.dim-x{left:0;right:0;top:-40px}
.dim-x i:first-child:before,.dim-x i:last-child:after{content:'';position:absolute;top:-4px;width:1px;height:9px;background:var(--muted-d)}
.dim-x i:first-child:before{left:0}.dim-x i:last-child:after{right:0}
.dim-y{top:0;bottom:0;right:-44px;width:1px;flex-direction:column;justify-content:center}
.dim-y i{width:1px;height:auto;flex:1}
.dim-y em{writing-mode:vertical-rl;transform:rotate(180deg)}
.window-caption{position:absolute;left:0;bottom:-34px;font-size:11px;letter-spacing:.06em;color:var(--muted-d)}
.window-caption b{color:var(--stone);margin-right:8px}
.hero-scroll{position:absolute;left:var(--gutter);bottom:26px;display:flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted-d);z-index:3}
.hero-scroll i{width:60px;height:1px;background:var(--line-d);position:relative;overflow:hidden}
.hero-scroll i:after{content:'';position:absolute;inset:0;background:var(--freijo-l);animation:scan 2.2s var(--ease) infinite}
@keyframes scan{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}

/* Ticker */
.ticker{overflow:hidden;padding:22px 0;border-block:1px solid var(--line-d);background:var(--obsidian)}
.ticker-track{display:flex;align-items:center;gap:36px;width:max-content;font-size:clamp(22px,3vw,40px);letter-spacing:-.05em;white-space:nowrap;color:rgba(243,239,234,.86);animation:ticker 40s linear infinite}
.ticker b{width:12px;height:12px;flex:none;border:1px solid var(--freijo-l);outline:1px solid var(--line-d);outline-offset:3px}
@keyframes ticker{to{transform:translateX(-50%)}}

/* Light sections */
.manifesto,.rooms,.quote-cta{background:var(--stone);color:var(--ink)}
.reviews{background:var(--sand);color:var(--ink)}
.manifesto .label,.rooms .label,.quote-cta .label,.reviews .label{color:var(--muted)}
.manifesto .label span,.rooms .label span,.quote-cta .label span,.reviews .label span{color:var(--freijo);outline-color:var(--line-l)}
.manifesto b,.rooms b,.quote-cta b,.reviews b{color:var(--freijo)}

/* Manifesto */
.manifesto{padding:clamp(100px,13vw,190px) var(--gutter) clamp(80px,10vw,140px)}
.manifesto-text{max-width:1180px;margin-top:40px;font-size:clamp(30px,4.3vw,72px);line-height:1.08;letter-spacing:-.055em}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(60px,8vw,120px);border-top:1px solid var(--line-l)}
.facts div{padding:26px 20px 0 0;border-right:1px solid var(--line-l)}
.facts div+div{padding-left:24px}
.facts div:last-child{border-right:0}
.facts dt{font-size:clamp(34px,4vw,64px);letter-spacing:-.06em;line-height:1}
.facts dd{margin-top:10px;font-size:12px;color:var(--muted);max-width:180px}

/* Projects */
.projects{position:relative;padding:clamp(100px,12vw,170px) 0 clamp(70px,8vw,110px);background:var(--obsidian);overflow:hidden}
.projects-head{display:grid;grid-template-columns:1fr auto;align-items:end;gap:24px 60px;padding:0 var(--gutter)}
.projects-head .label{grid-column:1/-1}
.projects-hint{font-size:12px;color:var(--muted-d);padding-bottom:10px}
.projects-track{display:flex;align-items:flex-end;gap:clamp(18px,2.4vw,40px);width:max-content;padding:clamp(50px,6vw,90px) var(--gutter) 0;will-change:transform}
.project{flex:none;width:min(25vw,400px,calc(56vh * .8));min-width:240px}
.project:nth-child(3n+1){width:min(40vw,640px,calc(56vh * 4 / 3));min-width:320px}
.project-btn{display:block;width:100%;text-align:left}
.project-img{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--charcoal)}
.project:nth-child(3n+1) .project-img{aspect-ratio:4/3}
.project-img:after{content:'';position:absolute;inset:10px;border:1px solid rgba(243,239,234,.0);transition:border-color .6s var(--ease),inset .6s var(--ease);pointer-events:none}
.project-img img{transition:transform 1.2s var(--ease)}
.project-btn:hover .project-img img{transform:scale(1.06)}
.project-btn:hover .project-img:after{border-color:rgba(243,239,234,.6);inset:16px}
.project-meta{display:grid;grid-template-columns:auto 1fr auto;column-gap:14px;padding-top:18px;border-top:1px solid var(--line-d);margin-top:18px}
.project-n{grid-row:span 2;font-size:11px;color:var(--freijo-l);letter-spacing:.1em;padding-top:4px}
.project-name{font-size:clamp(17px,1.5vw,22px);letter-spacing:-.04em;line-height:1.2}
.project-place{grid-column:2;font-size:11px;color:var(--muted-d);margin-top:4px}
.project-count{grid-row:1/3;grid-column:3;align-self:start;font-size:11px;color:var(--freijo-l);white-space:nowrap;padding-top:4px}
.project-end{display:flex;flex-direction:column;justify-content:space-between;gap:30px;width:clamp(240px,22vw,340px)!important;aspect-ratio:4/5;padding:28px;border:1px solid var(--line-d);outline:1px solid var(--line-d);outline-offset:-10px;font-size:clamp(20px,1.8vw,28px);letter-spacing:-.04em;line-height:1.2;transition:background .5s}
.project-end b{font-size:12px;letter-spacing:.04em}
.project-end:hover{background:var(--charcoal)}
.projects-progress{height:1px;margin:50px var(--gutter) 0;background:var(--line-d)}
.projects-progress i{display:block;height:100%;background:var(--freijo-l);transform-origin:left;transform:scaleX(0)}

/* Tour */
.tour{position:relative;padding:clamp(100px,12vw,170px) var(--gutter);background:var(--charcoal);overflow:hidden}
.tour-head{display:grid;grid-template-columns:1fr minmax(0,380px);align-items:end;gap:24px 60px}
.tour-head .label{grid-column:1/-1}
.tour-head>p:last-child{color:var(--muted-d);font-size:14px}
.tour-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,30px);margin-top:clamp(50px,7vw,100px);align-items:start}
.reel:nth-child(even){margin-top:clamp(30px,6vw,100px)}
.reel-frame{position:relative;display:block;width:100%;aspect-ratio:9/16;overflow:hidden;background:#0c0b0a}
.reel-frame:before{content:'';position:absolute;inset:8px;z-index:2;border:1px solid rgba(243,239,234,.28);pointer-events:none;transition:inset .6s var(--ease)}
.reel-frame:hover:before{inset:14px}
.reel-frame:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 55%,rgba(12,11,10,.6));pointer-events:none}
.reel-frame video{transition:transform 1.2s var(--ease)}
.reel-frame:hover video{transform:scale(1.06)}
.reel-play{position:absolute;left:18px;bottom:18px;z-index:3;display:flex;align-items:center;gap:10px;height:42px;padding:0 16px 0 6px;background:var(--stone);color:var(--ink);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;transition:transform .5s var(--ease)}
.reel-play svg{width:30px;height:30px;padding:9px;background:var(--freijo);fill:#fff;stroke:none;flex:none}
.reel-frame:hover .reel-play{transform:translateY(-3px)}
.reel-time{position:absolute;right:20px;bottom:30px;z-index:3;font-size:10.5px;letter-spacing:.14em;color:var(--stone)}
.reel-meta{display:grid;grid-template-columns:auto 1fr;column-gap:14px;margin-top:20px}
.reel-meta span{grid-row:span 2;font-size:11px;color:var(--freijo-l);padding-top:3px}
.reel-meta h3{font-size:clamp(16px,1.4vw,20px);letter-spacing:-.04em;line-height:1.25}
.reel-meta p{font-size:11.5px;color:var(--muted-d);margin-top:4px}
.tour-progress{display:none}

/* Rooms */
.rooms{padding:clamp(100px,12vw,170px) var(--gutter)}
.rooms-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,120px);margin-top:clamp(50px,6vw,90px)}
.rooms-stage{position:sticky;top:14vh;height:72vh;align-self:start}
.rooms-frame{position:relative;height:100%;overflow:hidden;background:var(--sand);outline:1px solid var(--line-l);outline-offset:10px}
.rooms-frame img{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path 1.1s var(--ease-io)}
.rooms-frame img.is-on{clip-path:inset(0 0 0 0);z-index:2}
.rooms-frame img.was-on{clip-path:inset(0 0 0 0);z-index:1}
.rooms-index{position:absolute;right:0;bottom:-44px;font-size:11px;letter-spacing:.14em;color:var(--muted)}
.rooms-index b{color:var(--freijo)}
.rooms-list{list-style:none}
.room{min-height:62vh;display:flex;flex-direction:column;justify-content:center;padding:40px 0;border-top:1px solid var(--line-l);opacity:.3;transition:opacity .6s var(--ease)}
.room.is-on{opacity:1}
.room-n{font-size:11px;letter-spacing:.14em;color:var(--freijo)}
.room h3{margin-top:14px;font-size:clamp(30px,3.6vw,60px);letter-spacing:-.055em}
.room p{max-width:420px;margin-top:18px;color:var(--muted);font-size:14px}
.room img{display:none}

/* Factory */
.factory{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 clamp(40px,7vw,120px);padding:clamp(100px,12vw,170px) var(--gutter);background:var(--obsidian)}
.factory-head{grid-column:1/-1;margin-bottom:clamp(50px,6vw,90px)}
.factory-head .title{margin-top:30px}
.factory-photos{position:relative;min-height:640px}
.fp{position:absolute;overflow:hidden;background:var(--charcoal)}
.fp img{height:116%;margin-top:-8%}
.fp figcaption{position:absolute;left:12px;bottom:10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--stone);text-shadow:0 1px 8px rgba(0,0,0,.6)}
.fp-a{left:0;top:0;width:58%;aspect-ratio:9/14;outline:1px solid var(--line-d);outline-offset:10px}
.fp-b{right:0;bottom:0;width:46%;aspect-ratio:9/14;z-index:2;box-shadow:0 0 0 10px var(--obsidian)}
.steps{position:relative;list-style:none;align-self:center;padding-left:34px}
.step{display:grid;grid-template-columns:52px 1fr;gap:16px;padding:30px 0;border-bottom:1px solid var(--line-d);opacity:.35;transition:opacity .6s var(--ease)}
.step.is-on{opacity:1}
.step-n{font-size:11px;letter-spacing:.14em;color:var(--freijo-l);padding-top:5px}
.step h3{font-size:clamp(20px,1.9vw,28px);letter-spacing:-.045em;line-height:1.2}
.step p{margin-top:8px;font-size:13.5px;color:var(--muted-d)}
.steps-line{position:absolute;left:0;top:30px;bottom:30px;width:1px;background:var(--line-d)}
.steps-line i{position:absolute;inset:0;background:var(--freijo-l);transform-origin:top;transform:scaleY(0)}
.factory-visit{grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 30px;margin-top:clamp(60px,7vw,100px);padding:26px 0;border-block:1px solid var(--line-d);font-size:clamp(18px,2vw,28px);letter-spacing:-.045em;transition:color .4s}
.factory-visit b{font-size:12px;letter-spacing:.02em}
.factory-visit:hover{color:var(--freijo-l)}

/* Reviews */
.reviews{padding:clamp(100px,12vw,170px) var(--gutter) clamp(70px,8vw,110px)}
.quotes{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(30px,6vw,100px);margin-top:50px}
.quote p{font-size:clamp(24px,2.6vw,42px);line-height:1.15;letter-spacing:-.05em}
.stars{display:block;margin-bottom:22px;font-size:13px;letter-spacing:.24em;color:var(--freijo)}
.quote figcaption{margin-top:22px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.partners{display:flex;align-items:center;gap:30px;margin-top:clamp(60px,8vw,110px);padding-top:26px;border-top:1px solid var(--line-l);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.partners-track{display:flex;flex-wrap:wrap;gap:10px 30px;text-transform:none;letter-spacing:0;font-size:14px;color:var(--ink)}
.partners-track a:hover{color:var(--freijo)}

/* Quote builder */
.quote-cta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,560px);gap:clamp(40px,7vw,120px);align-items:start;padding:clamp(100px,12vw,170px) var(--gutter)}
.quote-copy{display:grid;gap:26px}
.quote-copy>p:not(.label){max-width:440px;color:var(--muted)}
.phones{display:grid;gap:0;margin-top:10px;border-top:1px solid var(--line-l)}
.phones a{display:grid;padding:18px 0;border-bottom:1px solid var(--line-l);font-size:clamp(20px,2vw,28px);letter-spacing:-.045em;transition:color .3s}
.phones a:hover{color:var(--freijo)}
.phones small{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.builder{display:grid;gap:30px;padding:clamp(24px,3vw,44px);background:#fff;outline:1px solid var(--line-l);outline-offset:10px}
.builder legend{margin-bottom:14px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips label{position:relative;cursor:pointer}
.chips input{position:absolute;opacity:0;pointer-events:none}
.chips span{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid var(--line-l);font-size:12.5px;transition:background .3s,color .3s,border-color .3s}
.chips label:hover span{border-color:var(--ink)}
.chips input:checked+span{background:var(--ink);color:var(--stone);border-color:var(--ink)}
.chips input:focus-visible+span{outline:1.5px solid var(--freijo);outline-offset:3px}
.field{display:grid;gap:10px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.field input{height:52px;padding:0 16px;border:1px solid var(--line-l);background:var(--stone);color:var(--ink);font-size:15px;letter-spacing:0;text-transform:none;border-radius:0}
.field input:focus{outline:1.5px solid var(--freijo);outline-offset:0}
.btn-wide{justify-content:space-between;width:100%;background:var(--ink);outline-color:var(--line-l)}
.btn-wide:before{background:var(--freijo)}

/* Sticky CTA (mobile) */
.sticky-cta{display:none}

/* Footer */
.footer{padding:80px var(--gutter) 26px;background:var(--obsidian);border-top:1px solid var(--line-d);overflow:hidden}
.footer-top{display:grid;grid-template-columns:auto 1fr auto;gap:40px 70px;align-items:start;font-size:13px;color:var(--muted-d)}
.footer-logo{width:150px;height:auto;object-fit:contain}
.footer address{font-style:normal}
.footer address a,.footer-links a{color:var(--stone);transition:color .3s}
.footer address a:hover,.footer-links a:hover{color:var(--freijo-l)}
.footer-links{display:grid;gap:4px;text-align:right}
.footer-word{margin:70px 0 24px;font-size:clamp(54px,13.4vw,240px);line-height:.85;letter-spacing:-.08em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px rgba(243,239,234,.22);text-align:center;user-select:none}
.colophon{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:20px;border-top:1px solid var(--line-d);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-d)}

/* Dialogs */
dialog{border:0;padding:0;background:transparent;color:var(--stone);max-width:none;max-height:none}
dialog::backdrop{background:rgba(12,11,10,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lightbox[open]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:40px;align-items:center;width:100vw;height:100dvh;margin:0;padding:80px var(--gutter) 40px;overflow-y:auto;overscroll-behavior:contain}
.lb-media{position:relative;height:calc(100dvh - 160px);display:grid}
.lb-media img{object-fit:contain;height:100%;min-height:0}
.lb-nav{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:14px;font-size:12px;letter-spacing:.14em}
.lb-nav button{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--line-d);font-size:16px;transition:border-color .3s}
.lb-nav button:hover{border-color:var(--freijo-l)}
.lb-side{display:grid;gap:18px;align-content:center}
.lb-side h3{font-size:clamp(28px,2.6vw,40px)}
.lb-side p{color:var(--muted-d);font-size:14px}
.lb-thumbs{display:flex;flex-wrap:wrap;gap:8px}
.lb-thumbs button{width:58px;height:58px;opacity:.45;outline:1px solid transparent;outline-offset:2px;transition:opacity .3s}
.lb-thumbs button.on{opacity:1;outline-color:var(--freijo-l)}
.player[open]{display:grid;place-items:center;width:100vw;height:100dvh;margin:0;overflow-y:auto;overscroll-behavior:contain}
.player-shell{display:grid;grid-template-columns:auto minmax(0,340px);gap:40px;align-items:center;padding:20px}
.player-shell video{width:auto;height:min(82dvh,820px);aspect-ratio:9/16;object-fit:contain;background:#000;outline:1px solid var(--line-d);outline-offset:10px}
.player-side{display:grid;gap:18px;justify-items:start}
.player-side h3{font-size:clamp(28px,2.6vw,40px)}
.player-side p{color:var(--muted-d);font-size:14px}
.dialog-close{position:fixed;top:20px;right:var(--gutter);z-index:5;height:44px;padding:0 18px;border:1px solid var(--line-d);background:rgba(18,17,16,.6);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.dialog-close:hover{border-color:var(--freijo-l)}

/* Responsive */
@media (max-width:1100px){
  .nav-links{gap:20px}
  .tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .reel:nth-child(even){margin-top:0}
  .reel:nth-child(3),.reel:nth-child(4){margin-top:0}
}
@media (max-width:860px){
  body{font-size:14.5px}
  .nav{padding:12px var(--gutter)}
  .nav-links,.nav-cta{display:none}
  .nav-logo{width:80px}
  .menu-toggle{display:inline-flex}
  .menu-open .nav{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}

  .hero-pin{min-height:0}
  .hero-copy{top:88px;transform:none;width:auto;right:var(--gutter)}
  .tag{font-size:9.5px;letter-spacing:.2em}
  .hero-title{margin-top:16px;font-size:clamp(44px,13.2vw,72px)}
  .hero-lead{margin-top:16px;font-size:13.5px;line-height:1.6}
  .hero-actions{margin-top:20px;gap:6px 22px}
  .hero-actions .btn{height:54px}
  .hero-window{--w:auto;left:var(--gutter);right:auto;width:calc(100% - var(--gutter) * 2);top:auto;bottom:62px;height:30svh}
  .dim-y{display:none}
  .dim-x{top:-26px}
  .window-caption{bottom:-28px;font-size:10px}
  .hero-scroll{display:none}

  .facts{grid-template-columns:1fr 1fr}
  .facts div{padding:22px 14px 22px 0!important;border-right:0;border-bottom:1px solid var(--line-l)}
  .facts div:nth-child(odd){border-right:1px solid var(--line-l)}
  .facts div:nth-child(even){padding-left:16px!important}

  .projects-head{grid-template-columns:1fr}
  .project,.project:nth-child(3n+1){width:78vw;min-width:0}
  .project-img,.project:nth-child(3n+1) .project-img{aspect-ratio:4/5}
  .project-end{width:64vw!important}

  .tour-head{grid-template-columns:1fr}
  .tour-grid{display:flex;gap:16px;margin:50px calc(var(--gutter) * -1) 0;padding:0 var(--gutter);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
  .tour-grid::-webkit-scrollbar{display:none}
  .reel{flex:0 0 74vw;scroll-snap-align:center;margin-top:0!important}
  .tour-grid.is-track{overflow:visible;scroll-snap-type:none}
  .tour-grid.is-track .reel{opacity:.4;transform:scale(.9);transition:opacity .6s var(--ease),transform .8s var(--ease)}
  .tour-grid.is-track .reel.is-active{opacity:1;transform:none}
  .is-track+.tour-progress{display:flex;gap:6px;justify-content:center;margin-top:24px}
  .tour-progress i{width:22px;height:2px;background:var(--line-d);transition:width .5s var(--ease),background .4s}
  .tour-progress i.on{width:40px;background:var(--freijo-l)}

  .rooms-body{grid-template-columns:1fr;margin-top:40px}
  .rooms-stage{display:none}
  .room{min-height:0;opacity:1;padding:34px 0}
  .room img{display:block;order:-1;width:100%;aspect-ratio:4/3;height:auto;margin-bottom:22px}
  .room h3{margin-top:10px}

  .factory{grid-template-columns:1fr}
  .factory-photos{min-height:0;height:118vw;margin-bottom:50px}
  .fp-a{width:64%}
  .fp-b{width:50%}
  .steps{padding-left:26px}
  .step{grid-template-columns:40px 1fr;padding:24px 0}

  .quotes{grid-template-columns:1fr;gap:50px}
  .partners{flex-direction:column;align-items:flex-start;gap:16px}

  .quote-cta{grid-template-columns:1fr}
  .builder{outline-offset:6px}

  .footer-top{grid-template-columns:1fr}
  .footer-links{text-align:left}
  .footer-word{font-size:15vw;margin-top:50px}

  .sticky-cta{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:14px;height:54px;padding:0 24px;background:var(--freijo);color:#fff;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;outline:1px solid rgba(217,166,121,.55);outline-offset:4px;box-shadow:0 18px 40px -12px rgba(0,0,0,.7);transform:translate(-50%,170%);transition:transform .7s var(--ease);white-space:nowrap}
  .sticky-cta i{display:inline-flex;font-style:normal;font-size:15px}
  .show-cta .sticky-cta{transform:translate(-50%,0)}
  .menu-open .sticky-cta,.modal-open .sticky-cta{transform:translate(-50%,170%)}

  .lightbox[open]{grid-template-columns:1fr;gap:18px;padding:70px 16px 30px;align-content:start}
  .lb-media{height:58dvh}
  .player-shell{grid-template-columns:1fr;gap:18px;justify-items:center;padding:70px 16px 20px}
  .player-shell video{height:min(62dvh,720px);max-width:100%}
  .player-side{justify-items:center;text-align:center}
}
@media (max-height:700px) and (max-width:860px){
  .hero-lead{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .ticker-track{animation:none}
}
