:root{color-scheme:dark;--theme-duration:.9s;--theme-easing:cubic-bezier(.22, 1, .36, 1);--page-bg:#11110f;--page-text:#f3f0e8;--button-bg:#ffffff14;--button-border:#f3f0e833;--button-text:#f3f0e8;--muted-text:#f3f0e894;--description-link:#f3f0e8d4;--terminal-bg:#1f1f1f;--terminal-border:#ffffff38;--terminal-text:#f0f0ec;--terminal-dim:#f0f0ec99;--terminal-folder:#b9d2ffd1;--terminal-cursor:#b8b8b5;background-color:var(--page-bg);color:var(--page-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}:root[data-theme=light]{--page-bg:#f7f5ef;--page-text:#151511;--button-bg:#ffffffbd;--button-border:#15151124;--button-text:#151511;--muted-text:#1515119e;--description-link:#151511db;--terminal-bg:#202020;--terminal-border:#15151147;--terminal-text:#f0f0ec;--terminal-dim:#f0f0ec94;--terminal-folder:#bed6ffd6;--terminal-cursor:#b8b8b5}*{box-sizing:border-box}html{background-color:var(--page-bg);min-height:100%;transition:background-color var(--theme-duration) var(--theme-easing);overflow:hidden}body{background-color:var(--page-bg);min-height:100vh;color:var(--page-text);transition:background-color var(--theme-duration) var(--theme-easing), color var(--theme-duration) var(--theme-easing);margin:0;overflow:hidden}.page-transition{opacity:1;min-height:100vh;transition:opacity .42s var(--theme-easing), transform .42s var(--theme-easing);transform:translateY(0)}html.is-animating .page-transition{opacity:0;transform:translateY(8px)}.project-page{scrollbar-width:none;opacity:0;transform-origin:50% 0;height:100vh;animation:project-terminal-open .56s var(--theme-easing) 90ms forwards;padding:72px 32px 72px 132px;overflow:auto;transform:translateY(10px)scale(.992)}.project-page::-webkit-scrollbar{display:none}.project-back{z-index:20;color:var(--terminal-dim);opacity:0;animation:project-terminal-control .36s var(--theme-easing) .26s forwards;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1;transition:color .16s;position:fixed;top:28px;left:32px;transform:translateY(-4px)}.project-back:hover,.project-back:focus-visible{color:var(--page-text)}@keyframes project-terminal-open{0%{clip-path:inset(0 0 100%);opacity:0;transform:translateY(10px)scale(.992)}42%{opacity:1}to{clip-path:inset(0);opacity:1;transform:translateY(0)scale(1)}}@keyframes project-terminal-control{to{opacity:1;transform:translateY(0)}}button{font:inherit}a{color:inherit;text-decoration:none}.site-shell{width:min(1440px,100% - 64px);height:100vh;margin:0 auto;padding:72px 0;position:relative}.hero{max-width:760px}.terminal-zone{align-items:stretch;width:min(720px,100%);margin-top:clamp(56px,10vh,112px);display:flex}.terminal-zone--with-viewer{gap:clamp(32px,6vw,96px);width:100%;min-height:260px}.bottom-terminal{border:1px solid var(--terminal-border);background:var(--terminal-bg);width:100%;max-width:720px;height:260px;color:var(--terminal-dim);transition:background-color var(--theme-duration) var(--theme-easing), border-color var(--theme-duration) var(--theme-easing), color var(--theme-duration) var(--theme-easing);border-radius:10px;flex-direction:column;flex:720px;padding:14px 16px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem;font-weight:400;line-height:1.1;display:flex}.terminal-output{overscroll-behavior:contain;scrollbar-width:none;user-select:text;flex:auto;max-width:100%;height:100%;min-height:0;margin:0;padding-right:10px;overflow:hidden auto}.terminal-output::-webkit-scrollbar{display:none}.terminal-line{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;user-select:text;line-height:1.3}.terminal-line+.terminal-line,.terminal-line+.terminal-prompt{margin-top:5px}.terminal-line--input:before{content:none}.terminal-line--input{color:var(--terminal-text)}.terminal-line--output{color:var(--terminal-dim)}.terminal-line--folder{color:var(--terminal-folder)}.terminal-file-button{color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;padding:0}.terminal-file-button:hover,.terminal-file-button:focus-visible{color:var(--terminal-text);text-shadow:.018em 0;outline:0}.terminal-prompt{grid-template-columns:max-content minmax(0,1fr);align-items:start;column-gap:8px;min-height:1.25em;line-height:1.25;display:grid}.terminal-prompt span{color:var(--terminal-text);line-height:1.25}.terminal-prompt>span:first-child{white-space:nowrap}.terminal-input-field{width:100%;min-width:0;min-height:1.25em;color:var(--terminal-text);cursor:text;font-variant-ligatures:none;font-feature-settings:"liga" 0;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;flex:auto;line-height:1.25;display:block;position:relative}.terminal-typed{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;min-width:0;line-height:1.25;display:inline}.terminal-hint{color:var(--terminal-dim);opacity:.54;pointer-events:none;overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word;line-height:1.25;display:inline}.terminal-block-cursor{background:var(--terminal-cursor);width:1ch;height:1.25em;color:var(--terminal-bg);vertical-align:top;justify-content:center;align-items:center;margin:0;line-height:1.25;display:inline-flex}.terminal-block-cursor--character{color:var(--terminal-text);background:#b8b8b56b}.terminal-input-field input{color:#0000;width:100%;min-width:0;font:inherit;line-height:inherit;caret-color:#0000;background:0 0;border:0;outline:0;position:absolute;inset:0}h1{color:var(--page-text);letter-spacing:0;transition:color var(--theme-duration) var(--theme-easing);margin:0;font-size:clamp(3.5rem,7.6vw,7.25rem);line-height:.92;transform:translate(-.075em)}h1 span{display:block}.hero-description{max-width:560px;color:var(--muted-text);transition:color var(--theme-duration) var(--theme-easing);margin:24px 0 0;font-size:clamp(.98rem,1.45vw,1.12rem);line-height:1.5}.hero-description a{color:var(--description-link);opacity:1;text-decoration:none;transition:color .16s,text-shadow .16s}.hero-description a:hover,.hero-description a:focus-visible{color:var(--page-text);text-shadow:.018em 0}@media (width<=640px){.site-shell{width:min(100% - 24px,1440px);height:100vh;padding-top:64px;padding-bottom:64px}h1{font-size:3.5rem}.terminal-zone{flex-direction:column;max-width:100%;margin-top:48px}.bottom-terminal{flex-basis:auto;max-width:100%;height:300px;padding:10px 0}.project-page{padding:84px 18px 48px}.project-back{top:24px;left:18px}}@media (prefers-reduced-motion:reduce){.page-transition,.project-page,.project-back{opacity:1;transition:none;animation:none;transform:none}.project-page{clip-path:none}}
