/* Sahasritha Home Services
   Layout: Apple-style product page. Dark "stage" hero with a live pendant light → Interiors (moodboard,
   45-day timeline, finish configurator) → Electrical on stage (interactive board, safety check, prices)
   → projects → booking. Brass is the only accent. Motion is layered on top; the resting state is always complete. */

:root{
  --bg:#FBFAF7; --bg-alt:#F3F0EA; --surface:#FFFFFF; --ink:#1D1B18; --muted:#6E6A63; --line:#E5E0D7;
  --brass:#C9A24F; --brass-text:#8A6826; --accent-ink:#1A1610; --error:#B3261E;
  --gold-1:#C9A24F; --gold-2:#8A6826; --gold-3:#B8913A;
  --stage:#0C0B0A; --stage-2:#171512; --stage-3:#211E1A; --stage-ink:#F5F1E8; --stage-muted:#A39C90; --stage-line:#2B2722;
  --led:#30D158; --warn:#FF6B5B;
  --font-sans:"Geist",-apple-system,"SF Pro Display","Segoe UI",system-ui,sans-serif;
  --font-mono:"Geist Mono",ui-monospace,"SF Mono",Consolas,monospace;
  --font-serif:"Instrument Serif","Iowan Old Style",Georgia,serif;
  --r-lg:28px; --r-md:18px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#0F0E0D; --bg-alt:#161412; --surface:#1C1A17; --ink:#F2EEE6; --muted:#A39C90; --line:#2C2823;
    --brass:#D2AE63; --brass-text:#E0C182; --error:#FF8A80;
    --gold-1:#F3DFAE; --gold-2:#C9A24F; --gold-3:#E6CB8E;
    --stage:#060505; --stage-2:#121110; --stage-3:#1C1A17; --stage-line:#28241F;
    color-scheme:dark;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.03em;line-height:1.04;text-wrap:balance}
p{margin:0}
a{color:inherit}
button{font-family:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:8px}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}

