/* nutshell-page — smisco.biz/nut · build 1.1FSwRD
   A smisco.biz portfolio / case-study page touring Nutshell as a built product.
   Part of the smisco house style (dark #0a0c11 + gold #ffd166, Syne / Familjen
   Grotesk / IBM Plex Mono). Chrome + tokens mirror smisco.biz's site-level pages;
   the page-specific landing pieces live below the base. */

:root{
  --bg:#0a0c11; --bg2:#0e121a; --panel:#12161f; --raised:#171c28;
  --ink:#e9ecf2; --dim:#9aa6b8; --faint:#5e6a7c;
  --line:rgba(255,255,255,.09); --line2:rgba(255,255,255,.05);
  --gold:#ffd166; --gold2:#f6b73c; --cool:#5fb0ff;
  --maxw:1100px;
  --display:"Syne","Familjen Grotesk",ui-sans-serif,system-ui,sans-serif;
  --body:"Familjen Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; min-height:100vh; display:flex; flex-direction:column;
  background:var(--bg); color:var(--ink);
  font-family:var(--body); font-size:17px; line-height:1.65; letter-spacing:.005em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
/* atmosphere: faint dot grid + two soft glows (gold + cool) — the house signature */
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(900px 540px at 82% -10%, rgba(255,209,102,.10), transparent 60%),
    radial-gradient(820px 620px at 2% 0%, rgba(95,176,255,.09), transparent 60%),
    radial-gradient(rgba(255,255,255,.028) 1px, transparent 1px);
  background-size:auto, auto, 30px 30px;
}
.wrap{width:100%; max-width:var(--maxw); margin:0 auto; padding:0 28px; position:relative; z-index:1}
a{color:inherit; text-decoration:none}
.mono{font-family:var(--mono)}
.gold{color:var(--gold)}
::selection{background:rgba(255,209,102,.28); color:#fff}

/* ---- topbar ---- */
.topbar{
  position:sticky; top:0; z-index:30; backdrop-filter:blur(10px);
  background:linear-gradient(to bottom, rgba(10,12,17,.86), rgba(10,12,17,.5));
  border-bottom:1px solid var(--line2);
}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:62px; gap:18px}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--display); font-weight:800; font-size:20px; letter-spacing:-.01em}
.brand svg{display:block; flex:none}
.brand .tag{font-family:var(--mono); font-weight:400; font-size:11.5px; color:var(--faint);
  border:1px solid var(--line); border-radius:999px; padding:3px 9px; letter-spacing:.04em}
.topnav{display:flex; gap:22px; font-family:var(--mono); font-size:13px; color:var(--dim); align-items:center}
.topnav a{transition:color .16s ease}
.topnav a:hover{color:var(--ink)}
.topnav .home:hover{color:var(--gold)}
@media(max-width:680px){ .topnav .hide-sm{display:none} }
@media(max-width:420px){ .topnav{gap:16px; font-size:12px} .brand{font-size:18px} }

