:root{--bg: #fffaf3;--panel: #fffdf8;--ink: #191918;--muted: #8e857d;--muted-strong: #68605a;--line: #e7ddd2;--line-soft: #f0e9e1;--accent: #ef4828;--accent-soft: #fff0e9;--accent-line: #f4bdac;--shadow: 0 1px 2px rgba(70, 44, 29, .05);--shadow-lift: 0 6px 20px -10px rgba(70, 44, 29, .16);--underline: #cfc4b8;--ease: cubic-bezier(.2, .7, .3, 1);color:var(--ink);font-family:Helvetica Neue,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;line-height:1.5;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{background:radial-gradient(circle at 60% 8%,rgba(239,72,40,.026),transparent 34rem),var(--bg);margin:0;min-width:320px;min-height:100vh;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}.site-shell{min-height:100vh}.sidebar{align-items:flex-start;background:#fffaf3e8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-right:1px solid var(--line);display:flex;inset:0 auto 0 0;overflow-y:auto;padding:62px 34px;position:fixed;width:204px;z-index:10}.nav-stack{display:grid;gap:30px;width:100%}.nav-link{align-items:center;color:var(--ink);display:flex;font-size:17px;font-weight:700;justify-content:space-between;line-height:1;min-height:32px;transition:color .16s ease,transform .16s ease}.nav-link svg{color:#37332f;transition:color .16s var(--ease)}.nav-link:hover,.nav-link.active{color:var(--accent)}.nav-link:hover{transform:translate(2px)}.nav-link:hover svg,.nav-link.active svg{color:var(--accent)}.skip-link{background:var(--panel);border:1px solid var(--accent-line);border-radius:7px;color:var(--accent);font-size:13px;font-weight:700;left:12px;padding:9px 14px;position:fixed;top:12px;transform:translateY(-160%);transition:transform .16s var(--ease);z-index:20}.skip-link:focus-visible{transform:translateY(0)}.content-wrap{margin-left:204px;min-height:100vh;padding:1px 48px 112px}.page{margin:138px auto 0;max-width:880px;width:100%}@media(min-width:1100px){.page{margin-left:45px;margin-right:0}}.home-page{isolation:isolate;margin-top:284px;position:relative}.home-page>:not(.hero-atmosphere){position:relative;z-index:1}.hero-atmosphere{height:286px;left:-18px;pointer-events:none;position:absolute;top:-226px;width:min(1180px,calc(100vw - 300px));z-index:0}.hero-atmosphere canvas{display:block;height:100%;width:100%}.eyebrow{color:#4c4743;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:15px;font-weight:500;letter-spacing:.01em;margin:0 0 18px}h1,h2,p{margin:0}.home-page h1{color:var(--ink);font-size:clamp(46px,4.15vw,62px);font-weight:780;letter-spacing:-.045em;line-height:1.01;margin-bottom:24px;max-width:790px}.home-page h1 span{color:var(--accent)}.intro{color:#2f2d2a;font-size:20px;line-height:1.58;max-width:790px}.social-row{display:flex;gap:18px;margin:27px 0 34px}.social-row a{color:#77706a;display:grid;height:20px;place-items:center;transition:color .16s ease,transform .16s ease;width:20px}.social-row a:hover{color:var(--accent);transform:translateY(-1px)}.bio-list{color:#2e2c29;display:grid;font-size:16px;gap:14px;line-height:1.5;margin:0 0 54px;max-width:850px;padding-left:31px}.bio-list li::marker{color:var(--muted)}.inline-link{color:inherit;text-decoration:underline;text-decoration-color:var(--underline);text-decoration-style:dotted;text-decoration-thickness:1.5px;text-underline-offset:4px;transition:color .16s var(--ease),text-decoration-color .16s var(--ease)}.inline-link:hover{color:var(--accent);text-decoration-color:var(--accent)}.section-block{margin-top:66px}.section-block h2,.more-experiments h2{color:var(--accent);font-size:13px;font-weight:800;letter-spacing:.08em;line-height:1;margin-bottom:26px;text-transform:uppercase}.compact-list{display:grid;gap:16px}.row-link{align-items:baseline;border-radius:7px;color:#2d2a27;display:grid;font-size:15px;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;line-height:1.35;margin:0 -12px;padding:9px 12px;transition:background-color .16s var(--ease)}.row-link:hover{background:#ef48280a}.row-link>span{min-width:0}.row-link strong{color:var(--ink);display:block;font-weight:650;text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1.5px;text-underline-offset:4px;transition:text-decoration-color .16s var(--ease)}.row-link:hover strong{text-decoration-color:var(--accent-line)}.row-meta{color:var(--muted);font-size:13px;text-align:right;white-space:nowrap}a.experiment-row strong{text-decoration:underline;text-decoration-color:var(--underline);text-decoration-style:dotted;text-decoration-thickness:1.5px;text-underline-offset:4px}.text-button{align-items:center;background:transparent;border:0;color:#2d2a27;display:inline-flex;font-size:15px;margin-top:18px;padding:0;transition:color .16s var(--ease)}.text-button span,.footer-links a span{align-items:center;display:inline-flex;margin-left:5px;transition:transform .16s var(--ease)}.footer-links a,.footer-links button{align-items:center;display:inline-flex}.text-button:hover span,.footer-links a:hover span{transform:translate(3px)}.text-button:hover,.footer-links a:hover,.footer-links button:hover{color:var(--accent)}.home-page .compact-list .row-meta svg{margin-left:5px;opacity:0;transition:opacity .16s var(--ease);vertical-align:-1px}.home-page .row-link:hover .row-meta svg{opacity:1}.story-list{display:grid;gap:26px;position:relative}.story-item{align-items:start;display:grid;gap:34px;grid-template-columns:86px minmax(0,1fr);position:relative}.story-item time{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:500;line-height:1.5}.story-item:before{background:var(--accent);border-radius:50%;box-shadow:0 0 0 4px var(--bg);content:"";height:8px;left:77px;position:absolute;top:6px;width:8px}.story-item:not(:last-child):after{border-left:1px dashed var(--accent-line);content:"";left:80.5px;position:absolute;top:19px;bottom:-32px}.story-item h3{color:var(--ink);font-size:16px;font-weight:800;line-height:1.35;margin:0 0 4px}.story-item p{color:var(--muted-strong);font-size:15px;line-height:1.58}.contribution-wrap{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);margin-top:74px;overflow-x:auto;padding:20px 20px 17px}.contribution-wrap h2{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.07em;margin-bottom:18px;text-transform:uppercase}.months{color:var(--muted);display:grid;font-size:11px;grid-template-columns:repeat(12,1fr);margin-left:45px;min-width:562px}.graph-row{align-items:center;display:flex;gap:10px;margin-top:8px;min-width:607px}.days{color:var(--muted);display:grid;font-size:11px;gap:11px;width:35px}.heatmap{display:grid;gap:4px;grid-auto-flow:column;grid-template-rows:repeat(5,13px)}.heatmap span{border-radius:2px;height:13px;width:13px}.level-0{background:#f3e8df}.level-1{background:#f7c8b8}.level-2{background:#f69a7d}.level-3{background:#f16a48}.level-4{background:var(--accent)}.contribution-wrap p{border-top:1px solid var(--line-soft);color:var(--muted);font-size:13px;margin-top:18px;padding-top:15px}.footer-links{border-top:1px solid var(--line-soft);display:flex;gap:28px;margin-top:66px;padding-top:26px}.footer-links a,.footer-links button{background:transparent;border:0;color:var(--muted);font-size:14px;padding:0}.page-title{color:var(--ink);font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1.12;max-width:20ch}.page-subtitle{color:var(--muted);font-size:16px;font-weight:500;line-height:1.5;margin-top:11px;max-width:58ch}.post-page .page-subtitle{align-items:baseline;color:var(--muted);display:flex;font-size:13px;letter-spacing:.02em;margin-top:13px}.year-groups{display:grid;gap:58px;margin-top:60px}.row-link>span em{color:var(--muted);display:block;font-size:14px;font-style:normal;line-height:1.45;margin-top:6px}.row-link:hover>span em{color:var(--muted-strong)}.row-link b{color:var(--accent);display:block;font-size:11px;font-weight:800;letter-spacing:.06em;margin-bottom:6px;text-transform:uppercase}.post-kicker{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.07em;margin-bottom:14px;text-transform:uppercase}.row-meta em{color:var(--muted);display:block;font-size:12px;font-style:normal;margin-top:5px;opacity:.85}.post-page{max-width:640px}.post-page .page-title{font-size:32px;max-width:26ch}.dot-divider:before{color:var(--accent-line);content:"/";margin:0 9px}.post-standfirst{color:var(--ink);font-size:19px;font-weight:500;line-height:1.55;margin-top:30px;max-width:600px}.back-button{color:var(--muted);font-size:14px;gap:6px;margin:0 0 30px}.back-button svg{transition:transform .16s var(--ease)}.back-button:hover svg{transform:translate(-3px)}.post-contents{background:linear-gradient(90deg,rgba(239,72,40,.028),transparent 70%);border-left:2px solid var(--accent-line);border-radius:0 8px 8px 0;margin-top:34px;padding:18px 18px 18px 20px}.post-contents h2{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.07em;margin-bottom:13px;text-transform:uppercase}.post-contents ol{color:var(--muted);display:grid;font-size:14px;gap:9px;line-height:1.4;margin:0;padding-left:19px}.post-contents li::marker{color:var(--accent-line);font-size:12px}.post-contents a{transition:color .16s var(--ease)}.post-contents a:hover{color:var(--accent)}.post-body h2{scroll-margin-top:100px}.post-body{border-top:1px solid var(--line);color:var(--muted-strong);font-size:17px;line-height:1.68;margin-top:36px;padding-top:40px}.post-body p{margin:0 0 24px}.post-body h2{align-items:center;color:var(--accent);display:flex;font-size:13px;font-weight:800;gap:14px;letter-spacing:.08em;margin:52px 0 22px;text-transform:uppercase}.post-body h2:after{background:var(--line);content:"";flex:1;height:1px}.post-body>h2:first-child{margin-top:0}.post-body ul,.post-body ol{display:grid;gap:12px;margin:0 0 26px;padding-left:22px}.post-body li::marker{color:var(--accent-line)}.post-body ol li::marker{font-size:14px;font-weight:700}.post-table-wrap{margin:0 0 28px;overflow-x:auto}.post-table{border-collapse:collapse;font-size:14px;min-width:100%;text-align:left;width:100%}.post-table th{border-bottom:1px solid var(--accent-line);color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;padding:0 16px 9px 0;text-transform:uppercase;white-space:nowrap}.post-table td{border-bottom:1px solid var(--line-soft);color:var(--muted-strong);line-height:1.45;padding:11px 16px 11px 0;vertical-align:top}.post-table tr td:last-child,.post-table tr th:last-child{padding-right:0}.post-table tbody tr:last-child td{border-bottom:0}.post-code{background:var(--panel);border:1px solid var(--line);border-left:2px solid var(--accent-line);border-radius:8px;color:#3c3733;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.7;margin:0 0 28px;overflow-x:auto;padding:16px 18px}.post-note{background:var(--accent-soft);border-left:2px solid var(--accent-line);border-radius:0 8px 8px 0;color:var(--muted-strong);font-size:15px;line-height:1.6;margin:32px 0 26px;padding:15px 18px}.post-nav{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:52px}.post-nav-link{border:1px solid var(--line);border-radius:9px;display:grid;padding:15px 16px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease)}.post-nav-link:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.post-nav-link b{color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.08em;margin-bottom:9px;text-transform:uppercase}.post-nav-link:hover b{color:var(--accent)}.post-nav-link span{color:var(--ink);font-size:15px;font-weight:650;line-height:1.35}.post-nav-link em,.post-nav-link em span{color:var(--muted);font-size:12px;font-style:normal;font-weight:400}.post-nav-link em{margin-top:8px}.post-nav-link em .dot-divider:before{margin:0 6px}.post-page .footer-links{margin-top:40px}.year-group h2{align-items:baseline;border-bottom:1px solid var(--line-soft);color:var(--ink);display:flex;font-size:15px;font-weight:800;gap:12px;justify-content:space-between;letter-spacing:.02em;margin-bottom:22px;padding-bottom:11px}.year-group h2 span{color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.03em}.list-page{max-width:720px}.list-page .compact-list{gap:22px}.list-page .row-link{grid-template-columns:minmax(0,1fr) 74px}.stuff-page{max-width:640px}.product-stack{display:grid;gap:20px;margin-top:34px}.product-card{border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:20px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),transform .16s var(--ease)}.product-card:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);transform:translateY(-2px)}.card-topline{align-items:center;color:var(--muted);display:flex;gap:10px;margin-bottom:14px}.card-topline .tag{margin:0 auto 0 0}.card-topline a{align-items:center;border:1px solid var(--line);border-radius:6px;color:var(--muted);display:inline-flex;height:28px;justify-content:center;transition:border-color .16s var(--ease),color .16s var(--ease),transform .16s var(--ease);width:28px}.card-topline a:hover{border-color:var(--accent-line);color:var(--accent);transform:translateY(-1px)}.project-icon{background:var(--accent-soft);border:1px solid #f7cfc1;border-radius:6px;color:var(--accent);display:grid;font-size:13px;font-weight:800;height:25px;place-items:center;width:25px}.product-card h2{color:var(--ink);font-size:17px;font-weight:800;letter-spacing:-.01em;margin-bottom:10px}.product-card h2 a{transition:color .16s var(--ease)}.product-card:hover h2 a{color:var(--accent)}.product-card p{color:var(--muted-strong);font-size:14px;line-height:1.5}.product-meta{border-top:1px solid var(--line-soft);display:grid;gap:8px;margin:16px 0 0;padding-top:14px}.product-meta div{display:grid;gap:16px;grid-template-columns:48px minmax(0,1fr)}.product-meta dt{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.06em;line-height:1.6;text-transform:uppercase}.product-meta dd{color:var(--muted-strong);font-size:13px;line-height:1.5;margin:0}.product-details{border-top:1px solid var(--line-soft);color:var(--muted);display:grid;font-size:13px;gap:9px;line-height:1.5;margin:16px 0 0;padding:15px 0 0 18px}.product-details li::marker{color:var(--accent-line)}.tag{background:var(--accent-soft);border:1px solid #f7cfc1;border-radius:999px;color:var(--accent);display:inline-flex;font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1;padding:5px 9px}.iframe-shell{aspect-ratio:16 / 9;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);margin-top:17px;overflow:hidden;position:relative}.iframe-shell iframe{background:var(--panel);border:0;height:100%;top:0;right:0;bottom:0;left:0;position:absolute;width:100%;z-index:2}.iframe-fallback{align-content:center;color:var(--muted);display:grid;gap:4px;height:100%;justify-items:center;padding:22px;position:relative;text-align:center;z-index:1}.iframe-fallback strong{color:var(--ink);font-size:14px}.iframe-fallback span{font-size:12px;line-height:1.4}.iframe-fallback em{align-items:center;color:var(--accent);display:inline-flex;font-size:12px;font-style:normal;font-weight:700;gap:4px;margin-top:10px}.preview-link{display:block;transition:border-color .16s ease}.preview-link:hover{border-color:var(--accent-line)}.more-experiments{margin-top:60px}.experiment-list{display:grid}.experiment-row{align-items:baseline;border-bottom:1px solid var(--line-soft);border-radius:6px;color:var(--muted);display:grid;font-size:13px;gap:22px;grid-template-columns:minmax(0,1fr) auto;line-height:1.5;margin:0 -10px;padding:14px 10px;transition:background-color .16s var(--ease)}.experiment-row:last-child{border-bottom:0}.experiment-row strong{color:var(--ink);display:block;margin-bottom:5px}.experiment-row strong svg{color:var(--accent-line);margin-left:5px;vertical-align:-1px}.experiment-row.disabled{cursor:default}.experiment-row:not(.disabled):hover{background:#ef48280a}.experiment-row:not(.disabled):hover strong{color:var(--accent);text-decoration-color:var(--accent)}.experiment-row:not(.disabled):hover strong svg{color:var(--accent)}.experiment-row em{color:var(--muted);font-size:11px;font-style:normal;letter-spacing:.04em;text-align:right;text-transform:uppercase;white-space:nowrap}.guestbook-page{max-width:690px}.google-button{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:var(--shadow);color:var(--ink);display:inline-flex;font-size:15px;font-weight:700;gap:10px;height:46px;justify-content:center;margin-top:34px;min-width:178px;padding:0 18px;transition:border-color .16s var(--ease),box-shadow .16s var(--ease),color .16s var(--ease),transform .16s var(--ease)}.google-button:hover{border-color:var(--accent-line);box-shadow:var(--shadow-lift);color:var(--accent);transform:translateY(-1px)}.guestbook-form{display:grid;gap:12px;margin-top:32px;max-width:560px}.form-fields{display:grid;gap:10px;grid-template-columns:.55fr 1fr}.guestbook-form input{background:var(--bg);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:14px;height:43px;outline:none;padding:0 13px;transition:border-color .16s ease,box-shadow .16s ease}.guestbook-form input:focus{border-color:var(--accent-line);box-shadow:0 0 0 3px #ef48281a}.form-actions{align-items:center;display:flex;gap:18px}.form-actions button[type=submit]{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--ink);display:inline-flex;font-size:14px;font-weight:700;height:43px;justify-content:center;min-width:138px;padding:0 16px;transition:border-color .16s var(--ease),color .16s var(--ease)}.form-actions button[type=submit]:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent)}.form-actions button[type=submit]:disabled{color:var(--muted);cursor:not-allowed;opacity:.7}.form-actions .text-button{color:var(--muted);font-size:14px;margin-top:0}.form-hint{color:var(--muted);font-size:13px;line-height:1.5;margin-top:4px}.guestbook-list{border-top:1px solid var(--line-soft);color:var(--ink);display:grid;font-size:16px;gap:0;line-height:1.6;margin-top:58px;max-width:650px}.guestbook-list p{border-bottom:1px solid var(--line-soft);display:grid;gap:5px;padding:18px 0}.guestbook-list p:last-child{border-bottom:0}.guestbook-list strong{font-size:14px;font-weight:750;text-decoration:none}.guestbook-list span{color:var(--muted-strong);font-size:15px}a:focus-visible,button:focus-visible,input:focus-visible{border-radius:4px;outline:2px solid var(--accent);outline-offset:4px}.row-link:focus-visible,.post-nav-link:focus-visible,.experiment-row:focus-visible{outline-offset:2px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.nav-link:hover,.social-row a:hover,.product-card:hover,.post-nav-link:hover,.card-topline a:hover,.google-button:hover,.text-button:hover span,.footer-links a:hover span{transform:none}}@media(max-width:820px){.sidebar{border-bottom:1px solid var(--line);border-right:0;inset:0 0 auto;padding:14px 16px;width:100%}.nav-stack{display:flex;gap:7px;justify-content:space-between}.nav-link{border-radius:7px;font-size:13px;gap:7px;justify-content:center;min-height:36px;padding:0 8px}.nav-link:hover{transform:none}.nav-link.active{background:var(--accent-soft)}.nav-link svg{height:17px;width:17px}.content-wrap{margin-left:0;padding:1px 20px 72px}.page{margin-top:96px}.home-page{margin-top:190px}.hero-atmosphere{height:180px;left:-10px;top:-148px;width:calc(100vw - 20px)}.home-page h1{font-size:39px}.intro{font-size:17px}.page-title{font-size:30px}.post-page .page-title{font-size:28px}.skip-link{display:none}}@media(max-width:560px){.nav-link span{display:none}.nav-link{flex:1}.home-page h1{font-size:31px}.bio-list{font-size:15px}.story-item{gap:6px;grid-template-columns:1fr}.story-item:before,.story-item:after{display:none}.row-link,.experiment-row{gap:8px;grid-template-columns:1fr}.row-link{grid-template-areas:"meta" "body"}.row-link>span{grid-area:body}.row-link .row-meta{align-items:baseline;display:flex;grid-area:meta;text-align:left}.row-meta,.experiment-row em{font-size:12px}.row-meta em{display:inline;margin-top:0}.row-meta em:before{color:var(--accent-line);content:"/";margin:0 6px}.home-page .compact-list .row-meta svg{display:none}.post-standfirst{font-size:17px}.post-table{font-size:13px}.post-nav,.form-fields{grid-template-columns:1fr}.iframe-shell{aspect-ratio:4 / 3}.footer-links{flex-direction:column;gap:14px}}
