:root,:root[data-theme=dark]{--bg:#0b0b0d;--surface:#121215;--surface2:#17171b;--text:#f2f0ea;--muted:#9d9a91;--faint:#6b6963;--accent:#e0aa5e;--border:#232227;--border-soft:#1b1a1f;--g:#5fd08a;--am:#e0aa5e;--bl:#a8b8ff;--oss:#c9b8ff;--shadow:0 30px 80px -30px rgba(0,0,0,.7)}:root[data-theme=light]{--bg:#faf8f4;--surface:#ffffff;--surface2:#f1eee7;--text:#181712;--muted:#6b675d;--faint:#98948a;--accent:#a16a13;--border:#e4e0d6;--border-soft:#ece8df;--g:#1a8f4e;--am:#a16a13;--bl:#3d55c4;--oss:#6d4fc4;--shadow:0 24px 60px -30px rgba(60,50,30,.28)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;transition:background-color .35s ease,color .35s ease}a{color:inherit;text-decoration:none}em{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:0}.wrap{max-width:1120px;margin:0 auto;padding:0 28px}.mono{font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace}section{padding:96px 0}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}nav{position:sticky;top:0;z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:color-mix(in srgb,var(--bg) 78%,transparent);border-bottom:1px solid var(--border-soft);transition:background-color .35s ease,border-color .35s ease}.nav-in{display:flex;align-items:center;justify-content:space-between;height:64px}.brand{font-size:14px;font-weight:600;letter-spacing:-.01em}.nav-right{display:flex;align-items:center;gap:26px}.nav-links{display:flex;gap:26px;font-size:13.5px;color:var(--muted)}.nav-links a{transition:color .2s}.nav-links a:hover{color:var(--text)}@media(max-width:640px){.nav-links{display:none}}.toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:.2s}.toggle:hover{border-color:var(--accent);color:var(--accent)}.hero{padding:130px 0 100px}.kicker{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:500}.pulse{width:8px;height:8px;border-radius:50%;background:var(--g);position:relative;flex:0 0 auto}.pulse:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid var(--g);opacity:.5;animation:pulse 2.2s ease-out infinite}@keyframes pulse{0%{transform:scale(.5);opacity:.7}to{transform:scale(1.5);opacity:0}}h1{font-size:clamp(52px,9vw,116px);line-height:.98;letter-spacing:-.04em;font-weight:700;margin:26px 0 0}h1 em{color:var(--accent);letter-spacing:-.01em}.hero .sub{font-size:clamp(17px,2.2vw,21px);color:var(--muted);max-width:600px;margin:30px 0 0}.hero-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:76px;border-top:1px solid var(--border);padding-top:36px}@media(max-width:720px){.hero-meta{grid-template-columns:1fr;gap:26px}}.meta-col h5{font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);font-weight:600;margin-bottom:12px}.meta-col ul{list-style:none}.meta-col li{font-size:14.5px;color:var(--muted);padding:3px 0}.meta-col a{color:var(--text);border-bottom:1px solid var(--border);transition:border-color .2s,color .2s}.meta-col a:hover{color:var(--accent);border-color:var(--accent)}.term-sec{padding:0 0 20px}.term{border:1px solid var(--border);border-radius:14px;background:var(--surface);padding:26px 30px;font-size:13.5px;line-height:2;max-width:760px}.term .p{color:var(--accent);margin-right:8px}.term .o{color:var(--muted)}.term .gap{margin-top:14px}.sec-head{margin-bottom:56px}.sec-head h2{font-size:clamp(34px,5vw,56px);font-weight:700;letter-spacing:-.03em;line-height:1.05}.sec-head h2 em,.f-big em{color:var(--accent)}.lead{color:var(--muted);max-width:560px;margin-top:18px;font-size:16px}.plist{display:flex;flex-direction:column;border-top:1px solid var(--border)}.prow{display:grid;grid-template-columns:64px 1fr 170px;gap:28px;align-items:start;padding:34px 8px;border-bottom:1px solid var(--border);cursor:pointer;position:relative;transition:background-color .25s ease}.prow:hover,.prow:focus-visible{background:color-mix(in srgb,var(--surface) 65%,transparent);outline:none}.pnum{font-size:13px;color:var(--faint);padding-top:8px}.pmain h3{font-size:clamp(21px,2.6vw,28px);font-weight:600;letter-spacing:-.02em;transition:color .2s}.prow:hover .pmain h3{color:var(--accent)}.pmain p{color:var(--muted);font-size:15px;max-width:620px;margin-top:8px}.pside{display:flex;flex-direction:column;align-items:flex-end;gap:14px;padding-top:6px}.arrow{color:var(--faint);font-size:20px;transition:transform .25s ease,color .25s ease}.prow:hover .arrow{transform:translate(6px);color:var(--accent)}@media(max-width:720px){.prow{grid-template-columns:1fr;gap:12px;padding:26px 4px}.pnum{padding:0}.pside{flex-direction:row;align-items:center;justify-content:space-between;order:-1;padding:0}}.badge{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:999px;white-space:nowrap;border:1px solid}.b-dep{color:var(--g);border-color:color-mix(in srgb,var(--g) 40%,transparent);background:color-mix(in srgb,var(--g) 9%,transparent)}.b-uat{color:var(--am);border-color:color-mix(in srgb,var(--am) 40%,transparent);background:color-mix(in srgb,var(--am) 9%,transparent)}.b-built{color:var(--bl);border-color:color-mix(in srgb,var(--bl) 40%,transparent);background:color-mix(in srgb,var(--bl) 9%,transparent)}.b-oss{color:var(--oss);border-color:color-mix(in srgb,var(--oss) 40%,transparent);background:color-mix(in srgb,var(--oss) 9%,transparent)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tag-c{font-size:11.5px;color:var(--muted);background:var(--surface2);border:1px solid var(--border-soft);border-radius:6px;padding:3px 9px}.xlist,.edu{border-top:1px solid var(--border)}.edu{margin-top:64px}.xrow{display:grid;grid-template-columns:180px 1fr;gap:28px;padding:30px 8px;border-bottom:1px solid var(--border)}@media(max-width:640px){.xrow{grid-template-columns:1fr;gap:6px}}.xwhen{font-size:12.5px;color:var(--faint);padding-top:5px}.xbody h3{font-size:18px;font-weight:600;letter-spacing:-.01em}.xorg{color:var(--muted);font-weight:400}.xbody p{color:var(--muted);font-size:14.5px;margin-top:6px;max-width:640px}.slist{border-top:1px solid var(--border)}.srow{display:grid;grid-template-columns:260px 1fr;gap:28px;align-items:start;padding:26px 8px;border-bottom:1px solid var(--border)}@media(max-width:640px){.srow{grid-template-columns:1fr;gap:12px}}.srow h4{font-size:14.5px;font-weight:600;letter-spacing:-.01em;padding-top:2px}.srow .row{display:flex;flex-wrap:wrap;gap:7px}footer{padding:110px 0 60px}.f-big{font-size:clamp(40px,6.5vw,80px);font-weight:700;letter-spacing:-.035em;line-height:1.02}.f-mail{display:inline-block;margin-top:34px;font-size:clamp(17px,2.4vw,22px);color:var(--text);border-bottom:1px solid var(--border);padding-bottom:3px;transition:color .2s,border-color .2s}.f-mail:hover{color:var(--accent);border-color:var(--accent)}.f-bottom{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:80px;padding-top:28px;border-top:1px solid var(--border)}.flinks{display:flex;gap:24px;font-size:14px}.flinks a{color:var(--muted);transition:color .2s}.flinks a:hover{color:var(--accent)}.fnote{font-size:12.5px;color:var(--faint)}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#08080aa8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:7vh 16px}.modal-panel{position:relative;max-width:720px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:36px 40px 40px;box-shadow:var(--shadow)}@media(max-width:520px){.modal-panel{padding:28px 22px 30px}}.modal-x{position:absolute;top:14px;right:18px;background:none;border:none;color:var(--muted);font-size:28px;line-height:1;cursor:pointer}.modal-x:hover{color:var(--text)}.modal-panel h3{font-size:27px;font-weight:600;letter-spacing:-.02em;margin:14px 0 16px}.m-detail{color:var(--muted);font-size:15.5px;line-height:1.78}.m-detail b{color:var(--text);font-weight:600}.m-detail p{margin-bottom:13px}.m-tags{margin-top:20px}.m-repo{display:inline-block;margin-top:22px;font-size:14px;font-weight:600;color:var(--accent)}.m-repo:hover{text-decoration:underline}@media(prefers-reduced-motion:reduce){.pulse:after{animation:none}*{transition:none!important}}
