body{background:var(--bg);color:var(--ink);font:400 14px/1.5 var(--f-body);margin:0;padding:32px 16px 56px}.sheet{background:var(--paper);border:1px solid var(--sheet-line);max-width:860px;box-shadow:var(--shadow);border-radius:16px;grid-template-columns:minmax(0,1fr);gap:20px;margin:0 auto;padding:40px 44px 30px;display:grid;position:relative;overflow:hidden}.sheet:before{content:"";background:linear-gradient(90deg, var(--violet), var(--green) 50%, var(--blue));height:5px;position:absolute;inset:0 0 auto}.sheet{background:radial-gradient(560px 280px at 100% 0%, var(--sheet-glow-1), transparent 70%), radial-gradient(460px 260px at 0% 0%, var(--sheet-glow-2), transparent 70%), linear-gradient(180deg, var(--sheet-top) 0, var(--sheet) 380px)}.sheet:after{content:"";pointer-events:none;background-image:linear-gradient(var(--sheet-grid) 1px, transparent 1px), linear-gradient(90deg, var(--sheet-grid) 1px, transparent 1px);background-size:28px 28px;height:340px;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.sheet>*{z-index:1;position:relative}.top{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px;display:grid}.kicker{font:500 11px/1.4 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);margin-bottom:6px}h1{font:600 38px/1.02 var(--f-display);letter-spacing:-.015em}.role{color:var(--muted);margin-top:4px;font-size:15px}.contact{font:400 12px/1.7 var(--f-mono);color:var(--muted);flex-wrap:wrap;gap:2px 22px;display:flex}.summary{max-width:74ch;font-size:15px;line-height:1.55}.summary b{font-weight:600}.stats{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1.15fr) minmax(0,1.25fr);display:grid}.stats li{border-left:1px solid var(--line-2);gap:1px;padding:2px 14px;display:grid}.stats li:first-child{border-left:0;padding-left:0}.stats b{font:600 25px/1.1 var(--f-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.stats span{color:var(--muted);font-size:12px;line-height:1.35}.proj{background:var(--paper);box-shadow:var(--card-shadow);--c:var(--blue);--cs:var(--blue-soft);--ci:var(--blue-ink);border:1px solid var(--line);border-radius:14px;grid-template-columns:minmax(0,1fr);gap:12px;padding:15px 18px 16px;display:grid;position:relative}.proj:before{content:"";background:var(--c);border-radius:0 3px 3px 0;width:3px;position:absolute;top:14px;bottom:14px;left:-1px}.p2{--c:var(--violet);--cs:var(--violet-soft);--ci:var(--violet-ink)}.p3{--c:var(--green);--cs:var(--green-soft);--ci:var(--green-ink)}.head{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:3px 10px;display:grid}.head .meta{grid-column:1/-1}.num{font:600 11px/1 var(--f-mono);color:var(--ci);background:var(--cs);letter-spacing:.04em;border-radius:6px;align-self:center;padding:4px 7px}h2{font:600 20px/1.15 var(--f-display);letter-spacing:-.005em;text-wrap:balance}.meta{color:var(--muted);font-size:12.5px}.body{grid-template-columns:292px minmax(0,1fr);align-items:center;gap:22px;display:grid}.pts{gap:7px;display:grid}.pts li{padding-left:15px;font-size:13.5px;line-height:1.48;position:relative}.pts li:before{content:"";background:var(--c);border-radius:2px;width:6px;height:6px;position:absolute;top:.58em;left:0}.pts b{font-weight:600}.t{font-family:var(--f-mono);white-space:nowrap;font-size:.9em}.hub{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;display:grid}.hub span{text-align:center;border:1px solid var(--line-2);color:var(--muted);border-radius:8px;padding:6px 4px;font-size:11.5px}.hub .core{background:var(--cs);border-color:var(--c);color:var(--ink);grid-area:2/2;place-items:center;font-weight:600;line-height:1.2;display:grid}.cap{color:var(--muted);text-align:center;text-wrap:balance;margin-top:8px;font-size:11.5px}.cap b{color:var(--ink);white-space:nowrap;font-weight:600}.cap .ill{width:max-content;margin:0 auto 4px;display:block}.ill{font:600 9.5px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ci);background:var(--cs);vertical-align:1px;border-radius:4px;padding:3px 5px;display:inline-block}.pipe{gap:7px;display:grid}.row{white-space:nowrap;align-items:center;gap:5px;display:flex}.chip{font:500 11.5px/1 var(--f-mono);border:1px solid var(--line-2);background:var(--paper);border-radius:7px;padding:6px 7px}.chip.on{border-color:var(--c);background:var(--cs)}.chip.ghost{color:var(--muted);border-style:dashed}.lock{width:13px;height:13px;stroke:var(--c);stroke-width:1.7px;fill:none;flex:none}.legend{color:var(--muted);align-items:center;gap:5px;margin-top:2px;font-size:11px;display:flex}.sep{background:var(--line);height:1px;margin:3px 0}@media screen{.pipe .row{gap:4px}.pipe .chip{padding:6px 5px;font-size:11px}}.screen{font:500 11px/1.6 var(--f-mono);color:#41e383;-webkit-print-color-adjust:exact;print-color-adjust:exact;background-color:#050b06;background-image:repeating-linear-gradient(0deg,#ffffff08 0 1px,#0000 1px 3px);border-radius:10px;padding:9px 12px 10px;box-shadow:inset 0 0 0 1px #133a1f}.screen .hd{color:#e3fbe9;border-bottom:1px dashed #1f5a33;justify-content:space-between;margin-bottom:5px;padding-bottom:4px;display:flex}.screen .opt{white-space:nowrap;grid-template-columns:max-content max-content;column-gap:14px;display:grid}.screen i{color:#e3fbe9;font-style:normal}.screen .cmd{color:#a6f2c4;margin-top:5px}.cur{vertical-align:-2px;background:#41e383;width:.6em;height:1.05em;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}@media (prefers-reduced-motion:reduce){.cur{animation:none}}.foot{border-top:1px solid var(--line);gap:8px;padding-top:14px;display:grid}.note{color:var(--subtle);font-size:12px}.side{align-self:start;justify-items:end;gap:8px;display:grid}.lang{font:500 11px/1 var(--f-mono);letter-spacing:.08em;gap:2px;display:flex}.lang a,.lang>span{color:var(--muted);border:1px solid #0000;border-radius:6px;padding:5px 7px;text-decoration:none}.lang>[aria-current]{color:var(--ink);background:var(--paper);border-color:var(--line-2)}.lang a:hover{color:var(--ink);border-color:var(--line-2)}.contact li{overflow-wrap:anywhere}.contact a{border-bottom:1px solid var(--line-2);text-decoration:none}.contact a:hover{color:var(--ink);border-bottom-color:var(--ink)}.proj{transition:border-color .15s,box-shadow .2s}.proj:hover{border-color:var(--c)}@media screen{.proj{background-image:linear-gradient(180deg, color-mix(in srgb, var(--c) 6%, transparent), #0000001f);box-shadow:inset 0 1px 0 #ffffff0d, 0 1px 2px #00000040, 0 3px 8px #00000024, 0 10px 24px -14px #0009, 0 16px 38px -22px color-mix(in srgb, var(--c) 55%, transparent)}.proj:hover{box-shadow:inset 0 1px 0 #ffffff0d, 0 1px 2px #00000040, 0 3px 8px #00000024, 0 10px 24px -14px #0009, 0 18px 46px -18px color-mix(in srgb, var(--c) 70%, transparent)}.proj:before{box-shadow:0 0 6px 0 color-mix(in srgb, var(--c) 70%, transparent), 0 0 16px 2px color-mix(in srgb, var(--c) 30%, transparent)}.proj:hover:before{box-shadow:0 0 8px 1px var(--c), 0 0 22px 4px color-mix(in srgb, var(--c) 40%, transparent)}}.proj:has(a:focus-visible){outline:2px solid var(--blue-ink);outline-offset:3px}.proj h2 a{color:inherit;text-decoration:none}.proj h2 a:focus-visible{outline:none}.proj h2 a:after{content:"";border-radius:14px;position:absolute;inset:0}.go{font:500 12.5px/1 var(--f-body);color:var(--ci);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);background:var(--cs);border-radius:999px;align-self:center;align-items:center;gap:6px;padding:6px 10px 6px 12px;transition:border-color .15s;display:inline-flex}.proj:hover .go{border-color:var(--c)}.go .arr{stroke:currentColor;transition:transform .15s}.proj:hover .go .arr{transform:translate(3px)}@media (prefers-reduced-motion:reduce){.proj,.go,.go .arr{transition:none}.proj:hover .go .arr{transform:none}}.pdf{color:var(--muted);text-underline-offset:2px;text-decoration:underline}.pdf:hover{color:var(--ink)}.site-url{display:none}@media screen and (width<=760px){body{padding:0}.sheet{border-radius:0;padding:28px 18px 24px}.top{grid-template-columns:minmax(0,1fr)}.side{justify-items:start}.stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.stats li:nth-child(3){border-left:0;padding-left:0}.body{grid-template-columns:minmax(0,1fr)}}.pdf,.legal-link{white-space:nowrap}@media print{@page{size:A4;margin:9mm 10mm}body{-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:0;font-size:13px;background:#fff!important}.sheet:after{display:none}.proj,.card,.stats li{box-shadow:none!important}.sheet{max-width:none;box-shadow:none;border:0;border-radius:0;gap:10px;padding:12px 2px 0;background:#fff!important}h1{font-size:34px}.summary{max-width:none;font-size:13.5px}.stats b{font-size:21px}.stats span{font-size:11.5px;line-height:1.3}.stats li{padding-top:0;padding-bottom:0}.proj{break-inside:avoid;gap:9px;padding:12px 16px 13px}.body{grid-template-columns:286px minmax(0,1fr);gap:18px}.row{gap:4px}.chip{padding:5px 6px;font-size:10.5px}.screen{padding:8px 10px 9px;font-size:10.2px}.hub span{padding:5px 3px;font-size:11px}.pts{gap:4px}.pts li{font-size:12.6px;line-height:1.38}.foot{gap:5px;padding-top:10px}.cur{animation:none}.lang,.go,.pdf,.legal-link,.proj.lab{display:none}.head{flex-wrap:wrap;align-items:baseline;gap:0 10px;display:flex}.site-url{display:inline}.note,.proj h2 a:after{display:none}}@media screen{:is(.chip,.node,.hub span,.step .box,.band){background-image:linear-gradient(180deg, color-mix(in srgb, var(--c) 6%, transparent), #0000001f);box-shadow:inset 0 1px #ffffff0d,0 1px 2px #00000040,0 3px 8px #00000024}:is(.card,.figs li,.pager a){background-image:linear-gradient(180deg, color-mix(in srgb, var(--c) 6%, transparent), #0000001f);box-shadow:inset 0 1px #ffffff0d,0 1px 2px #00000040,0 3px 8px #00000024,0 10px 24px -14px #0009}}
