.site-header[data-astro-cid-3ef6ksr2]{position:sticky;top:0;z-index:100;background:var(--paper-card);box-shadow:0 2px 10px #2c26201f}.tape-strip[data-astro-cid-3ef6ksr2]{position:absolute;inset:0;background:repeating-linear-gradient(90deg,var(--tape) 0px,var(--tape) 2px,transparent 2px,transparent 4px);opacity:.15;pointer-events:none}.header-inner[data-astro-cid-3ef6ksr2]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;position:relative}.logo[data-astro-cid-3ef6ksr2]{font-family:var(--font-head);font-size:1.15rem;text-decoration:none;color:var(--ink);letter-spacing:1px}.logo[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{color:var(--accent)}nav[data-astro-cid-3ef6ksr2] ul[data-astro-cid-3ef6ksr2]{display:flex;gap:1.75rem;list-style:none;margin:0;padding:0}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]{font-family:var(--font-hand);font-size:1.1rem;text-decoration:none;color:var(--ink-soft);position:relative;transition:color .25s ease}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:2px;background:var(--accent);transition:width .25s ease}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover{color:var(--accent)}nav[data-astro-cid-3ef6ksr2] a[data-astro-cid-3ef6ksr2]:hover:after{width:100%}.nav-toggle[data-astro-cid-3ef6ksr2]{display:none;flex-direction:column;justify-content:center;gap:5px;width:32px;height:32px;background:none;border:none;cursor:pointer;padding:0;z-index:1200}.nav-toggle[data-astro-cid-3ef6ksr2] span[data-astro-cid-3ef6ksr2]{display:block;height:2px;background:var(--ink);transition:transform .3s ease,opacity .3s ease}.nav-toggle[data-astro-cid-3ef6ksr2].is-open span[data-astro-cid-3ef6ksr2]:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle[data-astro-cid-3ef6ksr2].is-open span[data-astro-cid-3ef6ksr2]:nth-child(2){opacity:0}.nav-toggle[data-astro-cid-3ef6ksr2].is-open span[data-astro-cid-3ef6ksr2]:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-backdrop[data-astro-cid-3ef6ksr2]{display:none}@media(max-width:640px){.nav-toggle[data-astro-cid-3ef6ksr2]{display:flex}nav[data-astro-cid-3ef6ksr2][data-nav]{position:fixed;top:0;right:0;height:100vh;width:min(78vw,300px);background:var(--paper-card);box-shadow:-8px 0 24px #2c262040;padding:5.5rem 2rem 2rem;transform:translate(100%);transition:transform .45s var(--bounce);z-index:1100}nav[data-astro-cid-3ef6ksr2][data-nav].is-open{transform:translate(0)}nav[data-astro-cid-3ef6ksr2][data-nav] ul[data-astro-cid-3ef6ksr2]{flex-direction:column;align-items:flex-start;gap:1.6rem}nav[data-astro-cid-3ef6ksr2][data-nav] a[data-astro-cid-3ef6ksr2]{font-size:1.3rem}.nav-backdrop[data-astro-cid-3ef6ksr2]{display:block;position:fixed;inset:0;background:#2c262059;opacity:0;pointer-events:none;transition:opacity .35s ease;z-index:1050}.nav-backdrop[data-astro-cid-3ef6ksr2].is-open{opacity:1;pointer-events:auto}}.site-footer[data-astro-cid-sz7xmlte]{text-align:center;padding:2rem 1.5rem 3rem;background:var(--paper-alt);font-family:var(--font-hand);color:var(--ink-soft);font-size:1rem}.stack[data-astro-cid-sz7xmlte]{color:var(--accent);font-weight:700}.intro{display:none}html.intro-on{overflow:hidden}html.intro-on .intro{display:grid;place-items:center;position:fixed;inset:0;z-index:1000;padding:max(1.5rem,env(safe-area-inset-top)) max(1.5rem,env(safe-area-inset-right)) max(1.5rem,env(safe-area-inset-bottom)) max(1.5rem,env(safe-area-inset-left))}html.intro-on .intro:before{content:"";position:fixed;top:-50vh;right:0;bottom:-50vh;left:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,#ffffff6b,#ffffff1f 40%),#faf6ea33;-webkit-backdrop-filter:blur(22px) saturate(180%);backdrop-filter:blur(22px) saturate(180%)}@media(min-width:641px){html.intro-on .intro:before{background:radial-gradient(ellipse at 50% 50%,#fffcf299,#faf6ea00 60%),#f3ecdcf0;-webkit-backdrop-filter:blur(40px) saturate(140%);backdrop-filter:blur(40px) saturate(140%)}}html.intro-ready .intro{animation:introOut 1s cubic-bezier(.4,0,.2,1) 3.9s forwards}html.intro-on .hero-title .line{animation-play-state:paused}.intro-svg{display:block;width:min(calc(100vw - 3rem),880px);height:auto;max-height:calc(100dvh - 3rem);overflow:visible;will-change:transform}.intro-text tspan.pad{animation:none!important;stroke:none;fill:none}.intro-glass{filter:drop-shadow(0 1.5px 1px rgba(255,255,255,.85)) drop-shadow(0 12px 22px rgba(44,38,32,.22))}.intro-defs{position:absolute;width:0;height:0;overflow:hidden}.intro-svg--stacked{display:none;width:min(calc(100vw - 3rem),560px)}@media(max-width:640px),(max-aspect-ratio:4/5){.intro-svg--wide{display:none}.intro-svg--stacked{display:block}}.intro-text{font-family:Yellowtail,Kalam,cursive;font-size:170px;fill:transparent;stroke:url(#intro-grad);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.intro-text tspan{stroke-dasharray:1500;stroke-dashoffset:1500;fill:url(#intro-grad);fill-opacity:0}html.intro-ready .intro-text tspan{animation:writeStroke .95s cubic-bezier(.5,.1,.3,1) calc(.45s + var(--i) * .17s) forwards,fillIn .7s ease calc(.8s + var(--i) * .17s) forwards,thinStroke .6s ease 3.1s forwards}@keyframes writeStroke{to{stroke-dashoffset:0}}@keyframes fillIn{to{fill-opacity:1}}@keyframes thinStroke{to{stroke-opacity:0}}@keyframes introOut{to{opacity:0;visibility:hidden}}.intro.is-leaving .intro-glass{animation:textOut 1s cubic-bezier(.4,0,.2,1) forwards}@keyframes textOut{to{opacity:0;transform:scale(1.12);filter:blur(12px)}}:root{--paper: #f3ecdc;--paper-alt: #ece2c9;--paper-card: #faf6ea;--paper-line: #d9cdab;--ink: #2c2620;--ink-soft: #5c5240;--accent: #c1440e;--accent-soft: #e0855a;--accent-2: #2f6f6a;--tape: rgba(255, 236, 158, .65);--tape-edge: rgba(196, 164, 76, .35);--shadow-1: 0 1px 2px rgba(44, 38, 32, .12), 0 8px 20px -8px rgba(44, 38, 32, .25);--shadow-2: 0 2px 4px rgba(44, 38, 32, .15), 0 18px 34px -14px rgba(44, 38, 32, .35);--bounce: cubic-bezier(.34, 1.56, .64, 1);--font-head: "Special Elite", "Courier New", monospace;--font-hand: "Kalam", "Comic Sans MS", cursive;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--max-width: 1100px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.65;overflow-x:hidden;position:relative}img{max-width:100%;display:block}a{color:inherit}h1,h2,h3{font-family:var(--font-head);letter-spacing:.5px;margin:0 0 .6em;color:var(--ink)}p{margin:0 0 1em}section{position:relative;padding:5.5rem 1.5rem 7rem}.wrap{max-width:var(--max-width);margin:0 auto}.section-alt{background:var(--paper-alt)}.eyebrow{display:inline-block;font-family:var(--font-hand);font-size:1.15rem;color:var(--accent);transform:rotate(-2deg);margin-bottom:.4rem}.grain-overlay{position:fixed;inset:-10%;z-index:999;pointer-events:none;opacity:.045;mix-blend-mode:multiply;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");animation:grainMove 9s steps(10) infinite}@keyframes grainMove{0%,to{transform:translate(0)}10%{transform:translate(-2%,-3%)}20%{transform:translate(-4%,2%)}30%{transform:translate(2%,-4%)}40%{transform:translate(-2%,5%)}50%{transform:translate(-4%,2%)}60%{transform:translate(3%)}70%{transform:translateY(3%)}80%{transform:translate(-3%)}90%{transform:translate(2%,2%)}}.paper-card{position:relative;background:var(--paper-card);box-shadow:var(--shadow-1);padding:2rem;clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%);transition:transform .35s var(--bounce),box-shadow .35s ease}.paper-card:after{content:"";position:absolute;top:0;right:0;width:22px;height:22px;background:linear-gradient(135deg,var(--paper-alt) 50%,transparent 50%);box-shadow:-3px 3px 6px #2c262033;transition:width .3s ease,height .3s ease}.paper-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}.paper-card:hover:after{width:30px;height:30px}.tape{position:absolute;width:90px;height:30px;background:var(--tape);border:1px solid var(--tape-edge);box-shadow:0 2px 4px #2c262026;opacity:.9;animation:tapeSway 6s ease-in-out infinite;transform-origin:top center}@keyframes tapeSway{0%,to{rotate:0deg}50%{rotate:1.5deg}}.stamp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-head);color:var(--accent);border:3px double var(--accent);border-radius:50%;text-transform:uppercase;letter-spacing:1px;mix-blend-mode:multiply}.paper-scrap{position:absolute;background:var(--paper-card);box-shadow:var(--shadow-1);display:flex;align-items:center;justify-content:center;font-size:1.3rem;animation:floatScrap 7s ease-in-out infinite}@keyframes floatScrap{0%,to{transform:translateY(0) rotate(var(--rot, 0deg))}50%{transform:translateY(-10px) rotate(calc(var(--rot, 0deg) + 3deg))}}.torn-divider{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:40px;line-height:0}.torn-divider svg{width:100%;height:100%;display:block}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-head);font-size:.95rem;padding:.85rem 1.6rem;background:var(--ink);color:var(--paper-card);border:none;cursor:pointer;text-decoration:none;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,0 100%);box-shadow:var(--shadow-1);transition:transform .25s var(--bounce),box-shadow .25s ease,background .25s ease}.btn:hover{transform:translateY(-3px) rotate(-1deg);box-shadow:var(--shadow-2);background:var(--accent)}.btn:active{transform:translateY(-1px) scale(.97)}.btn-outline{background:transparent;color:var(--ink);border:2px solid var(--ink);clip-path:none}.btn-outline:hover{background:var(--ink);color:var(--paper-card)}h2[data-reveal]{transform:translateY(28px) rotate(-1.5deg)}h2[data-reveal].is-visible{transform:translateY(0) rotate(0)}[data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.3,1),transform .7s cubic-bezier(.2,.7,.3,1)}[data-reveal].is-visible{opacity:1;transform:translateY(0)}.no-js [data-reveal],.no-js .row,.no-js .project-tags span{opacity:1!important;transform:none!important;transition:none!important}@media(max-width:720px){section{padding:4rem 1.25rem 5.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-reveal]{opacity:1;transform:none;transition:none}.grain-overlay,.tape,.paper-scrap{animation:none}}.page-hero{padding-top:4.5rem;padding-bottom:3rem;background:var(--paper)}.page-hero h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.1;max-width:22ch}.page-lead{font-size:1.15rem;color:var(--ink-soft);max-width:62ch}.page-body{padding-top:3rem;padding-bottom:5rem;background:var(--paper-alt)}.prose{max-width:760px}.prose h2{font-size:clamp(1.35rem,3vw,1.8rem);margin-top:2.6rem}.prose h3{font-size:1.1rem;margin-top:1.4rem}.prose p,.prose li{color:var(--ink-soft);font-size:1.05rem}.prose a{color:var(--accent)}.prose ul,.prose ol{padding-left:1.3rem;margin:0 0 1em}.prose li{margin-bottom:.4rem}.prose table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;background:var(--paper-card);box-shadow:var(--shadow-1);font-size:.98rem}.prose th,.prose td{text-align:left;padding:.7rem .9rem;border-bottom:1px dashed var(--paper-line);vertical-align:top}.prose th{font-family:var(--font-head);font-weight:400;color:var(--ink)}.table-scroll{overflow-x:auto}.answer-box{background:var(--paper-card);border-left:4px solid var(--accent);padding:1.1rem 1.3rem;box-shadow:var(--shadow-1);margin:0 0 1.5rem}.answer-box p:last-child{margin-bottom:0}.app-list{list-style:none;padding:0!important;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.app-list li{background:var(--paper-card);padding:1rem 1.1rem;box-shadow:var(--shadow-1);margin:0}.app-list strong{display:block;font-family:var(--font-head);font-weight:400;color:var(--ink);margin-bottom:.2rem}.faq details{background:var(--paper-card);padding:.9rem 1.1rem;margin-bottom:.8rem;box-shadow:var(--shadow-1)}.faq summary{cursor:pointer;font-weight:600;color:var(--ink)}.faq details p{margin:.7rem 0 0}.breadcrumbs{font-family:var(--font-hand);font-size:.95rem;color:var(--ink-soft);margin-bottom:1rem}.breadcrumbs a{color:var(--accent)}
