:root{--bg:#fafbfd;--surface:#fff;--surface-tint:#f2f5fb;--line:#e4e9f2;--ink:#111726;--muted:#5c6678;--accent:#a6192e;--accent-deep:#7a1220;--accent-tint:#fbe9eb;--font-display:"Schibsted Grotesk","Instrument Sans",sans-serif;--font-body:"Instrument Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:3px}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.15;letter-spacing:-.015em}.muted{color:var(--muted)}.footer-inner,.header-inner,.hero-inner,.section,.section-max{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px}.detail{max-width:780px;margin:0 auto;padding-left:40px;padding-right:40px}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:10;padding-top:14px;padding-bottom:14px;background:var(--accent);border-bottom:1px solid var(--accent-deep)}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:16px}.wordmark{font-family:var(--font-display);font-weight:700;font-size:1.08rem;color:#fff}.site-nav{display:flex;align-items:center;gap:26px;font-size:.94rem;font-weight:500;color:hsla(0,0%,100%,.88)}.site-nav a:not(.btn):hover{color:#fff}.btn{display:inline-block;padding:12px 22px;border-radius:8px;font-family:var(--font-body);font-size:.94rem;font-weight:600;border:1px solid var(--line);background:var(--surface);transition:transform .15s ease,background .15s ease,border-color .15s ease,color .15s ease}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-deep);border-color:var(--accent-deep)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-small{padding:8px 16px;font-size:.86rem}.hero{border-bottom:1px solid var(--line);background:var(--surface)}.hero-inner{padding-top:88px;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1fr) 360px;grid-gap:64px;gap:64px;align-items:center}.eyebrow{font-family:var(--font-mono);font-size:1rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}.hero h1{font-size:clamp(2.4rem,4.4vw,3.7rem);font-weight:700;line-height:1.05;letter-spacing:-.025em;max-width:none;text-wrap:balance}.hero-sub{margin-top:22px;max-width:54ch;color:var(--muted);font-size:1.08rem}.hero-actions{margin-top:32px;display:flex;gap:14px;flex-wrap:wrap}.hero-photo{justify-self:end}.hero-photo img{display:block;width:360px;height:360px;border-radius:20px;object-fit:cover;border:1px solid var(--line);box-shadow:0 18px 40px -22px rgba(166,25,46,.35)}.section{padding-top:84px;padding-bottom:84px}.section-alt{max-width:none;padding-left:0;padding-right:0;background:var(--surface-tint);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-label{font-family:var(--font-mono);font-size:1rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:12px}.section h2,.section-max h2{font-size:clamp(1.7rem,3.4vw,2.3rem)}.section-intro{margin-top:16px;margin-bottom:44px;max-width:62ch;color:var(--muted)}.timeline{list-style:none}.timeline-item{display:grid;grid-template-columns:150px minmax(0,1fr);grid-gap:28px;gap:28px;padding:28px 0;border-top:1px solid var(--line)}.timeline-item:last-child{border-bottom:1px solid var(--line)}.timeline-left{display:flex;flex-direction:column;align-items:center;gap:10px}.timeline-period{font-family:var(--font-mono);font-size:.8rem;letter-spacing:.05em;color:var(--muted);padding-top:4px;text-align:center}.timeline-body h3{font-size:1.16rem}.timeline-org{color:var(--accent);font-weight:500;font-size:.92rem;margin:4px 0 10px}.timeline-body p{max-width:72ch}.timeline-points{margin-top:12px;padding-left:20px;color:var(--muted)}.timeline-logo{justify-self:end;align-self:start;width:132px;height:76px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;box-sizing:border-box}.timeline-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}.timeline-points li{margin-top:4px}.skills-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:18px;gap:18px}.skill-card{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:22px}.skill-card h3{font-size:1.02rem;margin-bottom:8px}.skill-card p{font-size:.9rem;color:var(--muted)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}.filter{font-family:var(--font-body);font-size:.88rem;font-weight:500;padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease}.filter:hover{border-color:var(--accent);color:var(--accent)}.filter-active{background:var(--accent);border-color:var(--accent);color:#fff}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:22px;gap:22px}.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.card:hover{transform:translateY(-4px);border-color:#e0b3ba;box-shadow:0 22px 44px -26px rgba(17,23,38,.25)}.card-cover{position:relative;aspect-ratio:400/220;border-bottom:1px solid var(--line)}.card-cover:after{content:"";position:absolute;left:0;right:0;bottom:0;height:40%;background:linear-gradient(0deg,rgba(0,0,0,.45),transparent);pointer-events:none;z-index:1}.card-metric{position:absolute;z-index:2;left:14px;bottom:14px;background:var(--ink);color:#fff;font-family:var(--font-display);font-weight:700;font-size:1.05rem;padding:6px 12px;border-radius:8px}.card-body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1 1}.card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.card-category{font-size:.72rem;letter-spacing:.07em;text-transform:uppercase;color:var(--accent)}.card-category,.status{font-family:var(--font-mono)}.status{font-size:.7rem;letter-spacing:.04em;padding:3px 9px;border-radius:999px}.status-done{color:#0d7a52;background:#e3f4ec}.status-wip{color:#92610a;background:#faf0da}.card h3{font-size:1.12rem;margin-bottom:8px}.card-body>p{font-size:.9rem;color:var(--muted);flex:1 1}.card-stack{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip{font-family:var(--font-mono);font-size:.72rem;padding:4px 10px;border-radius:5px;background:var(--accent-tint);color:var(--accent-deep)}.section-contact{max-width:none;padding-left:0;padding-right:0;background:#4b515c;border-top:1px solid #3a3f48;border-bottom:1px solid #3a3f48}.section-contact .section-label{color:#f0b8c2}.section-contact h2{color:#fff}.section-contact .section-intro{color:hsla(0,0%,100%,.72)}.contact-block{text-align:left}.contact-block .section-intro{margin-bottom:28px}.detail{padding-top:56px;padding-bottom:96px}.back{display:inline-block;color:var(--muted);font-size:.92rem;font-weight:500;margin-bottom:40px}.back:hover{color:var(--accent)}.detail-eyebrow{display:flex;gap:14px;align-items:center;margin-bottom:14px}.detail h1{font-size:clamp(1.8rem,4.4vw,2.7rem);font-weight:700}.detail-summary{margin-top:18px;color:var(--muted);font-size:1.05rem}.detail-cover{margin-top:36px;border:1px solid var(--line);border-radius:12px;overflow:hidden;aspect-ratio:400/160}.detail-metric{margin:32px 0 8px;padding:24px 26px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:10px}.detail-metric-value{font-family:var(--font-display);font-size:2.2rem;font-weight:700;color:var(--accent);line-height:1.1}.detail-metric-label{color:var(--muted);margin-top:6px}.detail-section{margin-top:44px}.detail-section .section-label{margin-bottom:14px}.detail-list{list-style:none}.detail-list li{padding:12px 0 12px 24px;border-bottom:1px solid var(--line);position:relative}.detail-list li:before{content:"▸";position:absolute;left:2px;color:var(--accent)}.site-footer{border-top:1px solid var(--accent-deep);background:var(--accent);padding-top:30px;padding-bottom:30px}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:.9rem}.site-footer .muted{color:hsla(0,0%,100%,.75)}.footer-links{display:flex;gap:22px;flex-wrap:wrap;font-weight:500;color:hsla(0,0%,100%,.88)}.footer-links a:hover{color:#fff}@media (min-width:1600px){.footer-inner,.header-inner,.hero-inner,.section,.section-max{max-width:1360px}}@media (max-width:860px){.detail,.footer-inner,.header-inner,.hero-inner,.section,.section-max{padding-left:24px;padding-right:24px}.section-alt,.section-contact{padding-left:0;padding-right:0}.hero-inner{grid-template-columns:1fr;gap:36px;padding-top:60px;padding-bottom:60px}.hero-photo{justify-self:start}.timeline-item{grid-template-columns:1fr;gap:8px}.timeline-logo{order:-1;justify-self:start;width:104px;height:60px}.section{padding-top:60px;padding-bottom:60px}.site-header{padding-top:12px;padding-bottom:12px}.site-nav{gap:16px;font-size:.88rem}}@media (prefers-reduced-motion:reduce){.btn,.card,.filter{transition:none}html{scroll-behavior:auto}}