/* ---- buttons ---- */
.btn{
  display:inline-flex; align-items:center; gap:9px; cursor:pointer;
  font-family:var(--mono); font-size:14px; font-weight:500;
  border:1px solid transparent; border-radius:11px; padding:12px 20px;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease, border-color .16s ease, color .16s ease;
}
.btn .ar{transition:transform .18s ease}
.btn:hover .ar{transform:translateX(3px)}
.btn-primary{background:linear-gradient(180deg,var(--gold),var(--gold2)); color:#0a0c11; font-weight:600; border-color:rgba(255,209,102,.55)}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 20px 44px -22px rgba(255,209,102,.6); filter:brightness(1.04)}
.btn-ghost{border-color:var(--line); color:var(--ink)}
.btn-ghost:hover{border-color:var(--gold); color:var(--gold)}
.btn:focus-visible{outline:2px solid var(--gold); outline-offset:3px}

/* ---- shared section bits ---- */
main{flex:1 0 auto}
.eyebrow{
  font-family:var(--mono); font-size:12.5px; letter-spacing:.30em; text-transform:uppercase;
  color:var(--gold); margin:0 0 18px; display:inline-flex; align-items:center; gap:11px;
}
.eyebrow::before{content:""; width:26px; height:1px; background:var(--gold); opacity:.6}
.band{padding:clamp(48px,7vw,88px) 0; border-top:1px solid var(--line2); position:relative; z-index:1}
.sec-head{max-width:680px; margin:0 0 40px}
.sec-head h2{font-family:var(--display); font-weight:800; font-size:clamp(28px,4vw,42px);
  letter-spacing:-.025em; line-height:1.06; margin:14px 0 0}
.sec-head p{color:var(--dim); margin:16px 0 0; max-width:62ch}
.sec-head p b{color:var(--ink); font-weight:600}

/* ---- hero ---- */
.hero{display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(34px,5vw,60px); align-items:center;
  padding:clamp(44px,7vw,96px) 0 clamp(30px,5vw,58px)}
.hero-copy,.hero-media{min-width:0}
.hl{font-family:var(--display); font-weight:800; font-size:clamp(38px,5.4vw,62px);
  letter-spacing:-.03em; line-height:1.02; margin:0}
.hl .g{color:var(--gold)}
.hero .lede{font-size:clamp(17px,1.6vw,20px); color:var(--dim); max-width:42ch; margin:22px 0 0}
.hero .lede b{color:var(--ink); font-weight:600}
.hero-actions{display:flex; gap:14px; flex-wrap:wrap; margin:30px 0 0}
.hero-meta{display:flex; gap:10px; flex-wrap:wrap; margin:26px 0 0; font-family:var(--mono); font-size:12.5px; color:var(--dim)}
.chip{border:1px solid var(--line); border-radius:999px; padding:5px 13px; display:inline-flex; gap:8px; align-items:center; white-space:nowrap}
.chip::before{content:""; width:6px; height:6px; border-radius:50%; background:var(--gold)}

/* ---- the "screen" frame holding a mock nutshell (echoes the house terminal frame) ---- */
.screen{border:1px solid var(--line); border-radius:16px; background:var(--panel); overflow:hidden;
  max-width:380px; margin:0 auto; box-shadow:0 30px 66px -30px rgba(0,0,0,.8)}
.screen-bar{display:flex; align-items:center; gap:7px; padding:11px 14px; border-bottom:1px solid var(--line2); background:rgba(255,255,255,.02)}
.screen-bar i{width:11px; height:11px; border-radius:50%; background:var(--faint); opacity:.5}
.screen-bar .url{margin-left:auto; font-family:var(--mono); font-size:11px; color:var(--faint)}
.nut{padding:18px}
.nut-hero{display:flex; align-items:center; gap:12px}
.nut-av{width:54px; height:54px; border-radius:50%; flex:0 0 auto; display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:800; font-size:21px; color:#0a0c11; background:linear-gradient(180deg,var(--gold),var(--gold2))}
.nut-nm{font-family:var(--display); font-weight:700; font-size:18px; letter-spacing:-.01em}
.nut-h{font-family:var(--mono); font-size:12px; color:var(--faint)}
.nut-bio{font-size:13px; color:var(--dim); margin-top:9px; line-height:1.5}
.nut-sec{margin-top:15px; padding-top:13px; border-top:1px solid var(--line2)}
.nut-lbl{display:flex; align-items:center; justify-content:space-between; font-family:var(--mono);
  font-size:10px; letter-spacing:.10em; text-transform:uppercase; color:var(--faint); margin-bottom:6px}
.nut-vis{font-family:var(--mono); font-size:10px; color:var(--gold); border:1px solid rgba(255,209,102,.4); border-radius:999px; padding:1px 8px; text-transform:none; letter-spacing:.02em}
.nut-row{display:flex; justify-content:space-between; gap:10px; font-size:12.5px; padding:5px 0}
.nut-row .k{color:var(--dim)} .nut-row .v{color:var(--ink); font-weight:500; text-align:right}

/* ---- cards (how it's built / what it is) ---- */
.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:18px}
.card{border:1px solid var(--line); border-radius:16px; padding:24px; background:linear-gradient(180deg,var(--raised),var(--panel))}
.card .n{font-family:var(--mono); font-size:12px; color:var(--gold)}
.card h3{font-family:var(--display); font-weight:700; font-size:18.5px; letter-spacing:-.01em; margin:9px 0 8px}
.card p{color:var(--dim); font-size:14.5px; margin:0; line-height:1.6}
.card p .mono{color:var(--ink); font-family:var(--mono); font-size:13px}

/* ---- capability pills ---- */
.pills{display:flex; flex-wrap:wrap; gap:10px}
.pill{font-family:var(--mono); font-size:13.5px; color:var(--ink);
  border:1px solid var(--line); border-radius:999px; padding:8px 15px; background:var(--panel)}
.pill b{color:var(--gold); font-weight:600}

/* ---- privacy diagram: the 4-level gradient ---- */
.levels{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:6px}
.lvl{border:1px solid var(--line); border-radius:14px; padding:18px 16px; background:var(--panel); text-align:center}
.lvl .ic{width:34px; height:34px; margin:0 auto 12px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--gold); background:rgba(255,209,102,.10); border:1px solid rgba(255,209,102,.25)}
.lvl .ic svg{width:18px; height:18px}
.lvl .nm{font-family:var(--display); font-weight:700; font-size:15px}
.lvl .ds{color:var(--dim); font-size:12.5px; margin-top:5px; line-height:1.5}
.scale{height:6px; border-radius:999px; margin:22px 0 5px;
  background:linear-gradient(90deg, var(--gold), rgba(95,176,255,.5))}
