@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2) format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Sans Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-condensed-latin-600-normal.CRd5VyFf.woff2) format("woff2"),url(/_astro/ibm-plex-sans-condensed-latin-600-normal.6XnkKYvF.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff) format("woff")}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b0f14;--bg-2: #0f141b;--surface: #121821;--surface-2: #17202b;--text: #e7ecf1;--text-2: #b4bfca;--muted: #8693a1;--line: #243040;--line-2: #314052;--grid: rgba(120, 160, 200, .055);--grid-major: rgba(120, 160, 200, .09);--draw: #9fb4c8;--draw-faint: #4a5d71;--accent: #ffb020;--accent-ink: #1a1203;--accent-soft: rgba(255, 176, 32, .12);--ok: #3ddc84;--ok-soft: rgba(61, 220, 132, .12);--info: #5cc8f0;--info-soft: rgba(92, 200, 240, .12);--done: #a3adb8;--done-soft: rgba(163, 173, 184, .12);--todo: #ff7a59;--shadow: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 10px 30px -18px rgba(0, 0, 0, .8)}:root[data-theme=light]{color-scheme:light;--bg: #f5f4ef;--bg-2: #efeee8;--surface: #fbfaf7;--surface-2: #f1f0ea;--text: #13171c;--text-2: #353d47;--muted: #5b6672;--line: #cfd2d4;--line-2: #b6bbc0;--grid: rgba(30, 70, 130, .06);--grid-major: rgba(30, 70, 130, .1);--draw: #2c4a6b;--draw-faint: #a7b4c2;--accent: #9c4706;--accent-ink: #ffffff;--accent-soft: rgba(156, 71, 6, .1);--ok: #157a42;--ok-soft: rgba(21, 122, 66, .1);--info: #0b6e99;--info-soft: rgba(11, 110, 153, .1);--done: #59636e;--done-soft: rgba(89, 99, 110, .1);--todo: #c2410c;--shadow: 0 1px 2px rgba(20, 30, 40, .06)}:root{--font-head: "IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif;--font-body: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--maxw: 1160px;--gutter: clamp(16px, 4vw, 32px);--radius: 4px;--header-h: 60px}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}img,svg,video{display:block;max-width:100%}img,video{height:auto}button,input{font:inherit;color:inherit}body{background-color:var(--bg);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;background-position:-1px -1px;color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--accent);color:var(--accent-ink)}a{color:inherit;text-decoration-color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:8px 14px;font-family:var(--font-mono);font-size:.85rem;text-decoration:none}.skip:focus{top:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}h1,h2,h3,h4{font-family:var(--font-head);font-weight:600;line-height:1.12;letter-spacing:-.01em}h1{font-size:clamp(2.5rem,6.4vw,4.4rem);letter-spacing:-.02em}h2{font-size:clamp(1.8rem,3.6vw,2.6rem)}h3{font-size:1.3rem}p{max-width:68ch}.mono{font-family:var(--font-mono)}.label{font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;gap:16px;height:var(--header-h)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;margin-right:auto}.brand-mark{width:30px;height:30px;border:1.5px solid var(--text);display:grid;place-items:center;font-family:var(--font-mono);font-size:.75rem;font-weight:500;position:relative}.brand-mark:after{content:"";position:absolute;right:-4px;bottom:-4px;width:6px;height:6px;background:var(--accent)}.brand-name{font-family:var(--font-mono);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.brand:hover{color:var(--text)}.nav{display:flex;align-items:center;gap:2px}.nav a{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;text-decoration:none;color:var(--text-2);padding:8px 10px;border-radius:var(--radius)}.nav a:hover{color:var(--text);background:var(--surface)}.nav a .n{color:var(--muted);margin-right:4px}.nav a.cv{color:var(--accent);border:1px solid var(--line-2);margin-left:6px}.icon-btn{width:38px;height:38px;display:grid;place-items:center;cursor:pointer;background:transparent;border:1px solid var(--line-2);border-radius:var(--radius);color:var(--text-2)}.icon-btn:hover{color:var(--accent);border-color:var(--accent)}.icon-btn svg{width:18px;height:18px}.theme-toggle .sun{display:none}:root[data-theme=light] .theme-toggle .sun{display:block}:root[data-theme=light] .theme-toggle .moon{display:none}.menu-btn{display:none}@media(max-width:960px){.menu-btn{display:grid}.nav{position:absolute;top:var(--header-h);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px var(--gutter) 16px;display:none}.nav.open{display:flex}.nav a{padding:13px 4px;font-size:.9rem;border-bottom:1px dashed var(--line);border-radius:0}.nav a.cv{margin:12px 0 0;text-align:center;border:1px solid var(--accent)}}.status-strip{border-bottom:1px solid var(--line);background:var(--bg-2)}.status-strip .wrap{display:flex;flex-wrap:wrap;gap:4px 26px;padding-top:9px;padding-bottom:9px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase}.status-strip .k{color:var(--muted)}.status-strip .v{color:var(--text)}.status-strip .clock{margin-left:auto;color:var(--muted)}.led{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px var(--ok-soft);margin-right:8px;vertical-align:1px}@media(prefers-reduced-motion:no-preference){.led.blink{animation:blink 2.4s ease-in-out infinite}@keyframes blink{0%,70%,to{opacity:1}80%{opacity:.35}}}@media(max-width:640px){.status-strip .wrap{gap:2px 16px;font-size:.75rem}.status-strip .clock,.status-strip .hide-sm{display:none}}.btns{display:flex;flex-wrap:wrap;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 18px;font-family:var(--font-mono);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface);color:var(--text);transition:border-color .15s,color .15s,background .15s}.btn:hover{border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:500}.btn.primary:hover{filter:brightness(1.08);color:var(--accent-ink)}.btn svg{width:16px;height:16px}section.sec{padding:clamp(64px,9vw,112px) 0;border-top:1px solid var(--line);position:relative}.sec-head{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:clamp(28px,4vw,48px)}.sec-num{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.sec-num:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line-2),transparent);max-width:280px}.sec-head p{color:var(--text-2)}.frame{position:relative;border:1px solid var(--line);background:var(--surface)}.frame:before,.frame:after{content:"";position:absolute;width:12px;height:12px;pointer-events:none;border-color:var(--accent);border-style:solid}.frame:before{top:-1px;left:-1px;border-width:2px 0 0 2px}.frame:after{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.chip{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;font-family:var(--font-mono);font-size:.75rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:999px;border:1px solid currentColor}.chip:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.chip.working{color:var(--ok);background:var(--ok-soft)}.chip.in-progress{color:var(--accent);background:var(--accent-soft)}.chip.research{color:var(--info);background:var(--info-soft)}.chip.completed{color:var(--done);background:var(--done-soft)}.tag{display:inline-block;font-family:var(--font-mono);font-size:.75rem;color:var(--text-2);border:1px solid var(--line);padding:2px 8px;border-radius:2px;background:var(--bg-2)}.tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0}.todo{font-family:var(--font-mono);font-size:.82em;color:var(--todo);border:1px dashed var(--todo);padding:1px 6px;border-radius:2px;background:transparent}.media{position:relative;overflow:hidden;background:var(--bg-2);aspect-ratio:16 / 10}.media>img,.media>video{width:100%;height:100%;object-fit:cover}.media .ph{position:absolute;inset:0;color:var(--draw)}.media .ph svg.drawing{width:100%;height:100%}.media .ph-label{position:absolute;left:12px;top:10px;font-family:var(--font-mono);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.drawing .g-major{stroke:var(--draw-faint);stroke-width:.5;opacity:.5}.drawing .ln{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.drawing .ln-thin{fill:none;stroke:currentColor;stroke-width:1;opacity:.7}.drawing .ln-hidden{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:4 3;opacity:.55}.drawing .ln-center{fill:none;stroke:var(--draw-faint);stroke-width:.8;stroke-dasharray:10 3 2 3}.drawing .fill-s{fill:var(--surface);stroke:currentColor;stroke-width:1.6}.drawing .joint{fill:var(--bg);stroke:var(--accent);stroke-width:1.6}.drawing .acc{fill:none;stroke:var(--accent);stroke-width:1.6}.drawing .acc-fill{fill:var(--accent)}.drawing .dim{fill:none;stroke:var(--muted);stroke-width:.8}.drawing .dim-t{fill:var(--muted);font-family:var(--font-mono);font-size:14px}.drawing .call-t{fill:var(--text-2);font-family:var(--font-mono);font-size:14px}@media(min-width:700px)and (max-width:1159px){.cards .drawing .dim-t,.cards .drawing .call-t{font-size:15px}}.grid-2{display:grid;grid-template-columns:1fr;gap:24px}@media(min-width:860px){.grid-2{grid-template-columns:1fr 1fr;gap:32px}}.site-footer{border-top:1px solid var(--line);padding:40px 0 48px;background:var(--bg-2)}.title-block{display:grid;grid-template-columns:repeat(6,1fr);border:1.5px solid var(--text-2);font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.06em}.title-block>div{padding:8px 12px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);min-width:0}.title-block .k{display:block;color:var(--muted);font-size:.75rem;margin-bottom:2px}.title-block .v{color:var(--text);overflow-wrap:anywhere}.title-block .tb-title{grid-column:span 4}.title-block .tb-title .v{font-family:var(--font-head);font-size:1.25rem;text-transform:none;letter-spacing:0;font-weight:600}.title-block .tb-wide{grid-column:span 2}.title-block .end{border-right:0}.title-block .last-row{border-bottom:0}.title-block a{text-decoration:none}.title-block a:hover{color:var(--accent)}.footer-note{margin-top:14px;font-family:var(--font-mono);font-size:.75rem;color:var(--muted)}@media(max-width:720px){.title-block{grid-template-columns:repeat(2,1fr)}.title-block>div{border-right:1px solid var(--line-2)!important}.title-block>div:nth-child(2n){border-right:0!important}.title-block .tb-title,.title-block .tb-wide{grid-column:span 2;border-right:0!important}.title-block .last-row{border-bottom:1px solid var(--line-2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.site-header,.status-strip,.skip{display:none}body{background:#fff;color:#000}}
