
:root{
  --bg:#0c111b; --bg2:#151d2d; --card:#1b263a; --line:#2d3c59;
  --text:#eef3ff; --muted:#a8b4ce; --gold:#d6af63; --gold2:#b98938;
  --ok:#c8f2dc; --okbg:#173626; --okline:#2f7a53; --max:1160px;
}
body.light{
  --bg:#f3f6fc; --bg2:#ffffff; --card:#ffffff; --line:#d8dfec;
  --text:#172237; --muted:#56627b; --gold:#ab7b2d; --gold2:#8b6424;
  --ok:#1f5f3f; --okbg:#e8f8ef; --okline:#8bc8a4;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;scroll-behavior:smooth}
body{
  font-family:Segoe UI, Inter, system-ui, sans-serif;
  color:var(--text);
  background:radial-gradient(900px 430px at 95% -10%, rgba(214,175,99,.16), transparent 58%),radial-gradient(860px 450px at -6% 8%, rgba(92,122,214,.13), transparent 55%),var(--bg);
  line-height:1.62;
}

/* brighter, higher-contrast light mode */
body.light{
  background:
    radial-gradient(900px 420px at 100% -8%, rgba(171,123,45,.13), transparent 58%),
    radial-gradient(780px 380px at -8% 6%, rgba(107,146,233,.14), transparent 55%),
    linear-gradient(180deg, #f9fbff 0%, #f4f7fe 100%);
}
body.light .site-header{background:color-mix(in oklab,var(--bg) 94%, #ffffff);box-shadow:0 8px 20px rgba(26,42,76,.06)}
body.light .btn{background:#ffffff;border-color:#c8d3e7;color:#12203a}
body.light .btn:hover{box-shadow:0 10px 22px rgba(28,48,84,.14)}
body.light .main-nav a.active,
body.light .main-nav a:hover{background:rgba(76,109,178,.11);border-color:#b6c6e2}
body.light .hero-live{border-color:#c7d5ed;background:linear-gradient(145deg,#ffffff,#f7f9ff)}
body.light .hero-live::before{background:linear-gradient(125deg, rgba(86,143,226,.09), rgba(214,175,99,.08), rgba(164,113,223,.08))}
body.light .hero-live h1{color:#14233f;text-shadow:none}
body.light .card{box-shadow:0 8px 20px rgba(31,53,89,.06)}
body.light .icon-chip{background:#fff;border-color:#c7d4e8;color:#3f4f6c}

/* subtle animations */
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulseGlow{0%,100%{box-shadow:0 0 0 rgba(214,175,99,0)}50%{box-shadow:0 0 28px rgba(214,175,99,.18)}}

.reveal{opacity:0;transform:translateY(10px);transition:opacity .55s ease, transform .55s ease}
.reveal.in{opacity:1;transform:none}
a{color:inherit}
.container{max-width:var(--max);margin:0 auto;padding:0 16px}

.site-header{position:sticky;top:0;z-index:30;background:color-mix(in oklab,var(--bg) 88%, transparent);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.nav{min-height:70px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.brand-wrap{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-logo{height:66px;width:auto;display:block;transition:transform .25s ease, filter .25s ease;filter:drop-shadow(0 6px 12px rgba(0,0,0,.18))}
.brand-wrap:hover .brand-logo{transform:translateY(-1px) scale(1.01)}
.logo-light{display:none}
body.light .logo-dark{display:none}
body.light .logo-light{display:block;filter:drop-shadow(0 6px 12px rgba(37,50,76,.12))}

.controls{display:flex;align-items:center;gap:8px}
.btn{border:1px solid var(--line);background:var(--bg2);color:var(--text);padding:8px 11px;border-radius:10px;cursor:pointer;text-decoration:none;display:inline-block;transition:transform .2s ease, box-shadow .25s ease, background .25s ease}
.btn.primary{background:linear-gradient(180deg,#efd399,var(--gold2));border-color:#cc9d4e;color:#181108;font-weight:800;animation:pulseGlow 4.2s ease-in-out infinite}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.18)}

#mobileMenuBtn{display:none}
.main-nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.main-nav a{padding:8px 10px;border-radius:10px;text-decoration:none;color:var(--muted);border:1px solid transparent;position:relative;transition:color .2s ease, border-color .2s ease, background .2s ease}
.main-nav a::after{content:"";position:absolute;left:10px;right:10px;bottom:4px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.main-nav a.active,.main-nav a:hover{color:var(--text);border-color:var(--line);background:rgba(255,255,255,.04)}
.main-nav a.active::after,.main-nav a:hover::after{transform:scaleX(1)}

.hero{padding:52px 0 26px;animation:fadeUp .6s ease both}
.hero-live{position:relative;overflow:hidden;isolation:isolate;border-radius:16px;padding-inline:14px;border:1px solid color-mix(in oklab,var(--line) 78%, transparent)}
.hero-live::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-2;background:linear-gradient(125deg, rgba(86,143,226,.12), rgba(214,175,99,.1), rgba(164,113,223,.12));}
.hero-live::after{content:"";position:absolute;inset:-10px;border-radius:inherit;z-index:-3;background:conic-gradient(from 30deg, rgba(99,162,255,.28), rgba(238,142,255,.2), rgba(214,175,99,.2), rgba(99,162,255,.28));filter:blur(16px);opacity:.45;animation:auroraSpin 20s linear infinite}
.hero-live .tag,.hero-live h1,.hero-live .lead{opacity:0;transform:translateY(11px);transition:opacity .55s ease, transform .55s ease}
.hero-live h1{transition-delay:.1s}
.hero-live .lead{transition-delay:.2s}
body.lab-ready .hero-live .tag,body.lab-ready .hero-live h1,body.lab-ready .hero-live .lead{opacity:1;transform:none}
.hero-orb{position:absolute;border-radius:50%;pointer-events:none;z-index:-1;filter:blur(4px);opacity:.34}
.hero-orb.orb-a{width:170px;height:170px;right:-30px;top:-20px;background:radial-gradient(circle, rgba(110,169,255,.55), rgba(110,169,255,0) 72%);animation:orbMoveA 10s ease-in-out infinite}
.hero-orb.orb-b{width:190px;height:190px;left:-46px;bottom:-80px;background:radial-gradient(circle, rgba(214,175,99,.48), rgba(214,175,99,0) 74%);animation:orbMoveB 12s ease-in-out infinite}
.hero-orb.orb-c{width:150px;height:150px;right:38%;bottom:-26px;background:radial-gradient(circle, rgba(226,132,251,.42), rgba(226,132,251,0) 74%);animation:orbMoveC 11s ease-in-out infinite}

.tag{display:inline-block;border:1px solid color-mix(in oklab,var(--gold) 60%, transparent);color:var(--gold);padding:4px 10px;border-radius:999px;font-size:.8rem;position:relative;overflow:hidden}
.tag::after{content:"";position:absolute;inset:0;transform:translateX(-130%);background:linear-gradient(110deg,transparent 0%, rgba(255,255,255,.14) 46%, transparent 90%);animation:tagSweep 5s ease-in-out infinite}
h1{font-size:clamp(2rem,5vw,3.25rem);line-height:1.08;margin:14px 0 12px}
h2{margin:0 0 8px;font-size:clamp(1.4rem,2.6vw,2rem)}
.lead,.muted{color:var(--muted)}
.icon-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.icon-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);padding:6px 10px;border-radius:999px;background:var(--bg2);color:var(--muted);font-size:.9rem}
.visual-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.visual-grid img{width:100%;height:170px;object-fit:cover;border-radius:12px;border:1px solid var(--line);filter:saturate(.95) contrast(1.02);transition:transform .35s ease, filter .35s ease, box-shadow .35s ease}
.visual-grid img:hover{transform:scale(1.02);filter:saturate(1.02) contrast(1.04);box-shadow:0 18px 30px rgba(0,0,0,.2)}

/* homepage offer cards with hover reveal */
.offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.offer-tile{position:relative;min-height:250px;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--card);isolation:isolate;box-shadow:0 12px 28px rgba(0,0,0,.14);transition:transform .3s ease, box-shadow .3s ease, border-color .25s ease}
.offer-tile:hover{transform:translateY(-3px);box-shadow:0 20px 34px rgba(0,0,0,.22);border-color:color-mix(in oklab,var(--gold) 45%, var(--line))}
.offer-image-link{position:absolute;inset:0;display:block;z-index:1}
.offer-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.01);transition:transform .45s ease, filter .35s ease;filter:brightness(.78) saturate(1.02)}
.offer-tile:hover .offer-img{transform:scale(1.06);filter:brightness(.6) saturate(1.08)}
.offer-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:16px;background:linear-gradient(180deg, rgba(12,17,27,.1) 10%, rgba(12,17,27,.78) 75%);pointer-events:none}
.offer-overlay h3{margin:0;font-size:clamp(1.15rem,2.4vw,1.55rem);line-height:1.2;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.45)}
.offer-detail{max-height:0;opacity:0;transform:translateY(10px);overflow:hidden;transition:max-height .35s ease, opacity .3s ease, transform .3s ease}
.offer-detail p{margin:10px 0 12px;color:#e8edf8}
.offer-tile:hover .offer-detail{max-height:160px;opacity:1;transform:translateY(0)}
.offer-detail .btn{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.35);color:#fff;pointer-events:auto}
.offer-detail .btn:hover{background:rgba(255,255,255,.18)}

section{padding:36px 0;border-bottom:1px solid color-mix(in oklab,var(--line) 60%, transparent)}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;transition:transform .22s ease, box-shadow .28s ease, border-color .25s ease}
.card:hover{transform:translateY(-2px);box-shadow:0 16px 30px rgba(0,0,0,.16);border-color:color-mix(in oklab,var(--gold) 40%, var(--line))}
.card h3{margin:0 0 6px}
.teaser-wrap{padding-top:18px}
.teaser-link{display:block;text-decoration:none;color:inherit}
.teaser-card{position:relative;overflow:hidden;border-color:color-mix(in oklab,var(--gold) 45%, var(--line));background:linear-gradient(130deg, rgba(214,175,99,.14) 0%, rgba(92,122,214,.10) 40%, color-mix(in oklab,var(--card) 92%, transparent) 100%)}
.teaser-card::before{content:"";position:absolute;inset:-40% auto auto -20%;width:260px;height:260px;background:radial-gradient(circle, rgba(214,175,99,.22), transparent 68%);pointer-events:none}
.teaser-card::after{content:"";position:absolute;right:-30px;bottom:-40px;width:220px;height:220px;background:radial-gradient(circle, rgba(126,156,240,.18), transparent 70%);pointer-events:none}
.teaser-hint{display:inline-block;margin-top:10px;color:var(--gold);font-weight:700;font-size:.92rem}
.price{font-size:1.35rem;font-weight:800;color:var(--gold);margin:6px 0}
.list{margin:0;padding-left:18px;color:var(--muted)}

.faq details,.case details,.project{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:10px 0}
.faq summary,.project summary{cursor:pointer;font-weight:700}
.pics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.pics img{width:100%;height:180px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.mini{background:color-mix(in oklab,var(--card) 88%, transparent);border:1px solid var(--line);border-radius:10px;padding:10px}
.mini b{display:block;color:var(--gold);margin-bottom:4px}
.next{margin-top:10px;border:1px solid var(--okline);background:var(--okbg);color:var(--ok);border-radius:10px;padding:10px}

.contact-form{display:grid;gap:10px;max-width:760px}
.contact-form input,.contact-form textarea{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg2);color:var(--text);font:inherit}
.contact-form textarea{min-height:120px;resize:vertical}
.form-success{border:1px solid var(--okline);background:var(--okbg);color:var(--ok);border-radius:10px;padding:10px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

footer{padding:22px 0;color:var(--muted)}

@keyframes tagSweep{
  0%, 55% { transform:translateX(-130%); }
  100% { transform:translateX(130%); }
}
@keyframes auroraSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes orbMoveA{0%,100%{transform:translate(0,0)}50%{transform:translate(-10px,8px)}}
@keyframes orbMoveB{0%,100%{transform:translate(0,0)}50%{transform:translate(10px,-10px)}}
@keyframes orbMoveC{0%,100%{transform:translate(0,0)}50%{transform:translate(-8px,7px)}}

@media (max-width:980px){
  #mobileMenuBtn{display:inline-block}
  .main-nav{display:none;position:absolute;left:12px;right:12px;top:64px;background:var(--bg2);border:1px solid var(--line);border-radius:12px;padding:8px;flex-direction:column;align-items:stretch}
  .main-nav.open{display:flex}
}
@media (max-width:860px){.grid,.grid-3,.pics,.three,.visual-grid,.offer-grid{grid-template-columns:1fr}}

@media (hover:none){
  .offer-img{filter:brightness(.62)}
  .offer-detail{max-height:160px;opacity:1;transform:none}
}