.scale-ends{display:flex; justify-content:space-between; font-family:var(--mono); font-size:11.5px; color:var(--faint)}
.gates{display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:16px; margin-top:34px}
.gate{border:1px solid var(--line); border-radius:14px; padding:20px; background:linear-gradient(180deg,var(--raised),var(--panel))}
.gate .g{font-family:var(--mono); font-size:12px; color:var(--gold)}
.gate h4{font-family:var(--display); font-weight:700; font-size:16px; margin:8px 0 6px}
.gate p{color:var(--dim); font-size:14px; margin:0; line-height:1.55}

/* ---- pull statement (no social) ---- */
.pull{text-align:center; max-width:760px; margin:0 auto}
.pull h2{font-family:var(--display); font-weight:800; font-size:clamp(28px,4.4vw,46px); letter-spacing:-.03em; line-height:1.06; margin:0}
.pull h2 .g{color:var(--gold)}
.pull p{color:var(--dim); font-size:clamp(16px,1.5vw,19px); margin:20px 0 0}

/* ---- CTA band ---- */
.cta{border:1px solid var(--line); border-radius:22px; padding:clamp(34px,5vw,56px);
  background:linear-gradient(180deg,var(--raised),var(--panel)); text-align:center; position:relative; overflow:hidden}
.cta::before{content:""; position:absolute; inset:0; pointer-events:none;
  background:radial-gradient(600px 280px at 50% -30%, rgba(255,209,102,.12), transparent 70%)}
.cta h2{font-family:var(--display); font-weight:800; font-size:clamp(26px,3.6vw,40px); letter-spacing:-.025em; margin:0; position:relative}
.cta p{color:var(--dim); margin:16px auto 0; max-width:52ch; position:relative}
.cta-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; position:relative}

/* ---- footer ---- */
footer{flex-shrink:0; border-top:1px solid var(--line2); padding:30px 0 46px; position:relative; z-index:1}
.foot{display:flex; flex-wrap:wrap; gap:14px 22px; align-items:center; justify-content:space-between; font-family:var(--mono); font-size:13px; color:var(--faint)}
.foot a{color:var(--dim)}
.foot a:hover{color:var(--gold)}
.foot .v{color:var(--gold)}

/* ---- reveal ---- */
.rise{opacity:0; transform:translateY(16px); animation:rise .7s cubic-bezier(.2,.7,.2,1) forwards}
.d1{animation-delay:.04s} .d2{animation-delay:.11s} .d3{animation-delay:.18s} .d4{animation-delay:.25s}
@keyframes rise{to{opacity:1; transform:none}}

@media(max-width:880px){ .hero{grid-template-columns:1fr; gap:36px} .hero-media{order:-1} .levels{grid-template-columns:repeat(2,1fr)} }
@media(max-width:560px){ .wrap{padding:0 18px} .band{padding:clamp(42px,9vw,76px) 0} }
@media(prefers-reduced-motion:reduce){ .rise{animation:none; opacity:1; transform:none} html{scroll-behavior:auto} .btn{transition:none} }
