:root{--paper:#f3ede1;--ink:#1d1813;--muted:#6f6557;--faint:#a4937c;--accent:#b34a26;--line:#e2dac9;--chrome:#ebe3d5;--ff-display:"Fraunces", Georgia, serif;--ff-body:"Newsreader", Georgia, serif;--ff-mono:"JetBrains Mono", "SF Mono", monospace}html.dark{--paper:#15110c;--ink:#ece3d4;--muted:#9d9182;--faint:#6f6151;--accent:#e2724a;--line:#2a2218;--chrome:#1c1710}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;overflow-x:hidden}body{background:var(--paper);color:var(--ink);font-family:var(--ff-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .5s,color .5s}.site{background:var(--paper);min-height:100vh;transition:background-color .5s;position:relative}.site *{transition:color .4s,border-color .4s}.grain{pointer-events:none;opacity:.5;mix-blend-mode:overlay;z-index:1;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.22'/%3E%3C/svg%3E");position:fixed;inset:0}.pg{z-index:2;max-width:760px;margin:0 auto;padding:32px clamp(20px,5vw,52px) 56px;position:relative}.top{justify-content:space-between;align-items:center;margin-bottom:22px;display:flex}.mark{font-family:var(--ff-mono);letter-spacing:.04em;color:var(--muted);font-size:12px}.tog{border:1px solid var(--line);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:inline-flex}.tog:hover{color:var(--accent);border-color:var(--accent)}.spec{border:1px solid var(--line);background:0 0;border-radius:8px;height:clamp(170px,32vw,220px);position:relative;overflow:hidden}.spec canvas{width:100%;height:100%;display:block}.cap{font-family:var(--ff-mono);color:var(--faint);letter-spacing:.02em;justify-content:space-between;align-items:center;margin:9px 2px 0;font-size:11px;display:flex}.cap .hint{transition:opacity .6s}.hero-wrap{margin-top:clamp(28px,5vw,44px)}.epi{color:var(--muted);max-width:32ch;margin:0 0 18px;font-size:clamp(15px,2.4vw,18px);font-style:italic;line-height:1.5}.hero{font-family:var(--ff-display);font-optical-sizing:auto;letter-spacing:-.022em;color:var(--ink);margin:0;font-size:clamp(44px,9.5vw,74px);font-weight:600;line-height:.96}.hero .dot{color:var(--accent)}.role{color:var(--muted);max-width:44ch;margin:16px 0 0;font-size:clamp(16px,2.6vw,19px)}.role b{color:var(--ink);font-weight:500}.sec{max-width:60ch;margin-top:clamp(28px,4.5vw,42px)}.lbl{font-family:var(--ff-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 16px;font-size:11px}.about{color:var(--ink);max-width:56ch;margin:0;font-size:17px;line-height:1.7}.now{color:var(--muted);margin:0;font-size:16px;line-height:1.65}.now b{color:var(--ink);font-weight:500}.entry{border-top:1px solid var(--line);padding:16px 0}.entry:last-child{border-bottom:1px solid var(--line)}.entry h3{font-family:var(--ff-display);color:var(--ink);align-items:baseline;gap:10px;margin:0;font-size:21px;font-weight:500;display:flex}.entry h3 .ar{font-family:var(--ff-body);color:var(--faint);font-size:16px}.entry p{color:var(--muted);margin:4px 0 0;font-size:15.5px}.mtags{font-family:var(--ff-mono);color:var(--faint);margin-top:8px;font-size:11px}.links{gap:28px;display:flex}.lk{color:var(--ink);font-size:17px;text-decoration:none;display:inline-block;position:relative}.lk:after{content:"";background:var(--accent);width:0;height:1px;transition:width .3s;position:absolute;bottom:-2px;left:0}.lk:hover{color:var(--accent)}.lk:hover:after{width:100%}.colo{font-family:var(--ff-mono);color:var(--muted);margin-top:clamp(34px,6vw,52px);font-size:12px;line-height:1.8}.colo a{color:var(--accent);text-decoration:none}.colo a:hover{text-decoration:underline}.foot{font-family:var(--ff-mono);color:var(--faint);margin-top:22px;font-size:11px}.anim .rise{opacity:0;transform:translateY(16px)}.anim .rise.show{opacity:1;transition:opacity .8s cubic-bezier(.2,.6,.2,1),transform .8s cubic-bezier(.2,.6,.2,1);transform:none}@media (prefers-reduced-motion:reduce){.site *,.anim .rise{transition:none!important}.anim .rise{opacity:1;transform:none}}
