:root{
  --coal:#0d0d0c; --coal-2:#141412; --panel:#1b1b18;
  --brass:#c8a678; --brass-soft:rgba(200,166,120,.35); --ivory:#f1ede4;
  --text:#f1ede4; --text-2:#a49d8e; --text-3:#6b6558; --line:#26251f;
  --serif:'Bodoni Moda',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
body{
  font-family:var(--sans);background:var(--coal);color:var(--text);
  font-size:16px;line-height:1.65;font-weight:300;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
::selection{background:var(--brass-soft)}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block;max-width:100%}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:100;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
.nav.scrolled{background:rgba(13,13,12,.9);backdrop-filter:blur(14px);border-color:var(--line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:78px}
.brand{font-family:var(--serif);font-size:22px;letter-spacing:.4em;text-transform:uppercase}
.brand i{font-style:normal;color:var(--brass)}
.nav-links{display:flex;gap:38px}
.nav-links a{font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--text-2);transition:color .3s}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--brass)}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:50px;
  padding:15px 34px;font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;
  transition:all .3s;
}
.btn:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.btn-brass{background:linear-gradient(100deg,#d8b88c,#a8875c);color:#181208}
.btn-brass:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(200,166,120,.3)}
.btn-line{border:1px solid rgba(241,237,228,.3);color:var(--ivory)}
.btn-line:hover{border-color:var(--brass);color:var(--brass)}
.menu-btn{display:none;width:44px;height:44px;align-items:center;justify-content:center}

/* configurator hero */
.config{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:1.15fr .85fr;padding-top:78px}
.stage{position:relative;background:radial-gradient(ellipse at 50% 42%,#232219,var(--coal) 75%)}
#gl{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}
#gl:active{cursor:grabbing}
.no-webgl-msg{position:absolute;inset:0;display:none;place-items:center;color:var(--text-2);padding:40px;text-align:center}
.no-webgl .no-webgl-msg{display:grid}
.no-webgl #gl{display:none}
.stage-hint{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);
  font-size:10.5px;letter-spacing:.4em;text-transform:uppercase;color:var(--text-3);white-space:nowrap;
}
.stage-badge{
  position:absolute;top:26px;left:26px;font-size:11px;letter-spacing:.3em;text-transform:uppercase;
  color:var(--brass);border:1px solid var(--brass-soft);padding:9px 18px;background:rgba(13,13,12,.5);
}
.conf-panel{
  padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;justify-content:center;gap:26px;
  border-left:1px solid var(--line);background:var(--coal-2);
}
.conf-kicker{font-size:11px;letter-spacing:.44em;text-transform:uppercase;color:var(--brass)}
.conf-panel h1{font-size:clamp(34px,3.6vw,52px)}
.conf-panel .lead{color:var(--text-2);font-size:15px;max-width:420px}
.opt-group .og-label{
  display:flex;justify-content:space-between;font-size:11.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--text-3);margin-bottom:12px;
}
.og-label output{color:var(--ivory);letter-spacing:.05em}
.opts{display:flex;gap:12px;flex-wrap:wrap}
.opt{
  display:flex;align-items:center;gap:10px;border:1px solid var(--line);padding:11px 16px;
  font-size:13.5px;color:var(--text-2);transition:all .25s;min-height:46px;background:var(--coal);
}
.opt:hover{border-color:var(--brass-soft);color:var(--ivory)}
.opt.on{border-color:var(--brass);color:var(--ivory);background:var(--panel)}
.opt .sw{width:20px;height:20px;border-radius:50%;border:1px solid rgba(241,237,228,.25);flex:none}
.conf-price{display:flex;align-items:baseline;gap:18px;border-top:1px solid var(--line);padding-top:24px}
.conf-price .p-val{font-family:var(--serif);font-size:clamp(30px,3vw,42px);color:var(--brass);font-variant-numeric:tabular-nums}
.conf-price .p-note{font-size:12px;color:var(--text-3);letter-spacing:.1em;text-transform:uppercase}
.conf-actions{display:flex;gap:14px;flex-wrap:wrap}

/* craft */
.section{padding:130px 0}
.kicker{font-size:11px;letter-spacing:.44em;text-transform:uppercase;color:var(--brass);margin-bottom:22px;display:block}
h2{font-size:clamp(30px,4.2vw,52px);margin-bottom:20px}
h2 em{font-style:italic;color:var(--brass)}
.craft-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:56px}
.craft{background:var(--coal);padding:48px 38px;transition:background .4s}
.craft:hover{background:var(--coal-2)}
.craft .c-num{font-family:var(--serif);font-style:italic;font-size:30px;color:var(--brass);opacity:.7}
.craft h3{font-size:20px;margin:20px 0 12px}
.craft p{font-size:14px;color:var(--text-2)}

/* specs */
.specs{background:var(--coal-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.spec-rows{max-width:720px;margin:48px auto 0}
.srow{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line);font-size:15px}
.srow:last-child{border-bottom:none}
.srow b{font-family:var(--serif);color:var(--brass);font-weight:500;text-align:right}

/* cta */
.cta{text-align:center}
.cta p{color:var(--text-2);max-width:440px;margin:0 auto 40px}

/* footer */
footer{border-top:1px solid var(--line);padding:56px 0 44px}
.foot{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap}
.foot-links{display:flex;gap:32px;flex-wrap:wrap}
.foot-links a{font-size:11.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--text-2)}
.foot-links a:hover{color:var(--brass)}
.foot-bottom{margin-top:40px;font-size:12.5px;color:var(--text-3);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}

/* view transitions */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .config{view-transition-name:page-hero}
}

@media (max-width:1020px){
  .config{grid-template-columns:1fr;grid-template-rows:58vh auto}
  .conf-panel{border-left:none;border-top:1px solid var(--line)}
  .craft-grid{grid-template-columns:1fr}
  .nav-links{display:none}
  .nav-links.open{
    display:flex;flex-direction:column;position:absolute;top:78px;left:0;right:0;
    background:rgba(13,13,12,.97);padding:28px 24px;gap:22px;border-bottom:1px solid var(--line);
  }
  .menu-btn{display:flex}
  .nav .btn{display:none}
}
@media (max-width:560px){.section{padding:96px 0}.config{grid-template-rows:48vh auto}}
