@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Silkscreen;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/silkscreen-latin-700-normal.CSE2nhgM.woff2) format("woff2"),url(/_astro/silkscreen-latin-700-normal.BjMPLkh0.woff) format("woff")}@font-face{font-family:JetBrains Mono Fallback;src:local("Menlo"),local("Consolas"),local("DejaVu Sans Mono"),local("Liberation Mono"),local("Courier New");size-adjust:100%;ascent-override:102%;descent-override:30%;line-gap-override:0%}:root{color-scheme:light;--color-bg: #fdfbf0;--color-bg-alt: #f5f1dc;--color-surface: #fffdf3;--color-desktop: #f0ead6;--color-terminal-bg: #101010;--color-terminal-fg: #d8f5c0;--color-ink: #0a0a0a;--color-ink-soft: #3a3a3a;--color-ink-muted: #6b6b66;--color-border-faint: #d9d4bf;--color-border: var(--color-ink);--color-cursor: var(--color-accent);--color-accent: #ff6a1a;--color-accent-soft: #ffd9b8;--color-sticky: #fff9c4;--color-app-about: #14a5a5;--color-app-projects: var(--color-accent);--color-app-side: #ffb400;--color-app-writing: #9a6bff;--color-app-contact: #37b24d;--color-error: #e5484d;--tint-about: #d3eeee;--tint-projects: var(--color-accent-soft);--tint-side: #ffedc2;--tint-writing: #e6dcff;--tint-contact: #d5efdb;--status-running: #37b24d;--status-building: #ffb400;--status-iterating: #14a5a5;--status-idle: var(--color-ink-muted);--shadow-hard-sm: 2px 2px 0 var(--color-ink);--shadow-hard: 4px 4px 0 var(--color-ink);--shadow-hard-lg: 6px 6px 0 var(--color-ink);--shadow-win-focus: 8px 8px 0 var(--color-ink);--border-w: 2px;--border-w-focus: 3px;--menubar-h: 34px;--titlebar-h: 34px;--taskbar-h: 40px;--statusbar-h: 26px;--icon-cell: 88px;--z-float: 10;--z-taskbar: 900;--z-menubar: 910;--z-dialog: 1000;--z-toast: 1100;--font-mono: "JetBrains Mono Variable", "JetBrains Mono Fallback", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--font-pixel: "Silkscreen", var(--font-mono);--t-fast: .12s steps(2, end);--t-normal: .2s ease;--max-width: 1180px;--section-padding-y: clamp(3.5rem, 9vh, 7rem);--section-padding-x: clamp(1.25rem, 5vw, 5rem);--space-section: clamp(2.5rem, 8vh, 5rem)}@media(max-width:719.98px){:root{--menubar-h: 28px;--titlebar-h: 28px}}:root[data-theme=dark]{--color-bg: #1e1f23;--color-bg-alt: #2b2c33;--color-surface: #232429;--color-desktop: #16171b;--color-ink: #eeefe9;--color-ink-soft: #bfc1b7;--color-ink-muted: #9ea096;--color-border-faint: #3a3b42;--color-accent: #ff6a1a;--color-accent-soft: #6b3410;--color-sticky: #56502a;--tint-about: #123a3a;--tint-projects: #4a2410;--tint-side: #453208;--tint-writing: #2e2450;--tint-contact: #143a1f;--shadow-hard-sm: 2px 2px 0 #000;--shadow-hard: 4px 4px 0 #000;--shadow-hard-lg: 6px 6px 0 #000;--shadow-win-focus: 8px 8px 0 #000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;scroll-behavior:smooth;scroll-padding-top:calc(var(--menubar-h) + 8px);background-color:var(--color-desktop);background-image:linear-gradient(rgba(10,10,10,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(10,10,10,.06) 1px,transparent 1px);background-size:48px 48px;background-position:-1px -1px}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}html,body{width:100%;min-height:100%}body{font-family:var(--font-mono);color:var(--color-ink);background-color:transparent;line-height:1.55;font-size:15px;letter-spacing:0}a{color:var(--color-ink);text-decoration:none}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{font-family:var(--font-mono);font-weight:700;line-height:1.05;color:var(--color-ink)}::selection{background:var(--color-accent-soft);color:var(--color-ink)}:focus-visible{outline:var(--border-w-focus) solid var(--color-accent);outline-offset:2px}html{scrollbar-color:var(--color-ink) var(--color-bg-alt)}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:var(--color-bg-alt)}::-webkit-scrollbar-thumb{background:var(--color-surface);border:var(--border-w) solid var(--color-ink);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--color-accent-soft)}::-webkit-scrollbar-corner{background:var(--color-bg-alt)}.new-badge{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border:var(--border-w) solid var(--color-border);background:var(--color-accent);color:var(--color-ink);font-size:.62rem;font-weight:700;letter-spacing:.06em;line-height:1.5;vertical-align:middle;transform:translateY(-1px)}.new-badge[hidden]{display:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.win{background:var(--color-bg);border:var(--border-w) solid var(--color-ink)}.win--section{box-shadow:var(--shadow-hard-lg);margin-block:var(--space-section)}.win--page{box-shadow:none}.win--floating{border-width:var(--border-w-focus);box-shadow:var(--shadow-hard-lg)}.js-desktop .win--floating{position:absolute;z-index:var(--z-float)}.js-desktop .win--floating.is-focused{box-shadow:var(--shadow-win-focus)}.win-bar{height:var(--titlebar-h);display:flex;align-items:center;gap:8px;padding-inline:10px 6px;background:var(--app, var(--color-bg-alt));border-bottom:var(--border-w) solid var(--color-ink)}.js-desktop .win--floating .win-bar{touch-action:none;cursor:move}.win-title{font:700 11px/1 var(--font-pixel);color:var(--color-ink);text-transform:lowercase;margin:0;flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.win--inverse .win-bar,.win--inverse .win-title{color:var(--color-bg)}.win-controls{display:inline-flex;gap:4px;opacity:.45;transition:opacity var(--t-fast)}.win-bar:hover .win-controls,.win-bar:focus-within .win-controls{opacity:1}@media(hover:none){.win-controls{opacity:1}}.win-btn{position:relative;width:22px;height:22px;display:grid;place-items:center;font:700 12px var(--font-mono);color:var(--color-ink);background:var(--color-surface);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard-sm);cursor:pointer}.win-btn:after{content:"";position:absolute;inset:-7px -4px}.win-btn:active{translate:2px 2px;box-shadow:none}.win-btn[hidden]{display:none}.win-body{padding:var(--win-pad, 1.25rem)}.win-statusbar{min-height:var(--statusbar-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding-inline:10px;font:400 12px var(--font-mono);color:var(--color-ink-muted);border-top:1px solid var(--color-border-faint);background:var(--color-bg-alt)}.win.is-collapsed .win-body,.win.is-collapsed .win-statusbar{display:none}@media(max-width:719.98px){.win--page{border-left:0;border-right:0}}.keycap{display:inline-block;font:600 13px var(--font-mono);text-transform:lowercase;padding:8px 14px;background:var(--color-surface);color:var(--color-ink);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard);translate:0 0;cursor:pointer;transition:translate var(--t-fast),box-shadow var(--t-fast)}.keycap:hover{translate:-2px -2px;box-shadow:var(--shadow-hard-lg)}.keycap:active{translate:2px 2px;box-shadow:var(--shadow-hard-sm)}.keycap--primary{background:var(--color-accent)}.chip{display:inline-block;font:500 12px var(--font-mono);text-transform:lowercase;padding:3px 8px;background:var(--color-surface);color:var(--color-ink);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard-sm)}a.chip:hover,button.chip:hover{background:var(--app-tint, var(--color-accent-soft))}body.has-menubar{padding-top:var(--menubar-h)}@media(min-width:720px){body.has-taskbar{padding-bottom:calc(var(--taskbar-h) + 16px)}}.menubar{position:fixed;top:0;left:0;right:0;height:var(--menubar-h);z-index:var(--z-menubar);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding-inline:10px;background:var(--color-surface);border-bottom:var(--border-w) solid var(--color-ink)}.menubar-left{display:flex;align-items:center;justify-self:start}.menubar-center{display:flex;align-items:center;gap:10px;justify-self:center;min-width:0;font:400 12px var(--font-mono);color:var(--color-ink-muted)}.menubar-path{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.menubar-back{font:500 12px var(--font-mono);color:var(--color-ink)}.menubar-back:hover{color:var(--color-accent)}.menubar-right{display:flex;align-items:center;gap:12px;justify-self:end}.menubar-hint{font:400 11px var(--font-mono);color:var(--color-ink-muted)}.menubar-hint:empty{display:none}.menubar-hint kbd{font:600 10px var(--font-mono);padding:0 4px;background:var(--color-surface);border:1px solid var(--color-ink);box-shadow:1px 1px 0 var(--color-ink)}.menubar-clock{font:700 11px/1 var(--font-pixel);min-width:42px;text-align:right}.menubar-glyph,.taskbar-glyph{font:700 11px/1 var(--font-pixel);text-transform:lowercase;color:var(--color-ink);padding:3px 6px;border:1px solid transparent}.menubar-glyph:hover,.taskbar-glyph:hover{border-color:var(--color-ink);background:var(--color-accent-soft)}@media(max-width:719.98px){.menubar-center,.menubar-hint,.menubar-glyph{display:none}}.startmenu{position:relative}.startmenu-summary{position:relative;list-style:none;cursor:pointer;font:700 12px/1 var(--font-pixel);text-transform:lowercase;color:var(--color-ink);padding:5px 8px;border:var(--border-w) solid transparent;user-select:none}.startmenu-summary:after{content:"";position:absolute;inset:-6px -4px}.startmenu-summary::-webkit-details-marker{display:none}.startmenu-summary:hover{border-color:var(--color-ink);background:var(--color-accent-soft)}.startmenu[open]>.startmenu-summary{border-color:var(--color-ink);background:var(--color-ink);color:var(--color-bg)}.startmenu-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:190px;padding:6px;background:var(--color-surface);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard-sm);z-index:var(--z-menubar)}.startmenu--up .startmenu-panel{top:auto;bottom:calc(100% + 6px)}.startmenu-link{display:block;padding:6px 10px;font:500 13px var(--font-mono);text-transform:lowercase;color:var(--color-ink)}.startmenu-link:hover{background:var(--color-accent-soft)}.startmenu-link--shutdown:hover{background:var(--color-error);color:var(--color-bg)}.startmenu-sep{border:0;border-top:1px solid var(--color-border-faint);margin:4px 0}.taskbar{position:fixed;bottom:0;left:0;right:0;height:var(--taskbar-h);z-index:var(--z-taskbar);display:flex;align-items:center;gap:16px;padding-inline:10px;background:var(--color-surface);border-top:var(--border-w) solid var(--color-ink)}.taskbar-left,.taskbar-right{display:flex;align-items:center;gap:8px}.taskbar-apps{display:flex;gap:8px;flex:1;justify-content:center;min-width:0}.taskbar-app{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;font:700 11px/1 var(--font-pixel);text-transform:lowercase;color:var(--color-ink);background:var(--color-surface);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard-sm);translate:0 0;transition:translate var(--t-fast),box-shadow var(--t-fast),background-color var(--t-fast)}.taskbar-app:hover,.taskbar-app.is-open{background:var(--app-tint, var(--color-accent-soft))}.taskbar-app.is-active{background:var(--app, var(--color-accent));box-shadow:none;translate:1px 1px}.taskbar-app-num{font:400 10px/1 var(--font-mono);color:var(--color-ink-muted)}.taskbar-app.is-active .taskbar-app-num{color:inherit}@media(max-width:719.98px){.taskbar{display:none}}[data-desktop]{position:relative}.desktop-icon{width:var(--icon-cell);display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;text-align:center;cursor:pointer}.desktop-icon svg{width:24px;height:24px;shape-rendering:crispEdges}.desktop-icon-label{font:700 10px/1.3 var(--font-pixel);text-transform:lowercase;color:var(--color-ink);background:var(--color-bg);padding:1px 4px;border:1px solid var(--color-border-faint)}.desktop-icon:hover,.desktop-icon:focus-visible{outline:2px solid var(--color-ink);outline-offset:2px}.desktop-icon:hover .desktop-icon-label,.desktop-icon:focus-visible .desktop-icon-label{background:var(--app-tint, var(--color-accent-soft))}.os-toast{position:fixed;left:50%;bottom:16px;translate:-50% 8px;z-index:var(--z-toast);padding:10px 14px;font:700 11px/1.4 var(--font-pixel);text-transform:lowercase;color:var(--color-bg);background:var(--color-ink);border:var(--border-w) solid var(--color-ink);box-shadow:var(--shadow-hard-sm);opacity:0;pointer-events:none;transition:opacity var(--t-normal),translate var(--t-normal)}.os-toast.is-visible{opacity:1;translate:-50% 0}@media(min-width:720px){body.has-taskbar .os-toast{bottom:calc(var(--taskbar-h) + 16px)}}html.crt:after{content:"";position:fixed;inset:0;z-index:1200;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(10,10,10,.09) 0 1px,transparent 1px 3px)}html.crt body{text-shadow:0 0 2px rgba(255,106,26,.22)}@media(prefers-reduced-motion:reduce){.keycap,.win-btn,.win-controls,.taskbar-app,.desktop-icon,.os-toast{transition:none}.keycap:hover,.keycap:active,.win-btn:active{translate:0 0}.keycap:active{filter:brightness(.92)}.os-toast{translate:-50% 0}}
