/* Shared theme for /projects/ case-study pages — matches the site design
   (see index.html / experience pages). Edit here, never per-page. */

:root{
  --accent:#2f6bff;
  --bg:#ffffff;
  --alt:#f4f6fb;
  --ink:#0f1b2d;
  --body:#26313f;
  --muted:#64748b;
  --sub:#52607a;
  --card:#ffffff;
  --line:#e6eaf2;
  --iconbg:#eaf0fe;
  --dark:#0f1b2d;
  --nav-bg:rgba(255,255,255,.9);
  --nav-ink:#52607a;
}

*{box-sizing:border-box}
body{margin:0;font-family:'Instrument Sans',system-ui,sans-serif;color:var(--body);background:var(--bg);width:100%;overflow-x:hidden}
::selection{background:var(--accent);color:#fff}
a{color:inherit}
h1,h2{font-family:'Libre Baskerville',Georgia,serif;margin:0}
.wrap{max-width:1000px;margin:0 auto;padding-left:40px;padding-right:40px}

/* ===== NAV ===== */
header.site{position:sticky;top:0;z-index:50;background:var(--nav-bg);backdrop-filter:saturate(1.4) blur(12px);-webkit-backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line)}
.nav-inner{max-width:1000px;margin:0 auto;padding:14px 40px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none}
.mark{width:42px;height:42px;border-radius:9px;background:var(--dark);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:16px;letter-spacing:.02em;flex:none}
.wordmark{line-height:1.1}
.wordmark .name{font-weight:600;font-size:15px;letter-spacing:.01em;color:var(--ink)}
.wordmark .eyebrow{font:500 9.5px/1 ui-monospace,Menlo,monospace;letter-spacing:.18em;color:var(--muted);margin-top:4px}
nav.links{display:flex;align-items:center;gap:26px;font-size:13.5px;font-weight:500;color:var(--nav-ink)}
nav.links a{text-decoration:none;transition:color .2s}
nav.links a:hover{color:var(--accent)}
.talk-btn{text-decoration:none;background:var(--dark);color:#fff;padding:10px 18px;border-radius:8px;font-weight:600;transition:background .2s}
.talk-btn:hover{background:var(--accent)}

/* ===== INTRO / HERO BAND ===== */
.intro{padding:56px 0 44px;background:var(--alt)}
.back-link{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:500;color:var(--muted);text-decoration:none;margin-bottom:18px;transition:color .2s}
.back-link:hover{color:var(--accent)}
.hero{display:flex;justify-content:space-between;align-items:center;gap:40px}
.hero h1{font-weight:700;font-size:36px;line-height:1.16;color:var(--ink);margin:14px 0 0}
.hero p{font-size:15.5px;line-height:1.7;color:var(--sub);max-width:640px;margin:16px 0 0}
.hero p a{color:var(--accent)}
.pill{display:inline-flex;align-items:center;gap:8px;padding:6px 13px;border-radius:999px;font:600 11px/1 ui-monospace,Menlo,monospace;letter-spacing:.14em;text-transform:uppercase;background:var(--iconbg);color:var(--accent);border:1px solid #d8e3fd}

.stack-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;font-size:11.5px}
.stack-badge{padding:4px 11px;border-radius:999px;background:var(--iconbg);color:var(--accent);font-weight:500}

/* hero video frame */
.hero-media{flex-shrink:0;width:320px;max-width:40%;border-radius:16px;overflow:hidden;box-shadow:0 18px 45px rgba(21,36,63,.28);border:1px solid var(--line);background:var(--dark);position:relative}
.hero-media video{display:block;width:100%;height:100%;object-fit:cover;border-radius:16px}
.hero-media-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-start;padding:10px 12px;pointer-events:none}
.hero-media-pill{background:rgba(15,27,45,.82);color:#e6eaf2;padding:4px 10px;border-radius:999px;font-size:11px;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(148,163,184,.5);backdrop-filter:blur(10px)}
.hero-media-dot{width:7px;height:7px;border-radius:999px;background:#4ac47f;box-shadow:0 0 0 4px rgba(74,196,127,.3)}
.hero-media-button{position:absolute;inset:0;cursor:pointer;background:linear-gradient(to top,rgba(15,27,45,.45),transparent 50%);opacity:0;transition:opacity .18s ease-out;display:flex;align-items:center;justify-content:center;border:0;padding:0}
.hero-media:hover .hero-media-button{opacity:1}
.hero-media-button-inner{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(15,27,45,.9);color:#e6eaf2;font-size:12px;border:1px solid rgba(148,163,184,.6);backdrop-filter:blur(12px)}
.hero-media-button-icon{width:10px;height:10px;border-radius:999px;border:2px solid #e6eaf2}

.video-overlay{position:fixed;inset:0;background:rgba(15,27,45,.92);display:none;align-items:center;justify-content:center;z-index:90}
.video-overlay.active{display:flex}
.video-overlay-inner{width:min(1400px,80vw);height:80vh;border-radius:16px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.75);border:1px solid rgba(148,163,184,.5);background:#000;position:relative}
.video-overlay-inner video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.video-overlay-close{position:absolute;top:10px;right:10px;padding:5px 12px;border-radius:999px;background:rgba(15,27,45,.9);color:#e6eaf2;font-size:11px;border:1px solid rgba(148,163,184,.6);cursor:pointer;z-index:2}
.video-overlay-controls{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:10px;z-index:2}
.video-overlay-controls button{padding:6px 12px;border-radius:999px;background:rgba(15,27,45,.9);color:#e6eaf2;font-size:12px;border:1px solid rgba(148,163,184,.6);cursor:pointer}

/* ===== MAIN CONTENT ===== */
main.wrap{padding-top:8px;padding-bottom:70px}
.section-title{font-weight:700;font-size:24px;color:var(--ink);margin:44px 0 12px}
.section-lead{color:var(--sub);font-size:14.5px;margin:0 0 18px;line-height:1.65;max-width:820px}
.section-lead a{color:var(--accent)}

.grid-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px 16px;font-size:14px;color:var(--body);line-height:1.6;transition:box-shadow .25s}
.card:hover{box-shadow:0 14px 32px rgba(21,36,63,.07)}
.card h3{font-size:15px;margin:0 0 8px;font-weight:600;color:var(--ink);font-family:'Instrument Sans',system-ui,sans-serif}
.card p{margin:8px 0}

main ul{padding-left:18px;margin:6px 0 10px;color:var(--body);font-size:14px;line-height:1.6}
main li + li{margin-top:5px}
main li strong{color:var(--ink)}
.architecture-list li strong{color:var(--ink)}

code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em;background:var(--alt);border:1px solid var(--line);border-radius:5px;padding:1px 5px;color:var(--ink)}

.code-block{margin:12px 0 14px;background:var(--dark);color:#dbe3f1;border-radius:12px;padding:14px 16px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px;overflow-x:auto;border:1px solid #1c2c47}
.code-block pre{margin:0;white-space:pre}
.code-block code{background:transparent;border:0;padding:0;color:inherit;font-size:inherit}
.code-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:#8fa0bd;margin-bottom:7px;font-family:ui-monospace,Menlo,monospace}

.tag-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px;font-size:11.5px}
.tag{padding:4px 10px;border-radius:999px;background:var(--iconbg);color:var(--accent);font-weight:500}

.step-list{counter-reset:steps;list-style:none;padding-left:0;margin:10px 0 0}
.step-list li{counter-increment:steps;position:relative;padding-left:32px;margin-bottom:10px;font-size:14px}
.step-list li::before{content:counter(steps);position:absolute;left:0;top:1px;width:21px;height:21px;border-radius:999px;background:var(--dark);color:#fff;font-size:11.5px;display:flex;align-items:center;justify-content:center}

.stat-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:26px 0 6px}
.stat-box{background:var(--dark);color:#e6eaf2;border-radius:14px;padding:16px 18px;border:1px solid rgba(255,255,255,.08)}
.stat-box .num{font-family:'Libre Baskerville',Georgia,serif;font-size:22px;font-weight:700;color:var(--accent);filter:brightness(1.35)}
.stat-box .lbl{font-size:11.5px;color:#96a1b6;margin-top:5px;line-height:1.45}

.flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;gap:10px;align-items:stretch;margin:22px 0 6px}
.flow .step{background:var(--dark);border:1px solid rgba(255,255,255,.08);color:#e6eaf2;border-radius:14px;padding:15px 16px 13px}
.flow .step .t{font-family:'Libre Baskerville',Georgia,serif;font-weight:700;font-size:15px;color:var(--accent);filter:brightness(1.35)}
.flow .step .d{font-size:12px;color:#96a1b6;margin-top:6px;line-height:1.55}
.flow .step .d code{background:rgba(255,255,255,.08);border:0;color:#dbe3f1}
.flow .arrow{align-self:center;color:var(--muted);font-size:18px}

.contract-table{width:100%;border-collapse:collapse;font-size:13px;margin-top:10px}
.contract-table th,.contract-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.contract-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.table-scroll{overflow-x:auto}

.ai-note{display:flex;gap:13px;align-items:flex-start;background:var(--iconbg);border:1px solid #d8e3fd;border-radius:12px;padding:14px 16px;margin:26px 0 2px;font-size:13.5px;color:var(--sub);line-height:1.55}
.ai-note strong{color:var(--ink)}
.ai-note a{color:var(--accent);font-weight:600;text-decoration:none}
.ai-note a:hover{text-decoration:underline}
.ai-ic{flex:none;width:30px;height:30px;border-radius:8px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}

.related{margin-top:56px;padding-top:18px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.related a{color:var(--sub);text-decoration:none;font-weight:500}
.related a:hover{color:var(--accent)}

/* ===== FOOTER ===== */
footer.site{background:var(--dark);color:#fff;padding:30px 40px;margin:0}
.footer-inner{max-width:1000px;margin:0 auto;display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;align-items:center;font-size:13px;color:#b7c0d2}
footer.site a{text-decoration:none;display:flex;align-items:center;gap:9px;transition:color .2s}
footer.site a:hover{color:#fff}
footer.site a svg{color:var(--accent)}
.status-dot{display:flex;align-items:center;gap:9px}
.status-dot span.dot{width:8px;height:8px;border-radius:50%;background:#4ac47f;display:inline-block;box-shadow:0 0 0 4px rgba(74,196,127,.18)}

@media (max-width:800px){
  nav.links{display:none}
  .wrap,.nav-inner{padding-left:22px;padding-right:22px}
  .hero{flex-direction:column;align-items:flex-start;gap:22px}
  .hero h1{font-size:28px}
  .hero-media{max-width:100%;width:100%}
  .grid-2{grid-template-columns:1fr}
  .stat-strip{grid-template-columns:1fr 1fr}
  .flow{grid-template-columns:1fr}
  .flow .arrow{transform:rotate(90deg);justify-self:center}
}
