:root{--paper:#f4f3ef;--ink:#111;--muted:#696862;--line:#cbc9c1;--blue:#1648ff;--dark:#151515;--max:1240px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:72px}body{font-family:Manrope,Arial,sans-serif;background:var(--paper);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--blue)}img{display:block;max-width:100%}.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}.skip-link{position:fixed;left:-999px}.skip-link:focus{left:16px;top:16px;background:#fff;padding:12px;z-index:999}header{position:sticky;top:0;z-index:10;background:rgba(244,243,239,.94);border-bottom:1px solid var(--ink);backdrop-filter:blur(8px)}.nav{height:72px;display:flex;align-items:center;justify-content:space-between}.wordmark{font-weight:800;letter-spacing:-.04em}.nav-links{display:flex;align-items:center;gap:28px;list-style:none;font:500 13px DM Mono,monospace}.resume-link{border-bottom:1px solid}.nav-toggle{display:none;border:0;background:none}.hero{border-bottom:1px solid var(--ink);padding:100px 0 72px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.6fr);gap:80px;align-items:end}.kicker,.number,.work-meta{font:500 11px DM Mono,monospace;letter-spacing:.08em}.kicker{color:var(--blue);margin-bottom:24px}.hero h1{font-size:clamp(48px,7.1vw,102px);line-height:.94;letter-spacing:-.07em;font-weight:600;max-width:950px}.hero-side{display:grid;gap:24px}.hero-side img{width:148px;height:148px;object-fit:cover;filter:grayscale(1);border:1px solid var(--ink)}.hero-side p{font-size:17px}.hero-links{display:grid;gap:8px;font:500 12px DM Mono,monospace}.block{padding:112px 0;border-bottom:1px solid var(--ink)}.section-title{display:grid;grid-template-columns:70px minmax(260px,.8fr) minmax(260px,.7fr);gap:32px;margin-bottom:72px;align-items:start}.section-title h2,.contact h2{font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:-.055em}.section-title>p:last-child{color:var(--muted);max-width:500px}.number{color:var(--blue)}.work-list{border-top:1px solid}.work-list article{display:grid;grid-template-columns:190px minmax(220px,.6fr) minmax(300px,1fr) 190px;gap:28px;align-items:start;padding:38px 0;border-bottom:1px solid}.work-meta{display:grid;gap:8px;color:var(--muted)}.work-list h3{font-size:26px;line-height:1.1;letter-spacing:-.04em}.work-list article>p{color:#3e3d39}.tags{display:flex;flex-wrap:wrap;gap:6px}.tags span{font:400 10px DM Mono,monospace;border:1px solid var(--line);padding:5px 8px}.work-list article>a{grid-column:4;font:500 11px DM Mono,monospace;color:var(--blue)}details{margin-top:28px;border:1px solid}summary{cursor:pointer;display:flex;justify-content:space-between;padding:20px 24px;font:500 12px DM Mono,monospace;list-style:none}.more-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid}.more-grid a{display:grid;padding:24px;border-right:1px solid;border-bottom:1px solid}.more-grid small{color:var(--muted);margin-top:4px}.inverted{background:var(--dark);color:#f4f3ef}.inverted .section-title>p:last-child,.muted-light{color:#a7a7a1}.record-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#454545;border:1px solid #454545}.record-grid>div{background:var(--dark);padding:34px}.record-grid h3{font:500 12px DM Mono,monospace;color:#8fa5ff;margin-bottom:28px}.record-grid p+*{margin-top:16px}.record-grid ul{list-style:none}.record-grid li{padding:12px 0;border-bottom:1px solid #393939}.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}.about .section-title{display:block;margin:0}.about .number{margin-bottom:24px}.about-copy{max-width:700px;display:grid;gap:24px}.about-copy .large{font-size:clamp(25px,3vw,38px);line-height:1.22;letter-spacing:-.04em}.about-copy p:not(.large){color:var(--muted)}.contact{padding:90px 0;background:var(--blue);color:#fff}.contact .kicker{color:#fff}.contact-grid{display:grid;grid-template-columns:1fr auto;gap:80px;align-items:end}.contact-links{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 30px;font:500 12px DM Mono,monospace}.contact a:hover{color:#fff;text-decoration:underline}footer{background:var(--dark);color:#aaa;padding:28px 0}.footer{display:flex;justify-content:space-between;font:400 10px DM Mono,monospace}.back-to-top{position:fixed;right:20px;bottom:20px;width:42px;height:42px;background:var(--paper);border:1px solid;opacity:0;pointer-events:none}.back-to-top.visible{opacity:1;pointer-events:auto}[data-reveal]{opacity:1}
@media(max-width:900px){.nav-toggle{display:block}.nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);border-bottom:1px solid;padding:20px 24px;flex-direction:column;align-items:flex-start}.nav-links.open{display:flex}.hero{padding:64px 0}.hero-grid,.section-title,.about,.contact-grid{grid-template-columns:1fr;gap:40px}.hero-side{grid-template-columns:110px 1fr}.hero-side img{width:110px;height:110px}.hero-links{grid-column:1/-1}.work-list article{grid-template-columns:130px 1fr;gap:20px}.work-list article>p,.tags{grid-column:2}.work-list article>a{grid-column:2}.record-grid{grid-template-columns:1fr}.more-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.wrap{width:min(calc(100% - 28px),var(--max))}.nav{height:60px}.nav-links{top:60px}.hero h1{font-size:48px}.hero-side{grid-template-columns:1fr}.block{padding:72px 0}.section-title{margin-bottom:44px}.work-list article{grid-template-columns:1fr;padding:30px 0}.work-list article>*{grid-column:1!important}.more-grid{grid-template-columns:1fr}.contact-links{grid-template-columns:1fr}.footer{flex-direction:column;gap:10px}.hero-side img{width:96px;height:96px}}
/* Evidence and current-bets layer */
.proof-rail{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);margin-top:72px}
.proof-rail span{display:grid;gap:3px;padding:20px 20px 0 0;font:400 10px DM Mono,monospace;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.proof-rail b{font:700 15px Manrope,sans-serif;color:var(--ink);text-transform:none;letter-spacing:-.02em}
.work-list article>p b{color:var(--ink);font-weight:700}
.bets{background:#deddd7}
.bets-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--ink)}
.bets-grid article{min-height:470px;padding:32px;display:flex;flex-direction:column;border-right:1px solid var(--ink)}
.bets-grid article:last-child{border-right:0}
.bet-top{display:flex;justify-content:space-between;font:500 10px DM Mono,monospace;color:var(--blue)}
.bets-grid h3{font-size:clamp(30px,3vw,46px);letter-spacing:-.055em;margin:70px 0 22px}
.bets-grid p{color:#45443f}
.bets-grid ul{list-style:none;margin-top:auto;padding-top:38px;font:400 11px DM Mono,monospace}
.bets-grid li{border-top:1px solid #b7b5ad;padding:9px 0}
@media(max-width:900px){.proof-rail{grid-template-columns:repeat(2,1fr)}.bets-grid{grid-template-columns:1fr}.bets-grid article{min-height:0;border-right:0;border-bottom:1px solid;padding:28px}.bets-grid article:last-child{border-bottom:0}.bets-grid h3{margin:45px 0 18px}.bets-grid ul{margin-top:30px;padding-top:0}}
@media(max-width:600px){.proof-rail{grid-template-columns:1fr 1fr;margin-top:48px}.proof-rail span{padding-right:12px}.proof-rail b{font-size:13px}}

/* Navigation visibility and intermediate-width overflow fixes */
.nav-toggle{width:42px;height:42px;align-items:center;justify-content:center;cursor:pointer}
.hamburger,.hamburger::before,.hamburger::after{display:block;width:20px;height:1.5px;background:var(--ink);position:relative;transition:transform .2s,opacity .2s}
.hamburger::before,.hamburger::after{content:"";position:absolute;left:0}
.hamburger::before{top:-6px}.hamburger::after{top:6px}
.nav-toggle.is-open .hamburger{background:transparent}
.nav-toggle.is-open .hamburger::before{top:0;transform:rotate(45deg)}
.nav-toggle.is-open .hamburger::after{top:0;transform:rotate(-45deg)}
@media(max-width:1100px) and (min-width:901px){.work-list article{grid-template-columns:140px minmax(180px,.55fr) minmax(260px,1fr);gap:22px}.work-list article>a{grid-column:2}.tags{grid-column:3}}
/* Keep the mobile toggle at the right edge despite the empty nav flex item. */
@media(max-width:900px){.nav-toggle{display:flex}.wrap.nav>.nav-toggle{margin-left:auto;flex-shrink:0}}
