:root{color:#1d1d1b;font-synthesis:none;text-rendering:optimizelegibility;background:#f5f0e8;font-family:Georgia,Times New Roman,serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}#root{min-height:100svh}.app-shell{--frame-bg:#f5f0e8;--frame-text:#1d1d1b;--frame-muted:#6b675f;--frame-accent:#0033fe;--frame-on-accent:#fff;--frame-line:#0033fe59;background:var(--frame-bg);min-height:100svh;color:var(--frame-text)}.app-shell.terminal-shell{--frame-bg:#001300;--frame-text:#ebedf0;--frame-muted:#a4b39f;--frame-accent:#75b44b;--frame-on-accent:#001300;--frame-line:#75b44b8c;font-family:Hack,monospace}.topbar{border-bottom:1px solid var(--frame-line);justify-content:space-between;align-items:center;max-width:1440px;margin:0 auto;padding:24px 48px 18px;display:flex}.brand-mark{color:var(--frame-text);font-family:"Jersey 10",monospace;font-size:1.4rem;text-decoration:none}.topbar .language-button{border:2px solid var(--frame-accent);min-width:48px;height:38px;color:var(--frame-text);background:0 0;font-family:Hack,monospace;font-size:.72rem;font-weight:700}.topbar .language-button:hover{background:var(--frame-accent);color:var(--frame-on-accent)}.main-nav{gap:28px;margin-left:auto;margin-right:28px;display:flex}.main-nav a{color:var(--frame-muted);text-transform:uppercase;border-bottom:2px solid #0000;padding:6px 0;font:700 .72rem Hack,monospace;text-decoration:none}.main-nav a:hover,.main-nav a.active{color:var(--frame-accent)}.main-nav a.active{border-bottom-color:var(--frame-accent)}.books-page{color:#0033fe;max-width:1180px;margin:0 auto;padding:30px 28px 80px}.books-page .eyebrow{color:#fa3b30}.hero-banner{color:#fff;background:#0033fe;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);min-height:470px;display:grid;overflow:hidden;box-shadow:12px 12px #fff022}.hero-copy{flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(36px,7vw,84px);display:flex}.eyebrow{color:#8a8478;letter-spacing:.16em;margin:0 0 18px;font:700 .72rem/1.2 Arial,sans-serif}.hero-banner .eyebrow{color:#fa3b30}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.04em;max-width:560px;margin-bottom:20px;font-size:clamp(2.8rem,6vw,5.7rem);font-weight:700;line-height:.93}.hero-subtitle{color:#fff;max-width:380px;margin-bottom:34px;font-size:1.2rem;line-height:1.45}.hero-image{background-color:#fa3b30;background-image:repeating-linear-gradient(135deg,#0000 0 28px,#102d6938 29px 30px);place-items:center;min-height:300px;display:grid;position:relative}.hero-image:before{content:"";aspect-ratio:1;border:2px solid #0033fe;width:58%;transform:rotate(12deg)}.primary-button{color:#fff;background:#fa3b30;border:0;padding:15px 20px;font:700 .92rem Arial,sans-serif;transition:transform .16s,background .16s}.primary-button:hover{background:#fa3b30;transform:translate(-3px,-3px)}.primary-button span{margin-right:10px;font-size:1.3rem;line-height:0}.library-section{margin-top:64px}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}h2{margin-bottom:0;font-size:clamp(2rem,4vw,3.3rem);line-height:.98}.book-count{color:#fff;text-transform:uppercase;letter-spacing:.08em;background:#0033fe;padding:8px 12px;font:700 .72rem Arial,sans-serif}@media (width<=720px){.books-page{padding:18px 16px 56px}.hero-banner{grid-template-columns:1fr;box-shadow:7px 7px #fff022}.topbar{flex-wrap:wrap;gap:14px}.main-nav{order:3;width:100%;margin:0}.hero-copy{min-height:390px;padding:42px 28px}.hero-image{min-height:210px}}@font-face{font-family:"Jersey 10";src:url(/fonts/jersey-10-latin-400-normal.woff2)format("woff2");font-display:swap}@font-face{font-family:Hack;src:url(/fonts/Hack-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Hack;src:url(/fonts/Hack-Bold.ttf)format("truetype");font-weight:700;font-display:swap}@media (width<=900px){.topbar{padding-left:28px;padding-right:28px}}@media (width<=720px){.topbar{padding:18px 16px}.main-nav{gap:18px;overflow-x:auto}.main-nav a{white-space:nowrap}}.form-panel{background:#fff;border-top:6px solid #fa3b30;margin-top:64px;padding:34px}.dialog-panel::backdrop{background:#0033feb8}.dialog-panel{color:#0033fe;width:min(680px,100% - 40px);max-height:calc(100svh - 40px);margin:auto;overflow:auto;box-shadow:12px 12px #fa3b30}.icon-button{color:#0033fe;background:0 0;border:2px solid #0033fe;width:38px;height:38px;font:700 1.1rem Arial,sans-serif}.icon-button:hover{color:#fff;background:#0033fe}.book-picker input{color:#0033fe;background:#f8f9fc;border:2px solid #d7dce8;border-radius:0;outline:0;width:100%;padding:14px}.book-picker input:focus{border-color:#0033fe}.book-picker-empty{color:#58647c;margin:18px 0 0}.book-picker-list{gap:8px;max-height:min(420px,50svh);margin:14px 0 0;padding:0;list-style:none;display:grid;overflow:auto}.book-picker-item{color:#0033fe;text-align:left;background:#f8f9fc;border:2px solid #0000;grid-template-columns:40px 1fr;align-items:center;gap:14px;width:100%;padding:8px;display:grid}.book-picker-item:hover,.book-picker-item:focus-visible{border-color:#0033fe;outline:0}.book-picker-item:disabled{cursor:wait;opacity:.6}.book-picker-item .book-cover{width:40px}.book-picker-item strong,.book-picker-item small{display:block}.book-picker-item small{color:#58647c;margin-top:3px}.empty-state{border:2px dashed #b9c1d4;align-items:center;gap:24px;min-height:180px;padding:32px;display:flex}.empty-mark{color:#fa3b30;font:700 3.5rem Arial,sans-serif}.empty-state h3{margin-bottom:8px;font-size:1.7rem}.empty-state p{color:#58647c;margin-bottom:0;font-size:1.05rem}.book-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.book-card{background:#fff;border-left:6px solid #0033fe;grid-template-columns:54px 1fr auto;align-items:center;gap:18px;padding:22px 24px;display:grid}.book-cover{aspect-ratio:2/3;object-fit:cover;color:#fa3b30;background:#e8ebf3;place-items:center;width:54px;font:700 .85rem Arial,sans-serif;display:grid}.book-details h3{margin-bottom:5px;font-size:1.45rem}.book-details p,.book-details small{color:#58647c}.book-details p{margin-bottom:5px}.book-details small{font-size:.9rem}.status-badge{color:#fff;text-transform:uppercase;background:#0033fe;padding:7px 10px;font:700 .68rem Arial,sans-serif}@media (width<=720px){.form-panel{padding:24px 18px}.book-card{grid-template-columns:44px 1fr;padding:18px}.book-card .book-cover{width:44px}.status-badge{grid-column:2;justify-self:start}.empty-state{flex-direction:column;align-items:flex-start;gap:12px}}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-vietnamese-400-normal-D0VnvwZ9.woff2)format("woff2"),url(/assets/vt323-vietnamese-400-normal-D_5Q7Vcv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-ext-400-normal-iUdYUaX4.woff2)format("woff2"),url(/assets/vt323-latin-ext-400-normal-DqOq58ri.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2)format("woff2"),url(/assets/vt323-latin-400-normal-Dqn9ZSPj.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-BDQ-w_bc.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-700-normal-CtgKGIh5.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-cyrillic-700-normal-Bp80XfeI.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-700-normal-O_YjL27c.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-vietnamese-700-normal-apsD3J7v.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-700-normal-Bs14ezHR.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-ext-700-normal-Dhimjc7-.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-700-normal-Cwsjk1Jb.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/ibm-plex-mono-latin-700-normal-7sUh57Bg.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-700-normal-CNHXzs6v.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.app-shell.terminal-shell.home-shell{--home-accent:#ee5da2;--home-accent-2:#15ada3;--home-light:#ebedf0;--home-dark:#001300;--home-text:#c8d1c5;--home-muted:#a4b39f;--home-line:color-mix(in srgb, var(--home-accent) 55%, transparent);--home-panel:color-mix(in srgb, var(--home-accent) 7%, var(--home-dark));--home-font-display:VT323, monospace;--home-font-body:"IBM Plex Mono", monospace;--frame-accent:var(--home-accent);--frame-line:var(--home-line)}.home-page{width:min(100%,1440px);color:var(--home-light);font-family:var(--home-font-body);margin:0 auto;padding:40px 48px 48px}.home-eyebrow{color:var(--home-accent);margin:0 0 14px;font-size:.72rem;font-weight:700}.terminal-prompt{color:var(--home-muted);margin:0 0 18px;font-size:.9rem}.terminal-user{color:var(--home-accent)}.terminal-path{color:var(--home-accent-2)}.terminal-cursor{background:var(--home-accent);vertical-align:baseline;width:.32em;height:.72em;margin-left:.12em;animation:1.1s step-end infinite terminal-blink;display:inline-block}@keyframes terminal-blink{50%{opacity:0}}.home-hero{border:1px solid var(--home-line);background-color:var(--home-panel);background-image:linear-gradient(color-mix(in srgb, var(--home-accent) 8%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--home-accent) 8%, transparent) 1px, transparent 1px);isolation:isolate;background-size:36px 36px;grid-template-columns:minmax(0,1fr) minmax(260px,.55fr);align-items:center;gap:40px;padding:clamp(28px,5vw,64px);display:grid;position:relative;overflow:hidden}.home-hero:after{content:"";z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 3px,#00130059 3px 4px);position:absolute;inset:0}.home-hero h1{max-width:none;font-family:var(--home-font-display);letter-spacing:0;text-transform:uppercase;margin:0 0 22px;font-size:clamp(3rem,6.4vw,6rem);font-weight:400;line-height:.82}.home-hero h1>span{color:var(--home-accent);display:block}.home-subtitle{max-width:560px;color:var(--home-text);margin:0;font-size:.95rem;line-height:1.7}.home-project:focus-visible{outline:2px solid var(--home-accent-2);outline-offset:3px}.home-log{border:1px solid var(--home-line);background:#001300d9;font-size:.8rem}.home-log-bar{border-bottom:1px solid var(--home-line);background:color-mix(in srgb, var(--home-accent) 12%, transparent);color:var(--home-accent);justify-content:space-between;padding:8px 12px;font-weight:700;display:flex}.home-log ul{gap:10px;margin:0;padding:16px 12px;list-style:none;display:grid}.log-ok{color:var(--home-accent)}.log-pending{color:var(--home-accent-2);animation:1.6s step-end infinite terminal-blink}.home-section{margin-top:64px}.home-section h2{font-family:var(--home-font-display);text-transform:uppercase;margin:0 0 24px;font-size:clamp(2.8rem,5vw,4.2rem);font-weight:400;line-height:.95}.home-projects{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.home-project{border:1px solid var(--home-line);background:var(--home-panel);height:100%;color:inherit;grid-template-columns:auto 1fr auto;align-items:start;gap:18px;padding:22px;text-decoration:none;transition:border-color .14s,box-shadow .14s,transform .14s;display:grid}.home-project:hover{border-color:var(--home-accent);box-shadow:6px 6px 0 var(--home-accent);transform:translate(-3px,-3px)}.home-project-number{color:var(--home-accent-2);font-size:.85rem;font-weight:700}.home-project h3{font-family:var(--home-font-display);text-transform:uppercase;margin:0 0 8px;font-size:2.3rem;font-weight:400;line-height:1}.home-project p{color:var(--home-text);margin:0;font-size:.85rem;line-height:1.6}.home-project-arrow{color:var(--home-accent);font-weight:700}.home-stack{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}.home-stack li{border:1px dashed var(--home-line);color:var(--home-light);text-transform:uppercase;padding:8px 12px;font-size:.78rem}.home-stack li:before{content:"> ";color:var(--home-accent)}.home-footer{border-top:1px solid var(--home-line);color:var(--home-muted);text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:72px;padding-top:18px;font-size:.72rem;display:flex}.home-heart{vertical-align:-.05em;width:.9em;height:.8em;fill:var(--home-accent);margin-left:.4em}@media (width<=900px){.home-page{padding-left:28px;padding-right:28px}.home-hero{grid-template-columns:1fr}}@media (width<=720px){.home-page{padding:24px 16px 36px}.home-project{grid-template-columns:auto 1fr}.home-project-arrow{display:none}}@media (prefers-reduced-motion:reduce){.terminal-cursor,.log-pending{animation:none}.home-project{transition:none}.home-project:hover{transform:none}}