.skip-link{position:absolute;left:16px;top:-60px;z-index:100;background:var(--brass);color:var(--accent-ink);padding:10px 16px;border-radius:10px;text-decoration:none;font-weight:600}
.skip-link:focus{top:12px}
.wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}
.center{text-align:center}
.center .sub{margin-inline:auto}
.kicker{font-size:1.05rem;font-weight:600;color:var(--brass-text);letter-spacing:-.01em;margin-bottom:14px}
h2{font-size:clamp(2.5rem,6vw,4.75rem)}
.sub{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--muted);max-width:44ch;margin-top:22px;line-height:1.45;letter-spacing:-.01em}
.serif{font-family:var(--font-serif);font-style:italic;font-weight:400;letter-spacing:-.01em}
.gold{background-image:linear-gradient(100deg,var(--gold-1) 0%,var(--gold-2) 30%,var(--gold-2) 38%,#FFF4D6 46%,var(--gold-3) 54%,var(--gold-2) 70%,var(--gold-1) 100%);background-size:250% 100%;background-position:0 0;-webkit-background-clip:text;background-clip:text;color:transparent;padding-right:.06em}
.sec{padding-block:clamp(96px,13vw,168px)}

.stage{background:var(--stage);color:var(--stage-ink);--ink:var(--stage-ink);--muted:var(--stage-muted);--line:var(--stage-line);--brass-text:#E0C182;--gold-1:#F6E4B8;--gold-2:#C9A24F;--gold-3:#EBD29A}

.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:500 1rem/1 var(--font-sans);padding:15px 26px;border-radius:999px;border:0;cursor:pointer;text-decoration:none;translate:var(--tx,0px) var(--ty,0px);transition:transform .2s,filter .2s,background .2s,translate .35s cubic-bezier(.2,.7,.2,1)}
.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn[disabled]{opacity:.7;cursor:progress;transform:none}
.btn-brass{background:linear-gradient(180deg,#D8B464,#B8913A);color:var(--accent-ink);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 24px -10px rgba(184,145,58,.6)}
.btn-brass::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.5) 50%,transparent 70%);translate:-120% 0;transition:translate .9s cubic-bezier(.2,.7,.2,1)}
.btn-brass:hover::after{translate:120% 0}
.btn-quiet{background:var(--bg-alt);color:var(--ink)}
.link{color:var(--brass-text);text-decoration:none;font-weight:500;font-size:1.05rem}
.link:hover{text-decoration:underline;text-underline-offset:4px}

/* Global nav */
.gnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--stage) 78%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);color:var(--stage-ink);border-bottom:1px solid color-mix(in srgb,var(--stage-line) 70%,transparent)}
.gnav .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;height:56px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;letter-spacing:-.02em;font-size:1.05rem}
.brand svg{width:22px;height:22px;color:var(--brass)}
.brand small{font-weight:400;color:var(--stage-muted);font-size:.85rem;letter-spacing:0}
.gnav nav{display:flex;gap:30px;font-size:.88rem}
.gnav nav a{position:relative;text-decoration:none;color:color-mix(in srgb,var(--stage-ink) 80%,transparent);transition:color .2s}
.gnav nav a:hover,.gnav nav a.active{color:var(--stage-ink)}
.gnav nav a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:var(--brass);transform:scaleX(0);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.gnav nav a.active::after{transform:scaleX(1)}
.gnav .btn{padding:9px 16px;font-size:.85rem}
.nav-progress{position:absolute;left:0;bottom:-1px;width:100%;height:2px;background:linear-gradient(90deg,var(--gold-2),var(--brass),#F6E4B8);transform-origin:left;transform:scaleX(var(--page,0))}
@media (max-width:820px){.gnav nav{display:none}.brand small{display:none}}

/* Hero */
.hero{position:relative;overflow:hidden;padding-top:clamp(64px,9vw,112px)}
.hero::before{content:"";position:absolute;left:50%;top:38%;width:1100px;height:900px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(255,206,130,.16),transparent 70%);pointer-events:none;transition:opacity .8s}
.hero.off::before{opacity:0}
.hero-copy{position:relative;text-align:center}
.hero h1{font-size:clamp(3rem,8.4vw,7rem);letter-spacing:-.045em;line-height:.98}
.hero h1 .glowword{filter:drop-shadow(0 0 28px rgba(255,200,120,.35));transition:filter .8s}
.hero.off h1 .glowword{filter:none}
.hero .sub{margin:26px auto 0;color:var(--stage-muted)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;justify-content:center;margin-top:36px}
.scene{position:relative;max-width:1200px;margin:clamp(8px,2vw,24px) auto 0}
.scene svg{display:block;width:100%;height:auto}
.lamp{transform-box:view-box;transform-origin:600px 0;animation:sway 7s ease-in-out infinite}
@keyframes sway{0%,100%{transform:rotate(-.9deg)}50%{transform:rotate(.9deg)}}
.cone,.halo,.lit,.rugglow{transition:opacity .7s}
.bulb{transition:fill .5s}
.scene.off .cone,.scene.off .halo,.scene.off .lit,.scene.off .rugglow{opacity:0}
.scene.off .bulb{fill:#4A4033}
.scene.on-anim .cone{animation:flick .9s ease}
@keyframes flick{0%{opacity:0}18%{opacity:.8}26%{opacity:.15}40%{opacity:1}52%{opacity:.6}100%{opacity:1}}
.switch{position:absolute;left:84.6%;top:49%;width:clamp(38px,5vw,62px);aspect-ratio:1;border-radius:10px;border:0;padding:0;background:linear-gradient(160deg,#F4F0E8,#D9D2C5);box-shadow:0 1px 0 rgba(255,255,255,.6) inset,0 6px 16px -4px rgba(0,0,0,.6);cursor:pointer;display:grid;place-items:center}
.switch .rocker{width:46%;height:62%;border-radius:5px;background:linear-gradient(180deg,#FFFFFF 0 48%,#E3DCCF 52%);box-shadow:0 1px 2px rgba(0,0,0,.25)}
.switch[aria-pressed="false"] .rocker{background:linear-gradient(0deg,#FFFFFF 0 48%,#E3DCCF 52%)}
.switch .pip{position:absolute;top:12%;right:14%;width:5px;height:5px;border-radius:50%;background:#E8A23A;box-shadow:0 0 6px #E8A23A;transition:opacity .3s}
.switch[aria-pressed="false"] .pip{opacity:.25}
.switch-hint{position:absolute;left:84.6%;top:calc(49% + clamp(46px,6vw,74px));transform:translateX(-12%);font-family:var(--font-mono);font-size:.7rem;color:var(--stage-muted);white-space:nowrap}
.switch-hint::before{content:"↑ ";color:var(--brass)}
@media (max-width:640px){.switch-hint{left:auto;right:4px;transform:none}}
.hero-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-top:1px solid var(--stage-line);padding-block:28px 40px;margin-top:-1px}
.hero-strip div{display:grid;gap:4px}
.hero-strip b{font-size:1.5rem;font-weight:600;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.hero-strip span{color:var(--stage-muted);font-size:.88rem}
@media (max-width:720px){.hero-strip{grid-template-columns:repeat(2,1fr);row-gap:24px}}

/* Interiors */
.seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--bg-alt);border:1px solid var(--line);flex-wrap:wrap;justify-content:center}
.seg button{border:0;background:transparent;color:var(--muted);font-size:.95rem;font-weight:500;padding:10px 20px;border-radius:999px;cursor:pointer;transition:background .25s,color .25s}
.seg button[aria-selected="true"],.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.08),0 4px 12px -6px rgba(0,0,0,.15)}
.seg-row{display:flex;justify-content:center;margin:56px 0 28px}
.seg-row-tight{margin:28px 0 0}
.mood{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:clamp(150px,19vw,240px);gap:14px}
.tile{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-alt)}
.tile:first-child{grid-column:span 2;grid-row:span 2}
.mat{position:absolute;inset:0;scale:1.1;clip-path:inset(0 0 0 0);transition-property:opacity,scale,clip-path;transition-duration:.45s,1.2s,.42s;transition-timing-function:ease,cubic-bezier(.2,.7,.2,1),cubic-bezier(.7,0,.2,1);transition-delay:0s,0s,calc(var(--i,0) * 45ms)}
.tile:hover .mat{scale:1.16}
.mood.wipe .mat{clip-path:inset(0 0 100% 0)}
.chip{position:absolute;left:14px;bottom:14px;display:flex;flex-direction:column;gap:2px;width:max-content;max-width:calc(100% - 28px);padding:9px 13px;border-radius:14px;background:rgba(18,16,13,.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;font-size:.88rem;font-weight:500;transition:opacity .4s,translate .4s}
.chip b{font-weight:500}
.chip span{font-family:var(--font-mono);font-size:.68rem;opacity:.75;font-weight:400}
.chip .big-title{display:block;font-family:var(--font-sans);font-size:clamp(1.3rem,2.4vw,1.9rem);font-weight:600;letter-spacing:-.03em;margin-bottom:4px;opacity:1}
.mood.wipe .chip{opacity:0;translate:0 10px}
.tile:first-child .chip{left:22px;bottom:22px;padding:14px 18px}
.room-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:28px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.room-specs div{display:grid;gap:4px;min-width:0}
.room-specs dt{font-family:var(--font-mono);font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.room-specs dd{margin:0;font-weight:500;font-size:1.05rem}
@media (max-width:760px){.mood{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px}.room-specs{grid-template-columns:1fr;gap:14px}}

/* Materials (image stand-ins until real photos are added) */
.m-walnut{background:linear-gradient(105deg,rgba(255,255,255,.07),transparent 45%,rgba(0,0,0,.28)),repeating-linear-gradient(88deg,#4A2F1C 0 7px,#5C3B23 7px 12px,#3F2817 12px 21px,#6A4429 21px 24px,#52341F 24px 33px)}
.m-oak{background:linear-gradient(105deg,rgba(255,255,255,.12),transparent 50%,rgba(0,0,0,.12)),repeating-linear-gradient(91deg,#C8A679 0 9px,#B8955F 9px 13px,#D6B88A 13px 23px,#BE9B69 23px 26px)}
.m-teak{background:linear-gradient(105deg,rgba(255,255,255,.08),transparent 50%,rgba(0,0,0,.2)),repeating-linear-gradient(89deg,#8A5A2B 0 8px,#A06A35 8px 12px,#7A4E24 12px 20px,#95622F 20px 25px)}
.m-terrazzo{background:radial-gradient(circle at 20% 30%,#9C8A74 0 3px,transparent 4px),radial-gradient(circle at 70% 60%,#7E7266 0 5px,transparent 6px),radial-gradient(circle at 40% 80%,#C2A880 0 2px,transparent 3px),radial-gradient(circle at 85% 20%,#B8913A 0 3px,transparent 4px),radial-gradient(circle at 55% 35%,#D9CDBD 0 4px,transparent 5px),#ECE6DC;background-size:62px 62px,84px 84px,46px 46px,72px 72px,58px 58px,auto}
.m-marble{background:linear-gradient(118deg,transparent 0 38%,rgba(130,122,112,.45) 38.6%,transparent 40.5%),linear-gradient(64deg,transparent 0 62%,rgba(150,140,128,.35) 62.4%,transparent 63.6%),linear-gradient(140deg,transparent 0 71%,rgba(184,145,58,.4) 71.3%,transparent 72.4%),linear-gradient(20deg,transparent 0 30%,rgba(140,130,120,.22) 30.3%,transparent 31.5%),radial-gradient(circle at 30% 20%,#FFFFFF,#E9E6E0 75%)}
.m-fluted{background:repeating-linear-gradient(90deg,rgba(255,255,255,.55) 0 1px,rgba(255,255,255,.1) 3px 11px,rgba(0,0,0,.1) 13px 15px),linear-gradient(160deg,#D3D9D5,#A3B2AC 55%,#7F918B)}
.m-brass{background:repeating-linear-gradient(90deg,rgba(255,255,255,.09) 0 1px,transparent 1px 3px),linear-gradient(120deg,#7E5E20,#E9CF96 34%,#B8913A 54%,#F2DDA8 70%,#8A6826)}
.m-linen{background:repeating-linear-gradient(0deg,rgba(60,40,20,.05) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(60,40,20,.05) 0 1px,transparent 1px 3px),linear-gradient(160deg,#EDE5D8,#DCD0BE)}
.m-sage{background:radial-gradient(circle at 25% 25%,rgba(255,255,255,.18),transparent 55%),linear-gradient(160deg,#A6B19B,#7C8A73)}
.m-charcoal{background:radial-gradient(circle at 30% 18%,#3E3C39,#1D1C1B 72%)}
.m-cane{background:repeating-linear-gradient(45deg,transparent 0 6px,#B98F5A 6px 8px),repeating-linear-gradient(-45deg,transparent 0 6px,#B98F5A 6px 8px),repeating-linear-gradient(0deg,transparent 0 9px,#A57A45 9px 11px),#EBDCBF}
.m-plaster{background:radial-gradient(ellipse at 20% 30%,rgba(255,255,255,.5),transparent 45%),radial-gradient(ellipse at 75% 70%,rgba(160,140,115,.18),transparent 50%),#E9E1D4}
.m-circuit{background:linear-gradient(90deg,transparent 0 49.6%,rgba(201,162,79,.55) 49.6% 50.4%,transparent 50.4%) 0 0/64px 64px,linear-gradient(0deg,transparent 0 49.6%,rgba(201,162,79,.35) 49.6% 50.4%,transparent 50.4%) 32px 0/64px 96px,radial-gradient(circle,rgba(201,162,79,.9) 0 3px,transparent 4px) 0 0/64px 64px,radial-gradient(circle at 50% 40%,#2A2622,#11100E 75%)}
.m-cove{background:radial-gradient(ellipse 60% 18% at 50% 0%,rgba(255,206,130,.75),transparent),radial-gradient(circle at 20% 70%,rgba(255,206,130,.35),transparent 18%),radial-gradient(circle at 80% 70%,rgba(255,206,130,.35),transparent 18%),linear-gradient(180deg,#2B2520,#141210)}

/* Timeline */
.timeline{margin-top:clamp(80px,10vw,128px);display:grid;gap:40px}
.timeline-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px}
.timeline-head h3{font-size:clamp(1.8rem,3.4vw,2.8rem);max-width:16ch}
.timeline-head p{color:var(--muted);max-width:38ch}
.tl{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.tl::before{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:var(--line)}
.tl::after{content:"";position:absolute;left:0;right:0;top:7px;height:2px;background:linear-gradient(90deg,var(--gold-2),var(--brass) 60%,var(--gold-1));transform-origin:left;transform:scaleX(var(--p,1))}
.tl li{position:relative;z-index:1;padding-top:34px;padding-right:18px;display:grid;gap:6px;align-content:start}
.tl li::before{content:"";position:absolute;top:0;left:0;width:16px;height:16px;border-radius:50%;background:var(--bg);border:2px solid var(--brass);transition:background .4s,border-color .4s,box-shadow .4s}
.tl li:last-child::before{background:var(--brass)}
.tl li.lit::before{box-shadow:0 0 0 6px color-mix(in srgb,var(--brass) 18%,transparent)}
.tl .day{font-family:var(--font-mono);font-size:.76rem;color:var(--brass-text)}
.tl b{font-weight:600;font-size:1.05rem;letter-spacing:-.01em}
.tl span:last-child{color:var(--muted);font-size:.92rem}
@media (max-width:820px){
  .tl{grid-template-columns:1fr;gap:26px}
  .tl::before,.tl::after{left:7px;right:auto;top:0;bottom:0;width:2px;height:auto}
  .tl::after{transform-origin:top;transform:scaleY(var(--p,1))}
  .tl li{padding-top:0;padding-left:36px}
}

/* Finish configurator */
.config{margin-top:clamp(80px,10vw,128px)}
.config-head{text-align:center}
.config-head h3{font-size:clamp(2rem,4.4vw,3.4rem)}
.config-head p{color:var(--muted);margin-top:14px}
.plans-scroll{overflow-x:auto;margin-top:40px;padding:14px 4px 6px;scroll-snap-type:x mandatory}
.plans{display:grid;grid-template-columns:repeat(3,minmax(250px,1fr));gap:18px}
.plan{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:30px 26px;display:flex;flex-direction:column;gap:20px;scroll-snap-align:start;transform:perspective(1000px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .3s}
.plan.tilting{transition:transform .1s linear}
.plan::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),color-mix(in srgb,var(--brass) 14%,transparent),transparent 60%);opacity:0;transition:opacity .3s}
.plan:hover::after{opacity:1}
.plan.feat{border:1.5px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,conic-gradient(from var(--a),color-mix(in srgb,var(--brass) 30%,transparent),var(--brass) 10%,#F6E4B8 16%,var(--brass) 22%,color-mix(in srgb,var(--brass) 30%,transparent) 36%) border-box;box-shadow:0 30px 60px -36px rgba(184,145,58,.55);animation:spin 6s linear infinite}
.plan .badge{position:absolute;z-index:1;top:-12px;left:26px;background:var(--brass);color:var(--accent-ink);font-size:.72rem;font-weight:600;padding:5px 11px;border-radius:999px}
.plan .swatch{height:84px;border-radius:14px}
.plan h4{font-size:1.5rem}
.price{display:grid;gap:2px}
.price b{font-size:2.3rem;font-weight:600;letter-spacing:-.04em;font-variant-numeric:tabular-nums;line-height:1}
.price span{color:var(--muted);font-size:.88rem}
.spec{margin:0;display:grid}
.spec div{display:grid;gap:2px;padding-block:11px;border-top:1px solid var(--line)}
.spec dt{font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.spec dd{margin:0;font-size:.95rem}
.plan .btn{margin-top:auto;width:100%}
.fine{font-size:.8rem;color:var(--muted);text-align:center;margin-top:18px}

/* Electrical */
.elec-intro{text-align:center}
.elec-intro .sub{color:var(--stage-muted)}
.wire{display:block;width:100%;max-width:880px;height:auto;margin:0 auto 26px;overflow:visible}
.wire path{fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.wire .track{stroke:var(--stage-line)}
.wire .live{stroke:var(--brass)}
.wire .spark{fill:#FFE7BF;filter:drop-shadow(0 0 6px #FFC970);opacity:0;transition:opacity .3s}
.wire .node{fill:var(--stage-2);stroke:var(--brass);stroke-width:1.5;transition:fill .5s,filter .5s}
.wire.done .node{fill:#FFE7BF;filter:drop-shadow(0 0 12px #FFC970)}
.board-wrap{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,4vw,48px);margin-top:clamp(56px,7vw,88px);align-items:start}
.board-wrap>*{min-width:0}
.board{background:linear-gradient(180deg,var(--stage-3),var(--stage-2));border:1px solid var(--stage-line);border-radius:var(--r-lg);padding:clamp(18px,3vw,28px)}
.readout{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;align-items:center;background:#050505;border:1px solid #2A2722;border-radius:12px;padding:12px 16px;font-family:var(--font-mono);font-size:.8rem;color:#CFC6B5}
.readout .val{color:#F3DFAE;font-variant-numeric:tabular-nums}
.readout .state{display:inline-flex;align-items:center;gap:8px}
.readout .dot{width:8px;height:8px;border-radius:50%;background:var(--led);box-shadow:0 0 8px var(--led)}
.readout.tripped .dot{background:var(--warn);box-shadow:0 0 8px var(--warn)}
.din{position:relative;overflow:hidden;margin-top:18px;padding:18px 14px;border-radius:16px;background:repeating-linear-gradient(90deg,#2A2621 0 2px,#24211D 2px 6px);border:1px solid #34302A;display:flex;flex-wrap:wrap;gap:6px;justify-content:center;min-height:180px}
.din::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 40%,rgba(255,214,150,.14) 50%,transparent 60%);background-size:250% 100%;animation:current 3.2s linear infinite;opacity:0;transition:opacity .5s}
.din.live::after{opacity:1}
.mod{width:62px;display:grid;justify-items:center;gap:8px;background:linear-gradient(180deg,#F3F1EC,#DCD8CF);border-radius:6px;padding:10px 4px 9px;color:#2A2622;box-shadow:inset 0 -2px 0 rgba(0,0,0,.08);transition:opacity .35s}
.mod.wide{width:96px}
.mod.dead{opacity:.55}
.mod .rating{font-family:var(--font-mono);font-size:.66rem;font-weight:500}
.mod .name{font-size:.66rem;text-align:center;line-height:1.15;min-height:2.3em;font-weight:500}
.lever{width:26px;height:46px;border-radius:5px;border:0;padding:0;cursor:pointer;background:#1F1C19;position:relative;box-shadow:inset 0 2px 4px rgba(0,0,0,.5)}
.lever::after{content:"";position:absolute;left:3px;right:3px;height:20px;border-radius:3px;background:linear-gradient(180deg,#3A3631,#26231F);top:3px;box-shadow:0 1px 0 rgba(255,255,255,.12) inset;transition:top .4s cubic-bezier(.34,1.56,.64,1)}
.lever[aria-pressed="false"]::after{top:23px}
.mod.main .lever::after{background:linear-gradient(180deg,#D9443A,#A82E27)}
.flag{width:22px;height:6px;border-radius:2px;background:#B9B4AA;transition:background .25s,box-shadow .25s}
.flag.on{background:var(--led);box-shadow:0 0 8px color-mix(in srgb,var(--led) 70%,transparent)}
.test{font:600 .6rem/1 var(--font-mono);border:1px solid #9C968B;background:#ECE9E3;color:#2A2622;border-radius:4px;padding:4px 6px;cursor:pointer}
.board-note{margin-top:14px;font-size:.84rem;color:var(--stage-muted)}
.check{background:var(--stage-2);border:1px solid var(--stage-line);border-radius:var(--r-lg);padding:clamp(22px,3vw,30px)}
.check h3{font-size:1.6rem}
.check>p{color:var(--stage-muted);margin-top:8px;font-size:.95rem}
.check ol{list-style:none;margin:18px 0 0;padding:0;display:grid;counter-reset:c}
.check li{counter-increment:c;display:grid;grid-template-columns:30px 1fr;padding-block:9px;border-top:1px solid var(--stage-line);font-size:.92rem}
.check li::before{content:counter(c,decimal-leading-zero);font-family:var(--font-mono);font-size:.72rem;color:var(--brass);padding-top:3px}
@media (max-width:900px){.board-wrap{grid-template-columns:1fr}}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(56px,7vw,80px)}
.fact{background:var(--stage-2);border:1px solid var(--stage-line);border-radius:var(--r-md);padding:24px;display:grid;gap:6px;align-content:start;transition:border-color .3s,translate .4s cubic-bezier(.2,.7,.2,1)}
.fact:hover{border-color:color-mix(in srgb,var(--brass) 55%,transparent);translate:0 -3px}
.fact b{font-size:2.2rem;font-weight:600;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.fact span{color:var(--stage-muted);font-size:.92rem}
@media (max-width:820px){.facts{grid-template-columns:repeat(2,1fr)}}
.prices{margin-top:clamp(56px,7vw,80px);display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(24px,4vw,56px);align-items:start}
.prices>*{min-width:0}
.prices h3{font-size:clamp(1.8rem,3.2vw,2.6rem)}
.prices p{color:var(--stage-muted);margin-top:12px}
.plist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:40px}
.plist li{display:flex;align-items:baseline;gap:10px;padding-block:14px;border-top:1px solid var(--stage-line);transition:translate .3s cubic-bezier(.2,.7,.2,1)}
.plist li:hover{translate:5px 0}
.plist li span{flex:none;max-width:70%}
.plist li i{flex:1;border-bottom:1px dotted var(--stage-line);transform:translateY(-4px)}
.plist li b{font-family:var(--font-mono);font-weight:500;font-size:.88rem;color:#F3DFAE;white-space:nowrap;transition:text-shadow .3s}
.plist li:hover b{text-shadow:0 0 14px rgba(243,223,174,.65)}
@media (max-width:820px){.prices{grid-template-columns:1fr}}
@media (max-width:560px){.plist{grid-template-columns:1fr}}

/* Projects */
.proj-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:20px}
.proj-head h2{font-size:clamp(2.2rem,5vw,3.8rem)}
.arrows{display:flex;gap:10px}
.arrows button{width:44px;height:44px;border-radius:50%;border:0;background:var(--bg-alt);color:var(--ink);cursor:pointer;font-size:1.1rem;transition:background .2s}
.arrows button:hover{background:var(--line)}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(270px,32vw,380px);gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:40px;padding-block:8px 16px;scrollbar-width:none;cursor:grab}
.rail::-webkit-scrollbar{display:none}
.rail.dragging{cursor:grabbing;scroll-snap-type:none}
.rail.dragging .card{pointer-events:none}
.card{scroll-snap-align:start;background:var(--surface);border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column;transition:translate .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s}
.card:hover{translate:0 -6px;box-shadow:0 30px 60px -40px rgba(0,0,0,.45)}
.art{aspect-ratio:4/3.4;max-width:100%;position:relative;overflow:hidden}
.art>div,.art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1.2s cubic-bezier(.2,.7,.2,1)}
.art>div+div{clip-path:polygon(58% 0,100% 0,100% 100%,30% 100%)}
.card:hover .art>div,.card:hover .art>img{scale:1.07}
.art .tagline{position:absolute;left:14px;top:14px;font-family:var(--font-mono);font-size:.66rem;background:rgba(18,16,13,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fff;padding:5px 9px;border-radius:8px}
.card-body{padding:20px 22px 24px;display:grid;gap:6px}
.card-body h3{font-size:1.25rem;letter-spacing:-.02em}
.card-body p{font-family:var(--font-mono);font-size:.74rem;color:var(--muted)}

/* Review */
.quote-sec{background:var(--bg-alt)}
.big-quote{max-width:900px;margin-inline:auto;text-align:center}
.big-quote blockquote{margin:0;font-family:var(--font-serif);font-style:italic;font-size:clamp(1.9rem,4.4vw,3.4rem);line-height:1.15;letter-spacing:-.01em}
.big-quote figcaption{margin-top:26px;color:var(--muted);font-size:.95rem;display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.stars{color:var(--brass);letter-spacing:3px}

/* Booking */
.book{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.book>*{min-width:0}
.book h2{font-size:clamp(2.4rem,5.4vw,4.2rem)}
.contact{margin:32px 0 0;display:grid;gap:14px}
.contact div{display:grid;gap:2px}
.contact dt{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.contact dd{margin:0;font-size:1.15rem;font-weight:500}
.contact a{text-decoration:none}
.contact a:hover{color:var(--brass-text)}
.form{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(22px,3vw,34px);box-shadow:0 40px 80px -50px rgba(0,0,0,.35)}
.kind{border:0;padding:0;margin:0;min-width:0}
.kind legend{padding:0;margin-bottom:10px;font-size:.82rem;color:var(--muted);font-weight:500}
.choice{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.choice label{position:relative;display:grid;gap:4px;padding:16px;border:1.5px solid var(--line);border-radius:16px;cursor:pointer;transition:border-color .2s,background .2s}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice label:has(input:checked){border-color:var(--brass);background:color-mix(in srgb,var(--brass) 8%,transparent)}
.choice label:has(input:focus-visible){outline:2px solid var(--brass);outline-offset:2px}
.choice b{font-weight:600;font-size:.98rem}
.choice span{font-size:.82rem;color:var(--muted)}
.field{display:grid;gap:6px;margin-top:16px;align-content:start}
.field label{font-size:.82rem;color:var(--muted);font-weight:500}
.optional{font-weight:400;opacity:.75}
.field input,.field select,.field textarea{font:500 1rem/1.3 var(--font-sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px;width:100%}
.field textarea{resize:vertical;min-height:84px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brass);outline-offset:0;border-color:transparent}
.field [aria-invalid="true"]{border-color:var(--error)}
.field-error{color:var(--error);font-size:.82rem}
.field-error:empty{display:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row2>*{min-width:0}
.form .btn{width:100%;margin-top:22px;padding-block:17px}
.consent{margin-top:12px;font-size:.78rem;color:var(--muted);text-align:center}
.form-msg{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:.92rem;padding:14px;border-radius:12px;background:color-mix(in srgb,var(--brass) 12%,transparent)}
.form-msg.error{background:color-mix(in srgb,var(--error) 10%,transparent);color:var(--ink)}
.form-msg .wa{display:inline-block;margin-top:6px;font-weight:600;color:var(--brass-text)}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.tick{width:24px;height:24px;flex:none}
.tick circle,.tick path{fill:none;stroke:var(--brass-text);stroke-linecap:round;stroke-linejoin:round}
.tick circle{stroke-width:1.6;stroke-dasharray:63;stroke-dashoffset:63;animation:draw .6s forwards}
.tick path{stroke-width:2;stroke-dasharray:16;stroke-dashoffset:16;animation:draw .35s .45s forwards}
@media (prefers-reduced-motion: reduce){.tick circle,.tick path{stroke-dashoffset:0}}
@media (max-width:860px){.book{grid-template-columns:1fr}}
@media (max-width:440px){.choice,.row2{grid-template-columns:1fr}}

/* Simple pages */
.page{padding-block:clamp(72px,10vw,128px)}
.prose{max-width:760px}
.prose h1{font-size:clamp(2.4rem,5vw,3.6rem)}
.prose h2{font-size:1.4rem;margin-top:40px}
.prose p{margin-top:14px;color:var(--muted);line-height:1.65}
.prose .updated{font-family:var(--font-mono);font-size:.78rem}
.prose a{color:var(--brass-text)}
.prose .actions{margin-top:32px}
.prose.center{margin-inline:auto}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding-block:48px 40px;font-size:.88rem;color:var(--muted)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px}
.foot-brand{color:var(--ink);font-weight:600;font-size:1rem;margin-bottom:8px}
.foot-h{font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink);margin-bottom:12px}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.site-footer a{text-decoration:none}
.site-footer a:hover{color:var(--ink)}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:36px;padding-top:20px;border-top:1px solid var(--line);font-size:.8rem}
@media (max-width:720px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid>div:first-child{grid-column:span 2}}

/* Mobile action bar */
.actionbar{display:none}
@media (max-width:720px){
  .actionbar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--stage) 85%,transparent);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .actionbar a{display:flex;justify-content:center;align-items:center;padding:13px 6px;border-radius:14px;font-weight:500;font-size:.9rem;text-decoration:none;color:var(--stage-ink);background:var(--stage-3)}
  .actionbar a.primary{background:linear-gradient(180deg,#D8B464,#B8913A);color:var(--accent-ink)}
  body{padding-bottom:80px}
}

/* ---------- Motion ---------- */
@property --a{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes rise-in{from{opacity:.15;translate:0 28px;filter:blur(10px)}to{opacity:1;translate:0 0;filter:blur(0)}}
@keyframes from0{from{opacity:0}}
@keyframes lamp-drop{0%{transform:translateY(-160px)}55%{transform:translateY(10px)}72%{transform:translateY(-4px)}86%{transform:translateY(2px)}100%{transform:translateY(0)}}
@keyframes bulb-on{from{fill:#4A4033}}
@keyframes sweep{from{background-position:100% 0}}
@keyframes ping{0%{opacity:.9;transform:scale(.92)}80%,100%{opacity:0;transform:scale(1.4)}}
@keyframes spin{to{--a:360deg}}
@keyframes current{from{background-position:160% 0}to{background-position:-60% 0}}
@keyframes draw{to{stroke-dashoffset:0}}

/* Hero load sequence: lamp drops, light flickers on, copy focuses in */
.in{animation:rise-in 1s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
.lamp-drop{animation:lamp-drop 1.3s cubic-bezier(.3,.6,.3,1) both}
.scene .cone,.scene .halo,.scene .rugglow{animation:flick 1s 1.05s backwards}
.scene .lit{animation:from0 .9s 1.3s backwards}
.bulb{animation:bulb-on .25s 1.05s backwards}
.hero::before{animation:from0 1.6s 1s backwards}
.hero .gold{animation:sweep 2.4s 1.2s cubic-bezier(.3,.6,.2,1) backwards}
.switch.ping::before{content:"";position:absolute;inset:-7px;border-radius:15px;border:1.5px solid var(--brass);opacity:0;animation:ping 2.4s 2.4s cubic-bezier(.2,.7,.2,1) infinite;pointer-events:none}

/* Scroll-linked effects. main.js adds .js and sets --p (0 to 1) on [data-scroll] elements.
   Without JavaScript --p falls back to its finished value, so nothing is hidden. */
.js .hero-copy{translate:0 calc(var(--x,0) * -90px);opacity:calc(1 - var(--x,0) * 1.1)}
.js .scene{scale:calc(1 + var(--x,0) * .1);transform-origin:50% 0}
.js .rise{translate:0 calc((1 - var(--p,1)) * 56px);opacity:calc(.35 + var(--p,1) * .65)}
.js .rise .gold{background-position:calc((1 - var(--p,1)) * 100%) 0}
.js .tile{translate:0 calc((var(--p,.5) - .5) * var(--speed,0) * 1px)}
.js .mat{translate:0 calc((var(--p,.5) - .5) * -36px)}
.js .expand{clip-path:inset(0 calc((1 - var(--p,1)) * 4vw) round calc((1 - var(--p,1)) * 48px))}
.js .rail .card{transform:translateY(calc((1 - var(--p,1)) * (40px + var(--i,0) * 26px)))}
.js .plist i{transform-origin:left;transform:translateY(-4px) scaleX(var(--p,1))}
.js .tl li:not(.lit)::before{border-color:var(--line)}
.js .tl li:not(.lit) .day{color:var(--muted)}
.js .big-quote .w{color:color-mix(in srgb,var(--ink) 28%,transparent);transition:color .35s}
.js .big-quote .w.on{color:var(--ink)}
