/* Redesign layer over styles.css. styles.css still carries the lab, terminal, modals and game. */
:root{
  --paper:#f2f4f6; --ink:#14212f; --muted:#4d5b6b; --line:#d8dee5;
  --link:#1d5f5a; --link-hover:#134541; --finding:#e3b23c; --finding-wash:#fbf0d2; --card:#ffffff;
  --rust:var(--link); --olive:var(--link);
  --sans:'Schibsted Grotesk',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif; --serif:var(--sans);
}
body{font:400 1.0625rem/1.65 var(--sans);background:var(--paper);color:var(--ink)}
h1,h2,h3{font-family:var(--sans)}
h2{font:650 clamp(1.9rem,3.6vw,2.75rem)/1.12 var(--sans);letter-spacing:-.03em;max-width:22ch}
h3{font-weight:600;letter-spacing:-.015em}
:focus-visible{outline:2px solid var(--link);outline-offset:4px}

/* Top bar */
.topbar{border-bottom:0;padding:28px 0}
.brand{font:700 1.5rem/1 var(--sans);letter-spacing:-.04em;font-style:normal}
.brand span{color:var(--link)}
.nav{gap:28px}
.nav a{font-size:.9375rem;color:var(--ink)}
.nav a:hover{color:var(--link)}

/* Buttons and links */
.btn{min-height:48px;padding:12px 22px;border-radius:6px;font:600 .9375rem var(--sans);letter-spacing:0}
.btn.primary{background:var(--link);border-color:var(--link);color:#fff}
.btn.primary:hover{background:var(--link-hover);border-color:var(--link-hover)}
.text-link{color:var(--link);font-size:.9375rem;font-weight:500;text-underline-offset:5px}

/* Hero */
.hero{padding:72px 0 96px;grid-template-columns:minmax(0,1fr) minmax(0,460px);gap:56px;align-items:start}
.hero h1{font:700 clamp(3.6rem,7.4vw,6.4rem)/.98 var(--sans);letter-spacing:-.05em;margin:0 0 0 -4px}
.name-dot{color:var(--link)}
.hero-role{font:500 clamp(1.4rem,2.4vw,1.85rem)/1.25 var(--sans);letter-spacing:-.02em;margin:22px 0 26px;color:var(--ink)}
.hero-copy{font-size:1.125rem;line-height:1.7;max-width:46ch;color:var(--muted)}
.hero-actions{margin-top:32px;gap:14px 28px}
.status{margin:40px 0 0;font-size:.9375rem;color:var(--muted);cursor:default}

/* The alert card: the one bold element on the page */
.case{position:relative;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 1px 0 var(--line),0 18px 40px -24px #14212f40;overflow:hidden;margin-top:12px}
.case-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 22px;border-bottom:1px solid var(--line);font-size:.875rem;font-weight:600}
.case-head span:first-child::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--finding);margin-right:9px;vertical-align:1px}
.case-hud{font:500 .8125rem var(--mono);color:var(--muted);font-variant-numeric:tabular-nums}
.case-body{padding:22px 22px 24px;transition:opacity .7s ease}
.case-title{font:600 1.25rem/1.3 var(--sans);letter-spacing:-.015em;max-width:none;margin:0 0 18px}
.case-log{list-style:none;margin:0 0 22px;padding:0;font:.8125rem/1.5 var(--mono);color:var(--muted);border-top:1px solid var(--line)}
.case-log li{display:grid;grid-template-columns:40px 88px 1fr;gap:10px;padding:9px 8px;border-bottom:1px solid var(--line)}
.case-log .is-finding{color:var(--ink);background:var(--finding-wash);box-shadow:inset 3px 0 0 var(--finding)}
.case-question{font-weight:600;margin:0 0 10px}
.case-choices{display:grid;gap:8px}
.case-choice{text-align:left;font:500 .9375rem/1.4 var(--sans);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-height:48px;transition:border-color .15s,background .15s}
.case-choice:hover:not(:disabled){border-color:var(--link);background:#fff}
.case-choice:disabled{opacity:1;cursor:default;color:var(--muted)}
.case-choice.is-correct{border-color:var(--link);background:#e5f0ee;color:var(--ink)}
.case-choice.is-wrong{border-color:#c9cfd6;text-decoration:line-through;text-decoration-color:#9aa5b1}
.case-feedback:not(:empty){margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.case-feedback p{font-size:.9375rem;line-height:1.6;color:var(--ink);margin:0}
.case-tools{display:flex;flex-wrap:wrap;gap:0 22px;margin:6px 0 0!important}
.case-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transition:opacity .8s ease}
.case.is-filtering .case-body{opacity:0}
.case.is-revealed .case-canvas{opacity:0}
.case.is-revealed .is-finding{animation:finding-in 1.2s ease-out}
@keyframes finding-in{from{background:#f6d27a}to{background:var(--finding-wash)}}

/* Sections */
.section{padding:96px 0;border-bottom:1px solid var(--line)}
.section-head{align-items:baseline;margin-bottom:36px}
.section-head p{max-width:60ch}

/* Expertise: knowledge areas, deliberately not tied to any role */
.expertise-section h2{margin-bottom:40px}
.expertise-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 48px;margin:0}
.expertise-list>div{border-top:2px solid var(--ink);padding-top:16px}
.expertise-list dt{font-size:1.1875rem;font-weight:650;letter-spacing:-.015em;margin-bottom:8px}
.expertise-list dd{margin:0;color:var(--muted);font-size:1rem;line-height:1.6}

/* Experience: the one real sequence, so it gets the timeline */
.experience-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:64px;align-items:start}
.experience-intro{position:sticky;top:32px}
.experience-intro h2{margin-bottom:22px}
.experience-intro p{color:var(--muted);max-width:44ch}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:5px;top:12px;bottom:12px;width:1px;background:var(--line)}
.timeline li{position:relative;padding:0 0 26px 34px}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:0;top:8px;width:11px;height:11px;border-radius:50%;background:var(--paper);border:1.5px solid #9aa7b4}
.timeline li.is-current::before{background:var(--link);border-color:var(--link);box-shadow:0 0 0 4px #1d5f5a22}
.timeline li.is-current::before{top:6px}
.role-status{font:600 .875rem/1.4 var(--sans);letter-spacing:0;text-transform:none;color:var(--link);margin:0 0 4px}
.timeline h3{font-size:1.1875rem;margin:0 0 8px}
.timeline p{color:var(--muted);margin:0;max-width:60ch;font-size:1rem}
.timeline .tags{display:block;margin-top:10px;font:500 .875rem var(--sans);color:var(--link)}
.timeline-more{margin:28px 0 0 34px}

/* Apps share the writing list; they open in the same tab, so no ↗ */
.post-list.app-feed a::after{content:none}
.app-kind{margin-left:12px;font-size:.9375rem;font-weight:500;color:var(--link)}

/* Lab */
.lab-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;border-bottom:0;padding-bottom:32px}
.lab-intro p{color:var(--muted);max-width:52ch;margin:16px 0 0}
.lab-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.lab-content{margin-top:0;border-radius:12px}
.lab-content h2{font:600 1.6rem/1.2 var(--sans)}
.lab-content + .section{border-top:0}

/* Certifications */
.credentials-section{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:64px}
.credential-list strong{font-weight:600}
.credential-list span{font:500 .9375rem var(--sans);color:var(--muted);font-variant-numeric:tabular-nums}
.credential-list .learning-note{font-size:.9375rem!important;color:var(--muted)}

/* Writing */
.post-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.post-list li{padding:22px 0;border-bottom:1px solid var(--line)}
.post-list a{font-size:1.25rem;font-weight:600;letter-spacing:-.015em;text-decoration:none;color:var(--ink)}
.post-list a::after{content:" ↗";font-weight:400;color:var(--link)}
.post-list a:hover{color:var(--link);text-decoration:underline}
.post-list p{margin:6px 0 0;color:var(--muted);max-width:68ch}

/* Contact and footer */
.contact-section{text-align:left;padding:96px 0;border-bottom:0;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.contact-section h2{margin:0}
.footer{border-top:1px solid var(--line);font-size:.875rem;align-items:flex-start;flex-wrap:wrap}
.footer .brand{font-size:1.25rem}
.storage-note{max-width:46ch}
.storage-note summary{cursor:pointer;color:var(--muted)}
.storage-note p{margin:10px 0 0;color:var(--muted);font-size:.8125rem;line-height:1.6}

@media(max-width:950px){
  .hero{grid-template-columns:1fr;gap:40px;padding-bottom:72px}
  .case{max-width:560px}
  .experience-section,.credentials-section{grid-template-columns:1fr;gap:40px}
  .experience-intro{position:static}
  .expertise-list{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  body{font-size:1rem}
  .hero{display:block;padding:36px 0 56px}
  .hero h1{font-size:clamp(3.2rem,15vw,4.4rem)}
  .hero-copy{font-size:1.0625rem}
  .case{margin-top:40px}
  .case-body{padding:18px}
  .case-head{padding:12px 18px}
  .case-log li{grid-template-columns:40px 1fr;gap:4px 10px}
  .case-log li>:nth-child(2){display:none}
  .section{padding:64px 0}
  .timeline li{padding-left:28px}
  .timeline-more{margin-left:28px}
  .expertise-list{grid-template-columns:1fr;gap:28px}
  .app-kind{display:block;margin:2px 0 0}
  .lab-intro{display:block}
  .lab-actions{margin-top:24px}
  .lab-content{padding:0 18px 12px;margin:0 -8px}
  .contact-section{padding:64px 0}
}
@media(prefers-reduced-motion:reduce){.case-body,.case-canvas{transition:none}.case.is-revealed .is-finding{animation:none}}
@media print{.case,.lab-intro,.lab-content,.hero-actions{display:none!important}.experience-section{display:block}.timeline li{break-inside:avoid}}
