@font-face{font-style:normal;font-weight:300 700;src:url("./media/fredoka-latin-ext-wght-normal-4NFRIUIM.woff2") format("woff2-variations");font-family:Fredoka Variable;font-display:swap;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-style:normal;font-weight:300 700;src:url(/fonts/fredoka-latin-wght-normal-5.2.5.woff2) format("woff2-variations");font-family:Fredoka Variable;font-display:swap;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-style:normal;font-weight:300 900;src:url("./media/rubik-latin-ext-wght-normal-Q2LZDFCY.woff2") format("woff2-variations");font-family:Rubik Variable;font-display:swap;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-style:normal;font-weight:300 900;src:url(/fonts/rubik-latin-wght-normal-5.2.5.woff2) format("woff2-variations");font-family:Rubik Variable;font-display:swap;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-style:normal;font-weight:400;src:url("./media/dm-mono-latin-ext-400-normal-HV5URJWH.woff2") format("woff2");font-family:DM Mono;font-display:swap;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-style:normal;font-weight:400;src:url("./media/dm-mono-latin-400-normal-ASEO4XL4.woff2") format("woff2");font-family:DM Mono;font-display:swap;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-style:normal;font-weight:500;src:url("./media/dm-mono-latin-ext-500-normal-SA7RRQ4Y.woff2") format("woff2");font-family:DM Mono;font-display:swap;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-style:normal;font-weight:500;src:url("./media/dm-mono-latin-500-normal-5DTZP5O2.woff2") format("woff2");font-family:DM Mono;font-display:swap;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}:root{--bg: #eae4f8;--bg-soft: #f4f0fc;--card: #fffdf7;--ink: #33265f;--ink-soft: #5f5390;--ink-faint: #7a6fa8;--violet: #6647cf;--violet-deep: #4a3199;--accent-text: #5a3dbd;--aubergine: #271b4d;--aubergine-2: #1e1440;--lavender: #c7b9f0;--lavender-2: #9d89dd;--peach: #ffc59b;--peach-deep: #f08a4b;--peach-shadow: #c4651f;--sky: #a5d8f6;--sky-deep: #5aa9dd;--mint: #9fe2c5;--mint-deep: #3fae8c;--rose: #f4a2b6;--stamp-red: #d94f6b;--line: rgba(51, 38, 95, .14);--line-strong: rgba(51, 38, 95, .28);--shadow-soft: rgba(51, 38, 95, .09);--shadow-mid: rgba(51, 38, 95, .13);--btn-ghost-shadow: rgba(51, 38, 95, .22);--header-bg: rgba(234, 228, 248, .82);--terminal-bg: #271b4d;--terminal-edge: #1e1440;--terminal-text: #c4b8ee;--terminal-dim: #8d7fc0;--terminal-bright: #f3eeff;--tile-1: #efe9ff;--tile-2: #ffeede;--tile-3: #e1f3ff;--tile-4: #e2f7ec;--code-chip-bg: rgba(102, 71, 207, .1);--code-chip-ink: #4a3199;--font-display: "Fredoka Variable", "Rubik Variable", sans-serif;--font-body: "Rubik Variable", -apple-system, sans-serif;--font-mono: "DM Mono", ui-monospace, monospace;--header-h: 66px;--frame-w: 1100px;--radius: 22px}:root[data-theme=dark]{--bg: #1e1440;--bg-soft: #251a4c;--card: #2d2158;--ink: #f3eeff;--ink-soft: #c4b8ee;--ink-faint: #9d8fcd;--violet: #7a5be0;--violet-deep: #4a3199;--accent-text: #c0aaff;--lavender: #6f5bb8;--lavender-2: #9d89dd;--line: rgba(243, 238, 255, .14);--line-strong: rgba(243, 238, 255, .3);--shadow-soft: rgba(0, 0, 0, .25);--shadow-mid: rgba(0, 0, 0, .35);--btn-ghost-shadow: rgba(0, 0, 0, .4);--header-bg: rgba(30, 20, 64, .82);--terminal-bg: #170f33;--terminal-edge: #110b28;--tile-1: rgba(122, 91, 224, .22);--tile-2: rgba(240, 138, 75, .18);--tile-3: rgba(90, 169, 221, .18);--tile-4: rgba(63, 174, 140, .18);--code-chip-bg: rgba(199, 185, 240, .16);--code-chip-ink: #d8ccff}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:90px}body{background:var(--bg);color:var(--ink);font-size:16.5px;line-height:1.65;font-family:var(--font-body);-webkit-font-smoothing:antialiased;transition:background .25s ease;overflow-x:hidden}::selection{background:var(--violet);color:#fff}h1,h2,h3{font-weight:600;line-height:1.12;font-family:var(--font-display);letter-spacing:-.01em}a{color:var(--accent-text)}code{border-radius:6px;background:var(--code-chip-bg);padding:1px 6px;color:var(--code-chip-ink);font-size:.88em;font-family:var(--font-mono)}.mono-label{color:var(--accent-text);font-size:12px;font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase}.wrap{margin:0 auto;padding:0 24px;max-width:var(--frame-w)}:focus-visible{outline:3px solid var(--violet);outline-offset:3px;border-radius:6px}.skip-link{position:absolute;top:-60px;left:16px;z-index:1000;transition:top .2s;border-radius:999px;background:var(--violet);padding:10px 20px;color:#fff;font-weight:600;font-size:14px;font-family:var(--font-display);text-decoration:none}.skip-link:focus{top:12px}.reveal{transform:translateY(22px);opacity:0;transition:opacity .65s cubic-bezier(.22,1,.32,1),transform .65s cubic-bezier(.22,1,.32,1)}.reveal.visible{transform:translateY(0);opacity:1}.reveal[data-delay="1"]{transition-delay:.08s}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}.reveal[data-delay="4"]{transition-delay:.32s}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-13px)}}@keyframes float-sm{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes sway{0%,to{transform:rotate(-2.5deg)}50%{transform:rotate(2.5deg)}}@keyframes dashmarch{to{stroke-dashoffset:-22}}@keyframes blinkdot{0%,to{opacity:1}50%{opacity:.25}}g.float,g.float-sm,g.sway{transform-box:fill-box;transform-origin:center}g.float{animation:float 5.5s ease-in-out infinite}g.float-sm{animation:float-sm 4.5s ease-in-out infinite}g.sway{transform-origin:50% 0%;animation:sway 6s ease-in-out infinite}g.delay-1{animation-delay:.9s}g.delay-2{animation-delay:1.8s}.route-dash{animation:dashmarch 1.4s linear infinite;stroke-dasharray:9 13}.route-draw{transition:stroke-dashoffset 2.2s cubic-bezier(.45,0,.2,1) .35s;stroke-dasharray:1;stroke-dashoffset:1}.visible .route-draw{stroke-dashoffset:0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:9px;transition:transform .15s,box-shadow .15s,background .15s;cursor:pointer;box-shadow:0 4px 0 var(--violet-deep);border:0;border-radius:999px;background:var(--violet);padding:11px 24px;color:#fff;font-weight:600;font-size:15px;font-family:var(--font-display);letter-spacing:.01em;text-decoration:none;white-space:nowrap}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--violet-deep)}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--violet-deep)}.btn.ghost{box-shadow:0 4px 0 var(--btn-ghost-shadow);border:2px solid var(--line-strong);background:var(--card);padding:9px 22px;color:var(--ink)}.btn.ghost:hover{box-shadow:0 6px 0 var(--btn-ghost-shadow)}.btn.ghost:active{box-shadow:0 1px 0 var(--btn-ghost-shadow)}.btn.big{padding:15px 32px;font-size:17px}.btn.peach{box-shadow:0 4px 0 var(--peach-shadow);background:var(--peach-deep)}.btn.peach:hover{box-shadow:0 6px 0 var(--peach-shadow)}.btn.peach:active{box-shadow:0 1px 0 var(--peach-shadow)}.site-header{position:sticky;top:0;z-index:900;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:2px solid var(--line);background:var(--header-bg);height:var(--header-h)}.header-inner{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 auto;padding:0 24px;max-width:var(--frame-w);height:100%}.brand{display:flex;align-items:center;gap:11px;color:var(--ink);text-decoration:none}.brand svg{display:block}.brand-name{font-weight:700;font-size:18px;font-family:var(--font-display);letter-spacing:.02em}.brand-name .tld{color:var(--accent-text)}.main-nav{display:flex;gap:2px}.main-nav a{transition:color .15s,background .15s;border-radius:999px;padding:7px 13px;color:var(--ink-soft);font-weight:500;font-size:14.5px;text-decoration:none}.main-nav a:hover{background:#6647cf1a;color:var(--ink)}.header-actions{display:flex;align-items:center;gap:12px}.theme-toggle{display:inline-flex;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;cursor:pointer;box-shadow:0 3px 0 var(--btn-ghost-shadow);border:2px solid var(--line-strong);border-radius:50%;background:var(--card);width:40px;height:40px;color:var(--ink)}.theme-toggle:hover{transform:translateY(-2px) rotate(-8deg);box-shadow:0 5px 0 var(--btn-ghost-shadow)}.theme-toggle:active{transform:translateY(1px);box-shadow:0 1px 0 var(--btn-ghost-shadow)}.theme-toggle .icon-sun{display:none}[data-theme=dark] .theme-toggle .icon-sun{display:inline}[data-theme=dark] .theme-toggle .icon-moon{display:none}section{position:relative;padding:92px 0}.section-head{margin-bottom:52px;max-width:660px}.section-head.center{margin-right:auto;margin-left:auto;text-align:center}.section-head h2{margin:14px 0 16px;font-size:clamp(30px,4vw,44px)}.section-head h2 .accent{color:var(--accent-text)}.section-head p{color:var(--ink-soft);font-size:17.5px}.band{border-top:2px solid var(--line);border-bottom:2px solid var(--line);background:var(--bg-soft)}.whimsy-card{transition:transform .2s,box-shadow .2s,border-color .2s;box-shadow:0 8px 22px var(--shadow-soft);border:2px solid var(--line);border-radius:var(--radius);background:var(--card);padding:26px 26px 28px}.whimsy-card:hover{transform:translateY(-5px);box-shadow:0 16px 30px var(--shadow-mid);border-color:var(--violet)}.terminal{box-shadow:0 14px 34px #140c304d,0 4px 0 var(--terminal-edge);border:2px solid var(--terminal-edge);border-radius:18px;background:var(--terminal-bg);overflow:hidden;font-size:13.5px;line-height:1.9;font-family:var(--font-mono)}.terminal-bar{display:flex;align-items:center;gap:12px;border-bottom:1px solid rgba(255,255,255,.1);padding:11px 18px}.terminal-dots{display:flex;gap:7px}.terminal-dots span{border-radius:50%;width:11px;height:11px}.terminal-dots span:nth-child(1){background:var(--rose)}.terminal-dots span:nth-child(2){background:var(--peach)}.terminal-dots span:nth-child(3){background:var(--mint)}.terminal-title{color:var(--terminal-dim);font-size:11.5px;letter-spacing:.06em}.terminal-body{padding:18px 22px 22px;color:var(--terminal-text)}.terminal-body .line{transform:translateY(4px);opacity:0;transition:opacity .4s ease,transform .4s ease;white-space:pre-wrap;word-break:break-word}.visible .terminal-body .line{transform:none;opacity:1}.visible .terminal-body .line:nth-child(1){transition-delay:.5s}.visible .terminal-body .line:nth-child(2){transition-delay:.9s}.visible .terminal-body .line:nth-child(3){transition-delay:1.4s}.visible .terminal-body .line:nth-child(4){transition-delay:1.9s}.visible .terminal-body .line:nth-child(5){transition-delay:2.4s}.visible .terminal-body .line:nth-child(6){transition-delay:2.8s}.t-prompt{color:#7d6fae}.t-cmd{color:var(--terminal-bright);font-weight:500}.t-flag{color:var(--sky)}.t-str{color:var(--peach)}.t-ok{color:var(--mint)}.t-dim{color:var(--terminal-dim)}.cursor{display:inline-block;vertical-align:-2px;animation:blinkdot 1s steps(1) infinite;background:var(--mint);width:8px;height:15px}.pill-row{display:flex;flex-wrap:wrap;gap:10px 12px}.pill{transition:transform .15s,color .15s,border-color .15s;cursor:default;border:2px solid var(--line);border-radius:999px;background:var(--card);padding:6px 16px;color:var(--ink-soft);font-weight:500;font-size:13px;font-family:var(--font-mono);letter-spacing:.06em}.pill:hover{transform:translateY(-3px) rotate(-1deg);border-color:var(--violet);color:var(--accent-text)}.ink-stamp{position:absolute;transform:rotate(-9deg);-webkit-mask-image:radial-gradient(circle at 30% 60%,black 55%,rgba(0,0,0,.55) 80%,black);mask-image:radial-gradient(circle at 30% 60%,#000 55%,#0000008c 80%,#000);border:3px solid var(--stamp-red);border-radius:9px;background:transparent;padding:5px 14px 4px;pointer-events:none;color:var(--stamp-red);font-weight:700;font-family:var(--font-display);letter-spacing:.14em}.site-footer{border-top:2px solid var(--aubergine);background:var(--aubergine-2);color:#b3a6e3}:root[data-theme=dark] .site-footer{border-top-color:#f3eeff1a;background:#170f33}.footer-inner{margin:0 auto;padding:40px 24px 20px;max-width:var(--frame-w)}.footer-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding-bottom:24px}.footer-brand{display:flex;align-items:center;gap:10px;color:#f6f1ff;font-weight:600;font-size:16px;font-family:var(--font-display)}.footer-nav{display:flex;flex-wrap:wrap;gap:4px 22px}.footer-nav a{transition:color .15s;color:#b3a6e3;font-size:14px;text-decoration:none}.footer-nav a:hover{color:var(--peach)}.footer-meta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid rgba(255,255,255,.1);padding-top:18px;color:#7d6fae;font-size:11.5px;font-family:var(--font-mono);letter-spacing:.05em}.footer-status{display:inline-flex;align-items:center;gap:9px;color:#b3a6e3}.footer-status:before{animation:blinkdot 2.4s ease-in-out infinite;border-radius:50%;background:var(--mint-deep);width:8px;height:8px;content:""}@media(max-width:720px){section{padding:68px 0}.main-nav{display:none}.header-inner{padding:0 16px}.brand-name{font-size:15px;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}.reveal,.terminal-body .line{transform:none;opacity:1}.route-draw{stroke-dashoffset:0}.cursor{opacity:1}}
