/* Safari Technical Services — "the site is a building" */
:root {
    --ink:#070b12; --ink-2:#0e1522;
    --navy:#1d3a73;
    --green:#7cc242; --green-2:#a6e06a; --green-glow:rgba(124,194,66,.55);
    --steel:#b9c6da; --steel-2:#8fa0bb;
    --paper:#f3f5f8; --paper-2:#e6eaf0; --text:#0b1220; --muted:#5b6474; --muted-d:#9aa4b5;
    --line-d:rgba(255,255,255,.1); --line:rgba(11,18,32,.1);
    --radius:22px;
    font-size:16px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:"Inter",sans-serif; color:var(--text); background:var(--ink); line-height:1.55; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
p { margin:0 0 1rem; }
h1,h2,h3 { margin:0; }
svg { width:1.35rem; height:1.35rem; fill:currentColor; flex:none; }
svg.ico { fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.container { width:min(1240px,calc(100% - 4rem)); margin:0 auto; }

.display { font-family:"Archivo",sans-serif; font-weight:850; font-stretch:112%; font-size:clamp(2.4rem,5.4vw,4.8rem); line-height:.98; letter-spacing:-.035em; margin-bottom:1.6rem; }
.accent { color:var(--steel); }
.accent-navy { color:var(--navy); }
.floor-tag { display:inline-flex; align-items:center; gap:.7rem; font:600 .78rem "Inter",sans-serif; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:1.4rem; }
.floor-tag b { display:grid; place-items:center; width:2.4rem; height:2.4rem; border-radius:50%; font:700 .95rem "Oswald",sans-serif; letter-spacing:0; color:#fff; background:var(--navy); box-shadow:0 0 0 5px rgba(29,58,115,.15); }
.dark .floor-tag, .floor-tag.light { color:var(--muted-d); }
.dark .floor-tag b, .floor-tag.light b { background:transparent; color:#fff; border:1px solid rgba(255,255,255,.35); box-shadow:none; }
.body-lg { font-size:1.2rem; color:var(--text); font-weight:500; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.6rem; padding:1rem 1.7rem; border-radius:999px; border:1px solid transparent; font:700 .95rem "Inter",sans-serif; cursor:pointer; transition:transform .2s, box-shadow .2s, background .2s, color .2s; }
.btn-green { background:var(--green); color:var(--ink); box-shadow:0 10px 30px -10px var(--green-glow); }
.btn-green:hover { transform:translateY(-2px); background:var(--green-2); box-shadow:0 16px 40px -10px var(--green-glow); }
.btn-ghost { border-color:rgba(255,255,255,.3); color:#fff; }
.btn-ghost:hover { border-color:#fff; background:rgba(255,255,255,.08); }
.btn-sm { padding:.7rem 1.25rem; font-size:.85rem; }
.btn-block { width:100%; }
.link-arrow { display:inline-flex; gap:.5rem; font-weight:700; color:var(--navy); border-bottom:2px solid var(--navy); padding-bottom:.2rem; }
.link-arrow:hover { gap:.9rem; }

.glass { background:linear-gradient(150deg,rgba(255,255,255,.14),rgba(255,255,255,.04)); border:1px solid rgba(255,255,255,.16); -webkit-backdrop-filter:blur(16px) saturate(1.3); backdrop-filter:blur(16px) saturate(1.3); box-shadow:0 30px 60px -30px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.2); }

/* Header */
.site-header { position:fixed; top:0; left:0; right:0; z-index:50; padding:1rem 0; transition:background .3s, padding .3s, box-shadow .3s; }
.site-header.scrolled { padding:.55rem 0; background:rgba(7,11,18,.78); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); box-shadow:0 1px 0 var(--line-d); }
.header-flex { display:flex; align-items:center; gap:2rem; }
.logo-box { display:block; background:#fff; padding:.45rem .9rem; border-radius:12px; box-shadow:0 8px 24px -12px rgba(0,0,0,.6); }
.logo-svg { display:block; width:210px; height:auto; }
.main-nav { display:flex; gap:2rem; margin-left:auto; }
.main-nav a { color:#d6dbe4; font-weight:600; font-size:.92rem; position:relative; }
.main-nav a:after { content:""; position:absolute; left:0; right:100%; bottom:-6px; height:1px; background:#fff; transition:right .25s; }
.main-nav a:hover { color:#fff; }
.main-nav a:hover:after { right:0; }

/* Hero */
.hero { position:relative; min-height:clamp(640px,100vh,940px); display:flex; align-items:center; overflow:hidden; color:#fff; background:var(--ink); padding:8rem 0 6rem; }
.hero-photo { position:absolute; inset:0 0 0 38%; background:url("https://images.unsplash.com/photo-1758448721149-aa0ce8e1b2c9?auto=format&fit=crop&w=2000&q=80") 30% center/cover no-repeat; filter:grayscale(100%) contrast(1.05) brightness(.8);
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 35%); mask-image:linear-gradient(90deg,transparent,#000 35%); animation:heroZoom 14s ease-out both; }
.hero:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,11,18,.35),transparent 30%,transparent 65%,var(--ink)); pointer-events:none; }
.hero-glow { position:absolute; width:900px; height:900px; left:-300px; top:-250px; border-radius:50%; background:radial-gradient(circle,rgba(29,58,115,.65),transparent 65%); pointer-events:none; }
.hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:1.35fr .65fr; gap:4rem; align-items:end; }
.kicker { display:inline-flex; align-items:center; gap:.65rem; padding:.45rem 1rem; border-radius:999px; border:1px solid rgba(255,255,255,.22); background:rgba(255,255,255,.05); color:#dfe5ee; font-weight:600; font-size:.82rem; letter-spacing:.12em; text-transform:uppercase; margin-bottom:1.8rem; }
.kicker .dot { width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 4px rgba(124,194,66,.25); animation:pulse 1.8s ease-in-out infinite; }
.hero-title { font-family:"Archivo",sans-serif; font-weight:900; font-stretch:118%; font-size:clamp(3.4rem,10vw,9rem); line-height:.88; letter-spacing:-.045em; margin-bottom:2rem; }
.hero-title .line { display:block; }
.hero-title .accent { color:transparent; -webkit-text-stroke:1.5px var(--steel); }
.hero-lead { max-width:560px; font-size:1.15rem; color:#c3cad6; margin-bottom:2.2rem; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:2.6rem; }
.hero-chips { list-style:none; display:flex; flex-wrap:wrap; gap:.7rem; margin:0; padding:0; }
.hero-chips li { display:flex; align-items:center; gap:.55rem; padding:.6rem 1rem; border-radius:12px; background:rgba(255,255,255,.06); border:1px solid var(--line-d); font-size:.88rem; font-weight:600; color:#e8ecf2; }
.hero-chips svg { color:var(--steel); width:1.15rem; height:1.15rem; }
.callback { display:flex; flex-direction:column; gap:.75rem; padding:1.8rem; border-radius:var(--radius); }
.callback-title { font-family:"Archivo",sans-serif; font-weight:800; font-stretch:110%; font-size:1.35rem; margin-bottom:.4rem; }
.callback input,.contact-form input,.contact-form textarea { width:100%; padding:.95rem 1.1rem; border-radius:12px; border:1px solid rgba(255,255,255,.16); background:rgba(7,11,18,.45); color:#fff; font:.95rem "Inter",sans-serif; outline:none; transition:border-color .2s, box-shadow .2s; }
.callback input::placeholder,.contact-form ::placeholder { color:#8d97a8; }
.callback input:focus,.contact-form input:focus,.contact-form textarea:focus { border-color:var(--steel); box-shadow:0 0 0 4px rgba(185,198,218,.18); }
.scroll-cue { position:absolute; z-index:2; left:50%; bottom:2rem; width:26px; height:42px; margin-left:-13px; border:2px solid rgba(255,255,255,.4); border-radius:14px; }
.scroll-cue span { position:absolute; left:50%; top:8px; width:4px; height:8px; margin-left:-2px; border-radius:2px; background:#fff; animation:cue 1.6s ease-in-out infinite; }

/* Ribbon */
.ribbon { overflow:hidden; background:var(--navy); color:#fff; border-top:1px solid rgba(255,255,255,.12); border-bottom:1px solid rgba(255,255,255,.12); padding:1.1rem 0; transform:rotate(-1.2deg) scale(1.03); margin:-1.2rem 0; position:relative; z-index:3; box-shadow:0 20px 40px -20px rgba(0,0,0,.5); }
.ribbon-track { display:flex; align-items:center; gap:2.2rem; width:max-content; animation:marquee 32s linear infinite; }
.ribbon span { font-family:"Archivo",sans-serif; font-weight:850; font-stretch:115%; font-size:1.5rem; text-transform:uppercase; letter-spacing:-.01em; white-space:nowrap; }
.ribbon i { font-style:normal; font-size:.9rem; color:var(--steel-2); }

/* Floors (sections) */
.floor { position:relative; padding:9rem 0; background:var(--paper); }
.floor.dark { background:var(--ink); color:#fff; }
.dark p { color:var(--muted-d); }
.section-head { max-width:760px; margin-bottom:4rem; }
.section-head.center { margin-left:auto; margin-right:auto; text-align:center; }

/* About */
.about { overflow:hidden; }
.about:before { content:"4"; position:absolute; right:-2rem; top:2rem; font:700 32rem/1 "Oswald",sans-serif; color:rgba(29,58,115,.05); pointer-events:none; }
.about-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:6rem; align-items:center; }
.about-media { position:relative; }
.about-media:before { content:""; position:absolute; inset:12% -8% -6% 10%; border-radius:var(--radius); background:linear-gradient(160deg,var(--paper-2),#fff); z-index:0; }
.about-media img { position:relative; z-index:1; width:100%; max-width:440px; height:auto; aspect-ratio:9/11; object-fit:cover; margin:0 auto; border-radius:var(--radius); box-shadow:0 40px 80px -40px rgba(7,11,18,.55); }
.about-copy p { color:var(--muted); max-width:560px; font-size:1.05rem; }
.about-copy .body-lg { color:var(--text); }

/* Products */
.products { overflow:hidden; }
.products:before { content:""; position:absolute; inset:0; background:radial-gradient(800px 400px at 85% 0%,rgba(29,58,115,.55),transparent 70%); pointer-events:none; }
.product-grid { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:1.6rem; }
.product-card { position:relative; border-radius:var(--radius); background:var(--ink-2); border:1px solid var(--line-d); overflow:hidden; transition:transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, box-shadow .35s; }
.product-card:hover { transform:translateY(-10px); border-color:rgba(185,198,218,.4); box-shadow:0 40px 80px -40px rgba(42,85,168,.6); }
.product-img { position:relative; height:360px; overflow:hidden; background:#d9dee6; }
.product-img:after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(14,21,34,.85)); pointer-events:none; }
.product-img img { width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.7,.2,1); }
.product-card:hover .product-img img { transform:scale(1.07); }
.product-body { padding:1.8rem; }
.product-no { font:700 .85rem "Oswald",sans-serif; color:var(--steel-2); letter-spacing:.1em; }
.product-body h3 { font-family:"Archivo",sans-serif; font-weight:800; font-stretch:112%; font-size:1.6rem; margin:.4rem 0 .7rem; color:#fff; }
.product-body p { margin:0; font-size:.95rem; }

/* Features */
.features-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:5rem; align-items:start; }
.features-head { position:sticky; top:8rem; }
.features-head p:not(.floor-tag) { color:var(--muted); font-size:1.05rem; max-width:420px; }
.feature-tiles { list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; margin:0; padding:0; }
.feature-tiles li { position:relative; min-height:210px; padding:1.7rem; border-radius:var(--radius); background:#fff; border:1px solid var(--line); display:flex; flex-direction:column; justify-content:flex-end; gap:1rem; overflow:hidden; transition:background .3s, color .3s, transform .3s; }
.feature-tiles li:last-child { grid-column:span 2; min-height:170px; }
.feature-tiles li:hover { background:var(--navy); color:#fff; transform:translateY(-4px); }
.feature-tiles svg { width:2.2rem; height:2.2rem; color:var(--navy); transition:color .3s; }
.feature-tiles svg.ico { stroke-width:1.4; }
.feature-tiles li:hover svg { color:#fff; }
.feature-tiles h3 { font-family:"Archivo",sans-serif; font-weight:800; font-stretch:108%; font-size:1.2rem; line-height:1.2; text-transform:capitalize; }
.tile-no { position:absolute; top:1.2rem; right:1.4rem; font:700 3.2rem/1 "Oswald",sans-serif; color:rgba(29,58,115,.08); transition:color .3s; }
.feature-tiles li:hover .tile-no { color:rgba(255,255,255,.12); }

/* Testimonials */
.testimonials { background:linear-gradient(180deg,var(--ink),#0b1a33); }
.quote-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.6rem; max-width:1040px; margin:0 auto; }
.quote-card { margin:0; padding:2.4rem; border-radius:var(--radius); color:#fff; }
.quote-mark { display:block; font:900 5rem/0.7 Georgia,serif; color:var(--steel-2); margin-bottom:1rem; }
.quote-card blockquote { margin:0 0 1.8rem; font-size:1.1rem; line-height:1.7; color:#e5e9f0; }
.quote-card figcaption { display:flex; align-items:center; gap:.9rem; font-size:.85rem; color:var(--muted-d); }
.quote-card figcaption img { width:44px; height:44px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.3); }
.quote-card figcaption strong { display:block; color:#fff; font-size:.95rem; }

/* Contact */
.contact { background:var(--paper); }
.contact-panel { position:relative; display:grid; grid-template-columns:1.1fr .9fr; gap:4rem; align-items:center; padding:4.5rem; border-radius:32px; color:#fff; overflow:hidden; background:linear-gradient(135deg,var(--navy) 0%,#10244d 55%,var(--ink) 100%); box-shadow:0 60px 100px -50px rgba(29,58,115,.8); }
.contact-panel:before { content:""; position:absolute; width:520px; height:520px; right:-160px; top:-200px; border-radius:50%; background:radial-gradient(circle,rgba(120,160,230,.3),transparent 65%); }
.contact-copy,.contact-form { position:relative; }
.contact-copy p:not(.floor-tag) { color:#c9d2e2; font-size:1.05rem; max-width:440px; }
.contact-copy strong { color:#fff; }
.contact-form { display:flex; flex-direction:column; gap:.8rem; }
.contact-form .row { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }
.contact-form textarea { min-height:110px; resize:vertical; }

/* Form thank-you state */
.form-success { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:.4rem; padding:1.5rem 1rem; color:#fff; animation:successIn .5s cubic-bezier(.2,.7,.2,1); }
.form-success svg { width:3.2rem; height:3.2rem; color:var(--green); margin-bottom:.6rem; }
.form-success svg path { stroke-dasharray:20; stroke-dashoffset:20; animation:drawCheck .5s .25s ease forwards; }
.form-success .success-title { margin:0; font-family:"Archivo",sans-serif; font-weight:800; font-stretch:110%; font-size:1.5rem; color:#fff; }
.form-success .success-text { margin:0; color:#c9d2e2; }
@keyframes successIn { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:none; } }
@keyframes drawCheck { to { stroke-dashoffset:0; } }

/* Footer */
.site-footer { background:var(--ink); color:var(--muted-d); padding:2.2rem 0; font-size:.88rem; border-top:1px solid var(--line-d); }
.footer-flex { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.footer-brand { font:700 1rem "Oswald",sans-serif; letter-spacing:.06em; color:#fff; }
.footer-brand b { color:var(--steel-2); font-weight:500; }
.footer-credit { margin:1.4rem auto 0; padding-top:1.2rem; border-top:1px solid var(--line-d); text-align:center; font-size:.82rem; }
.footer-credit a { color:#fff; font-weight:600; }
.footer-credit a:hover { color:var(--steel); }
.to-top { font-weight:700; color:#fff; }
.to-top:hover { color:var(--steel); }

/* Floor rail */
.floor-rail { position:fixed; right:1.4rem; top:50%; z-index:60; transform:translateY(-50%); display:flex; flex-direction:column; align-items:center; gap:.5rem; padding:.9rem .5rem; border-radius:999px; background:rgba(7,11,18,.72); border:1px solid rgba(255,255,255,.12); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); transition:opacity .5s .2s, transform .5s .2s; }
body.splash-on .floor-rail { opacity:0; transform:translate(20px,-50%); }
.rail-display { display:grid; place-items:center; width:38px; height:38px; border-radius:10px; background:#000; border:1px solid #333; }
.rail-display span { font:700 1.25rem/1 "Oswald",sans-serif; color:#fff; text-shadow:0 0 10px var(--green-glow); }
.rail-display span.tick { animation:floorTick .35s ease; }
.rail-dir { font-size:.6rem; color:#444; transition:color .2s, text-shadow .2s; }
.floor-rail.moving-up .rail-dir.up, .floor-rail.moving-down .rail-dir.down { color:var(--green); text-shadow:0 0 8px var(--green-glow); }
.floor-rail ol { list-style:none; display:flex; flex-direction:column; gap:.35rem; margin:.2rem 0; padding:0; }
.floor-rail a { position:relative; display:grid; place-items:center; width:30px; height:30px; border-radius:50%; font:600 .78rem "Oswald",sans-serif; color:#aab3c2; border:1px solid rgba(255,255,255,.14); transition:all .25s; }
.floor-rail a em { position:absolute; right:calc(100% + .8rem); top:50%; transform:translate(6px,-50%); white-space:nowrap; padding:.3rem .65rem; border-radius:8px; background:var(--ink); border:1px solid var(--line-d); font:600 .75rem "Inter",sans-serif; font-style:normal; color:#fff; opacity:0; pointer-events:none; transition:all .2s; }
.floor-rail a:hover em { opacity:1; transform:translate(0,-50%); }
.floor-rail a:hover { color:#fff; border-color:#fff; }
.floor-rail a.active { background:var(--green); color:var(--ink); border-color:var(--green); box-shadow:0 0 16px var(--green-glow); }

/* Reveal on scroll */
.js [data-reveal] { opacity:0; transform:translateY(40px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.js [data-reveal].in { opacity:1; transform:none; }
.product-grid [data-reveal]:nth-child(2), .quote-grid [data-reveal]:nth-child(2), .feature-tiles [data-reveal]:nth-child(2) { transition-delay:.12s; }
.product-grid [data-reveal]:nth-child(3), .feature-tiles [data-reveal]:nth-child(3) { transition-delay:.24s; }
.feature-tiles [data-reveal]:nth-child(4) { transition-delay:.36s; }
.feature-tiles [data-reveal]:nth-child(5) { transition-delay:.48s; }

@keyframes heroZoom { from { transform:scale(1.12); } to { transform:scale(1); } }
@keyframes pulse { 50% { box-shadow:0 0 0 9px rgba(124,194,66,0); } }
@keyframes cue { 0% { transform:translateY(0); opacity:1; } 80%,100% { transform:translateY(14px); opacity:0; } }
@keyframes marquee { to { transform:translateX(-50%); } }

/* ---------- Glass lift splash ---------- */
:root { --frame:44px; --frame-top:96px; --sill:22px; --open:1200ms; }
body.splash-on { overflow:hidden; }
body.splash-on main { will-change:transform; }
.js body.splash-on [data-reveal] { opacity:1; transform:none; transition:none; }

.lift-splash { position:fixed; inset:0; z-index:1000; pointer-events:none; }
.lift-splash.is-done { opacity:0; visibility:hidden; transition:opacity .5s ease, visibility 0s .5s; }

/* brushed-steel surround */
.lift-frame-top,.lift-frame-side,.lift-sill { position:absolute; background:linear-gradient(90deg,#9a9a9a,#e9e9e9 18%,#bdbdbd 40%,#f2f2f2 60%,#a9a9a9 82%,#d8d8d8); box-shadow:inset 0 0 0 1px rgba(0,0,0,.18); transition:transform .9s cubic-bezier(.6,0,.4,1); }
.lift-frame-top { top:0; left:0; right:0; height:var(--frame-top); display:grid; place-items:center; border-bottom:4px solid var(--green); }
.lift-frame-side { top:var(--frame-top); bottom:var(--sill); width:var(--frame); background:linear-gradient(180deg,#b0b0b0,#ececec 30%,#c4c4c4 60%,#e2e2e2); }
.lift-frame-side.left { left:0; } .lift-frame-side.right { right:0; }
.lift-sill { left:0; right:0; bottom:0; height:var(--sill); background:repeating-linear-gradient(90deg,#8d8d8d 0 6px,#c9c9c9 6px 12px); border-top:3px solid #6f6f6f; }

/* floor indicator */
.lift-indicator { display:flex; align-items:center; gap:1.1rem; padding:.55rem 1.4rem; background:#0c0c0c; border-radius:10px; border:2px solid #555; box-shadow:inset 0 0 14px rgba(0,0,0,.9),0 2px 6px rgba(0,0,0,.3); }
.lift-floor { min-width:2.2ch; text-align:center; font:700 2.4rem/1 "Oswald","Arial Narrow",sans-serif; color:#fff; text-shadow:0 0 8px rgba(255,255,255,.85),0 0 18px var(--green-glow); }
.lift-floor.tick { animation:floorTick .35s ease; }
.lift-arrow { font-size:1.1rem; color:#333; transition:color .3s,text-shadow .3s; }
.lift-arrow.up { color:#fff; text-shadow:0 0 10px var(--green); animation:arrowPulse .7s ease-in-out infinite; }
.lift-splash.arrived .lift-arrow.up { animation:none; color:#555; text-shadow:none; }
.lift-splash.arrived .lift-floor { animation:arriveFlash .6s ease 2; }

/* glass doors */
.lift-doors { position:absolute; top:var(--frame-top); bottom:var(--sill); left:var(--frame); right:var(--frame); overflow:hidden; }
.glass-door { position:absolute; top:0; bottom:0; width:50%; overflow:hidden;
    background:linear-gradient(115deg,rgba(255,255,255,.34),rgba(210,225,232,.16) 38%,rgba(255,255,255,.08) 60%,rgba(200,215,222,.22));
    -webkit-backdrop-filter:blur(7px) saturate(1.15); backdrop-filter:blur(7px) saturate(1.15);
    border:6px solid #bcbcbc; box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),inset 0 0 40px rgba(255,255,255,.18);
    transition:transform var(--open) cubic-bezier(.65,0,.25,1); }
.glass-door.left { left:0; border-right-width:3px; }
.glass-door.right { right:0; border-left-width:3px; }
.glass-door:before { content:""; position:absolute; left:8%; right:8%; top:50%; height:2px; background:rgba(255,255,255,.55); box-shadow:0 1px 0 rgba(0,0,0,.08); }
.glass-shine { position:absolute; top:-20%; bottom:-20%; width:18%; left:20%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-14deg); animation:shine 3.2s ease-in-out infinite; }
.glass-door.right .glass-shine { animation-delay:.6s; }
.lift-splash.open .glass-door.left { transform:translateX(-101%); }
.lift-splash.open .glass-door.right { transform:translateX(101%); }

/* call panel: ▲ lit during the ride, off on arrival */
.call-panel { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:flex; flex-direction:column; gap:10px; padding:10px 5px; border-radius:6px; background:linear-gradient(180deg,#d6d6d6,#f4f4f4 45%,#bdbdbd); box-shadow:inset 0 0 0 1px rgba(0,0,0,.25),0 2px 4px rgba(0,0,0,.25); }
.call-btn { display:grid; place-items:center; width:24px; height:24px; border-radius:50%; font-size:9px; color:#666; background:radial-gradient(circle at 40% 35%,#fafafa,#bdbdbd 70%,#8e8e8e); box-shadow:inset 0 0 0 2px #9a9a9a,0 1px 2px rgba(0,0,0,.35); transition:color .3s,box-shadow .3s; }
.call-btn.up { color:#fff; background:radial-gradient(circle at 40% 35%,#d4f5b0,#7cc242 65%,#4c8a1f); box-shadow:inset 0 0 0 2px #9a9a9a,0 0 10px 2px var(--green-glow); }
.lift-splash.arrived .call-btn.up { color:#666; background:radial-gradient(circle at 40% 35%,#fafafa,#bdbdbd 70%,#8e8e8e); box-shadow:inset 0 0 0 2px #9a9a9a,0 1px 2px rgba(0,0,0,.35); }

/* frame retracts after the doors open */
.lift-splash.gone .lift-frame-top { transform:translateY(-100%); }
.lift-splash.gone .lift-sill { transform:translateY(100%); }
.lift-splash.gone .lift-frame-side.left { transform:translateX(-100%); }
.lift-splash.gone .lift-frame-side.right { transform:translateX(100%); }

@keyframes arrowPulse { 0%,100% { transform:translateY(2px); opacity:.6; } 50% { transform:translateY(-3px); opacity:1; } }
@keyframes floorTick { from { transform:translateY(40%); opacity:0; } to { transform:none; opacity:1; } }
@keyframes arriveFlash { 50% { opacity:.25; } }
@keyframes shine { 0%,100% { left:-30%; } 50% { left:110%; } }

/* ---------- Responsive ---------- */
@media (max-width:1000px) {
    .container { width:min(100% - 3rem,760px); }
    .main-nav { display:none; }
    .header-flex { justify-content:space-between; }
    .hero-grid { grid-template-columns:1fr; gap:3rem; }
    .hero-photo { inset:0; opacity:.45; -webkit-mask-image:linear-gradient(180deg,#000 30%,transparent); mask-image:linear-gradient(180deg,#000 30%,transparent); }
    .callback { max-width:460px; }
    .about-grid,.features-grid,.contact-panel { grid-template-columns:1fr; gap:3rem; }
    .about-media img { max-width:320px; }
    .features-head { position:static; }
    .product-grid { grid-template-columns:1fr 1fr; }
    .quote-grid { grid-template-columns:1fr; }
    .floor-rail { right:.6rem; }
    .floor-rail a em { display:none; }
}
@media (max-width:640px) {
    :root { --frame:30px; --frame-top:78px; --sill:14px; }
    .container { width:calc(100% - 2rem); }
    .logo-svg { width:160px; }
    .floor { padding:6rem 0; }
    .hero { padding:7rem 0 5rem; }
    .hero-title { font-size:clamp(3rem,17vw,4.6rem); }
    .product-grid,.feature-tiles { grid-template-columns:1fr; }
    .feature-tiles li:last-child { grid-column:auto; }
    .contact-panel { padding:2.4rem 1.4rem; border-radius:24px; }
    .contact-form .row { grid-template-columns:1fr; }
    .floor-rail { display:none; }
    .ribbon span { font-size:1.1rem; }
    .lift-floor { font-size:2rem; }
    .call-panel { gap:7px; padding:7px 3px; }
    .call-btn { width:18px; height:18px; font-size:7px; }
}
/* splash already seen this session */
.splash-seen .lift-splash { display:none; }
.splash-seen body.splash-on { overflow:auto; }
.splash-seen body.splash-on main { transform:none; }
.splash-seen body.splash-on .floor-rail { opacity:1; transform:translateY(-50%); }

@media (prefers-reduced-motion:reduce) {
    .lift-splash { display:none; }
    body.splash-on { overflow:auto; }
    body.splash-on main { transform:none; }
    *,*:before,*:after { animation:none !important; transition:none !important; }
    .js [data-reveal] { opacity:1; transform:none; }
}
