:root{--bg:#faf6f0;--surface:#fffdf9;--text:#2a2320;--text-muted:#6b5f58;--accent:#1e3a8a;--accent-hover:#1a2f6b;--border:#e8ddd0;--shadow:0 1px 2px #2a23200a, 0 4px 12px #2a23200f;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);min-height:100vh}h1,h2,h3{letter-spacing:-.01em;color:var(--text);margin:0;font-family:Fraunces,Source Serif Pro,Georgia,serif;font-weight:500;line-height:1.2}p{margin:0}a{color:var(--accent);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;transition:color .12s}a:hover{color:var(--accent-hover)}#root{min-height:100vh}@font-face{font-family:Tiny5;src:url(/fonts/Tiny5-Regular.ttf)format("truetype");font-display:swap}.pixelpal-feature{background:#edf2e7;border:1px solid #cbd8bf;border-radius:16px;padding:32px}.pixelpal-heading-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.pixel-kicker{letter-spacing:1px;color:#3b623e;font-family:Tiny5,monospace;font-size:18px}.pixelpal-status{color:#466348;white-space:nowrap;align-items:center;gap:7px;font-size:12px;display:flex}.pixelpal-status>span{background:#417344;width:6px;height:6px}.pixelpal-feature h3{border:0;margin-bottom:8px;padding:0;font-size:46px}.pixelpal-lede{color:#355039;margin-bottom:16px;font-size:20px}.pixelpal-description{color:#4f5f4d;max-width:70ch}.pixelpal-demo{max-width:680px;margin:32px auto 24px}.pixelpal-device{cursor:pointer;background:#202624;border:1px solid #3d443f;border-radius:18px;width:100%;padding:12px 14px 6px;transition:transform .15s;display:block;box-shadow:0 6px #141a17,0 18px 28px #233a2320}.pixelpal-device:hover{transform:translateY(-2px)}.pixelpal-device:active{transform:translateY(2px)}.pixelpal-device:focus-visible,.pixelpal-cta:focus-visible{outline-offset:6px;outline:3px solid #b66b2c}.pixelpal-bezel{background:#146b3a;border:3px solid #101913;border-radius:5px;display:block;overflow:hidden}.pixelpal-bezel img{aspect-ratio:640/172;width:100%;height:auto;display:block}.pixelpal-device-mark{color:#82958a;letter-spacing:2px;justify-content:space-between;padding:5px 5px 0;font-family:Tiny5,monospace;font-size:11px;display:flex}.pixelpal-device-mark span{color:#88c780}.pixelpal-demo-caption{color:#52644e;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:18px;font-size:12px;display:flex}.pixelpal-demo-caption button{color:#335436;font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.pixelpal-feature .pixelpal-specs{margin-bottom:24px}.pixelpal-feature .pixelpal-specs li{color:#425c41;background:#f6f9f1;border-color:#cbd8bf}.pixelpal-feature-footer{border-top:1px solid #cbd8bf;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;padding-top:22px;display:flex}.pixelpal-feature-footer p{color:#52644e;font-size:14px}.pixelpal-cta{color:#f9faed;background:#264f32;border:1px solid #264f32;border-radius:5px;justify-content:space-between;align-items:center;gap:22px;padding:12px 18px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.pixelpal-cta:hover{color:#fff;background:#1d4127}@media (width<=600px){.pixelpal-feature{padding:24px 18px}.pixelpal-feature h3{font-size:36px}.pixel-kicker{font-size:15px}.pixelpal-status{font-size:10px}.pixelpal-device{border-radius:12px;padding:8px 8px 4px}}@media (prefers-reduced-motion:reduce){.pixelpal-device{transition:none}}.page{flex-direction:column;gap:80px;max-width:960px;margin:0 auto;padding:80px 32px 48px;display:flex}@media (width<=720px){.page{gap:56px;padding:48px 20px 32px}}.hero{grid-template-columns:auto 1fr;align-items:center;gap:40px;display:grid}.headshot{object-fit:cover;border:4px solid var(--surface);width:220px;height:220px;box-shadow:var(--shadow);border-radius:50%}.hero-text h1{margin-bottom:8px;font-size:48px}.tagline{color:var(--accent);letter-spacing:.01em;margin-bottom:20px;font-size:18px;font-weight:500}.bio{color:var(--text-muted);max-width:56ch;margin-bottom:24px;font-size:17px}.hero-links{gap:20px;font-weight:500;display:flex}.hero-links a{padding-bottom:2px}@media (width<=720px){.hero{text-align:center;grid-template-columns:1fr;justify-items:center;gap:24px}.headshot{width:160px;height:160px}.hero-text h1{font-size:36px}.hero-links{justify-content:center}.bio{text-align:left}}.block h2{border-bottom:1px solid var(--border);margin-bottom:24px;padding-bottom:12px;font-size:28px}.timeline{flex-direction:column;gap:28px;margin:0;padding:0;list-style:none;display:flex}.role-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:10px;display:flex}.role h3{font-size:19px}.role-company{color:var(--accent);font-weight:500}.role-meta{color:var(--text-muted);white-space:nowrap;font-size:14px}.role-bullets{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.role-bullets li{color:var(--text-muted);padding-left:18px;font-size:15.5px;position:relative}.role-bullets li:before{content:"";background:var(--accent);opacity:.7;border-radius:50%;width:6px;height:6px;position:absolute;top:10px;left:2px}.role-tech{flex-wrap:wrap;align-items:center;gap:8px 10px;margin-top:14px;display:flex}.role-tech-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-family:Inter,sans-serif;font-size:12px;font-weight:600}@media (width<=640px){.role-head{flex-direction:column;gap:4px}.role-meta{white-space:normal}}.research-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:24px}.research-card h3{margin-bottom:8px;font-size:20px}.research-card p{color:var(--text-muted);font-size:15.5px}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;display:grid}.skill-group h3{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:12px;font-family:Inter,sans-serif;font-size:15px;font-weight:600}.soft-skills{border-top:1px dashed var(--border);color:var(--text-muted);margin-top:24px;padding-top:20px;font-size:15px}.soft-skills strong{color:var(--text);font-weight:600}.project-grid{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;transition:transform .16s,box-shadow .16s,border-color .16s}.project-card:hover{box-shadow:var(--shadow);border-color:var(--accent);transform:translateY(-2px)}.project-head{color:inherit;flex-wrap:wrap;align-items:flex-start;gap:16px 32px;padding:20px 24px;text-decoration:none;display:flex}.project-head>.project-text{flex:320px;min-width:0}.project-head>.tags{flex:0 auto;justify-content:flex-end;align-self:center}.project-head:hover{color:inherit}.project-card h3{color:var(--text);margin-bottom:6px;font-size:20px}.project-card p{color:var(--text-muted);margin-bottom:0;font-size:15px}@media (width<=600px){.project-head>.tags{justify-content:flex-start;align-self:flex-start}}.project-diagram{border-top:1px solid var(--border);padding:18px 24px 22px}.project-diagram-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:14px;font-family:Inter,sans-serif;font-size:11px;font-weight:600;display:block}.diagram{align-items:stretch;gap:6px;display:flex}.diagram-flow{flex-wrap:wrap;align-items:center}.diagram-step{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex-direction:column;flex:1 1 0;gap:2px;min-width:96px;padding:10px 14px;display:flex}.diagram-step-label{color:var(--text);font-size:13px;font-weight:600}.diagram-step-sub{color:var(--text-muted);font-size:11px}.diagram-arrow{color:var(--accent);flex:none;align-self:center;font-size:18px}.diagram-arrow-lg{font-size:26px}.diagram-io{flex-wrap:wrap;align-items:center}.diagram-io-panel{border:1px solid var(--border);background:var(--bg);border-radius:8px;flex:200px;padding:12px 14px}.diagram-io-out{border-color:var(--accent)}.diagram-io-tag{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:10px;font-weight:600;display:block}.diagram-io-text{color:var(--text);margin:0;font-size:13.5px}.diagram-io-meta{color:var(--text-muted);margin-top:8px;font-size:11.5px;display:block}.diagram-chat{flex-wrap:wrap;align-items:center}.diagram-chat-client{flex:180px}.diagram-chat-bubble{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:10px;margin:6px 0 0;padding:8px 12px;font-size:13px}.diagram-chat-out{border-color:var(--accent)}.diagram-chat-hub{flex-direction:column;flex:none;align-items:center;gap:2px;padding:0 4px;display:flex}.diagram-chat-hub-label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:10px}@media (width<=520px){.diagram-flow .diagram-arrow{transform:rotate(90deg)}.diagram-flow{flex-direction:column;align-items:stretch}.diagram-step{min-width:0}}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:500}.footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;padding-top:24px;font-size:14px}.encounter-page{--enc-ink:#e9efcf;--enc-muted:#b3c4ad;--enc-lime:#b9df80;min-height:100dvh;color:var(--enc-ink);isolation:isolate;background:#13251e;padding:24px 22px 40px;position:relative}.encounter-page:before{content:"";z-index:-1;pointer-events:none;background-image:linear-gradient(#accc9820 1px,#0000 1px),linear-gradient(90deg,#accc9820 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0004,#0000 65%);mask-image:linear-gradient(#0004,#0000 65%)}.encounter-shell{max-width:590px;margin:0 auto}.encounter-page button,.encounter-page a{-webkit-tap-highlight-color:transparent}.encounter-page a{color:var(--enc-ink)}.encounter-page button:focus-visible,.encounter-page a:focus-visible{outline-offset:5px;outline:3px solid #f2d286}.encounter-skip{z-index:5;background:#13251e;padding:12px;position:absolute;top:-100px}.encounter-skip:focus{top:8px}.encounter-nav{justify-content:space-between;align-items:center;gap:16px;margin-bottom:48px;display:flex}.encounter-nav>a{letter-spacing:1px;font:20px Tiny5,monospace;text-decoration:none}.pixel-clover{color:var(--enc-lime);margin-right:6px}.motion-toggle{color:var(--enc-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:8px 0 8px 8px;font:11px/1.5 Inter,sans-serif;text-decoration:underline}.encounter-eyebrow{letter-spacing:2px;color:var(--enc-lime);text-align:center;margin-bottom:16px;font:17px Tiny5,monospace}.encounter-eyebrow span{color:#f2d286}.encounter-intro h1{color:#edf2db;letter-spacing:0;text-align:center;max-width:490px;margin:0 auto;font:52px/.95 Tiny5,monospace;animation:.5s steps(5,end) both reveal-title}.encounter-intro h1 span{color:var(--enc-lime);white-space:nowrap}.encounter-scene{border-bottom:4px solid #729859;height:246px;margin-top:14px;position:relative;overflow:hidden}.sprite-button{cursor:pointer;z-index:2;background:0 0;border:0;padding:0;animation:.7s steps(6,end) both arrive;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.pixel-anthony{width:170px;height:auto;display:block;overflow:visible}.pixel-character{transform-origin:50%;animation:2.5s steps(3,end) infinite character-bob}.pixel-wave-arm{transform-origin:27px 28px;transform:rotate(-16deg)}[data-waving=true] .pixel-wave-arm{animation:.35s steps(3,end) infinite alternate character-wave}.scene-ground{background:repeating-linear-gradient(90deg,#0000 0 28px,#688c4f 28px 32px),#476b3c;border-top:6px solid #98b76b;height:20px;position:absolute;bottom:0;left:0;right:0}.encounter-rarity{color:#edd390;font:21px Tiny5,monospace;animation:3s steps(3,end) infinite rarity-pulse;position:absolute;top:48px;left:9%;transform:rotate(-8deg)}.encounter-rarity span{letter-spacing:2px;font:10px Inter,sans-serif}.scene-star{color:#c6de9b;font:30px Tiny5,monospace;animation:3s steps(4,end) infinite sparkle;position:absolute}.star-one{top:35px;right:16%}.star-two{font-size:21px;animation-delay:-.9s;top:135px;right:9%}.star-three{font-size:18px;animation-delay:-1.8s;top:148px;left:20%}.scene-cloud{background:#2c4637;width:70px;height:8px;animation:12s steps(12,end) infinite alternate cloud-drift;position:absolute;box-shadow:10px -8px #2c4637,24px -16px #2c4637,35px -8px #2c4637}.cloud-one{opacity:.6;top:52px;left:35%}.cloud-two{opacity:.4;width:30px;animation-delay:-6s;top:116px;right:10%}.scene-grass{z-index:1;background:#9bb875;width:4px;height:17px;position:absolute;bottom:18px;box-shadow:-8px 7px #9bb875,8px 10px #9bb875}.grass-one{left:10%}.grass-two{height:24px;right:12%}.wave-bubble{z-index:3;white-space:nowrap;color:#f5e7bb;font:18px Tiny5,monospace;position:absolute;top:10px;left:50%;transform:translate(-50%)}.encounter-dialogue{color:#263d2c;background:#eceddb;border:4px solid #41593b;outline:2px solid #a9bd8c;margin-top:16px;padding:22px 24px 21px;position:relative;box-shadow:5px 5px #0b1712}.dialogue-label{letter-spacing:1.2px;color:#557045;margin-bottom:8px;font:14px Tiny5,monospace;display:block}.visitor-line{min-height:32px;font:27px/1.15 Tiny5,monospace}.visitor-line strong{color:#416d2e;font-weight:400}.encounter-dialogue p{color:#52664a;margin-top:8px;font-size:13px}.counter-retry{color:#4f622f;cursor:pointer;background:0 0;border:0;padding:8px 0 0;font:12px/1.5 Inter,sans-serif;text-decoration:underline}.encounter-contacts{padding-top:40px;scroll-margin-top:24px}.encounter-identity{justify-content:space-between;align-items:center;gap:12px;margin-bottom:15px;display:flex}.encounter-identity h2{color:var(--enc-ink);letter-spacing:0;margin-bottom:5px;font:28px Tiny5,monospace}.encounter-identity p{color:var(--enc-muted);font-size:13px}.identity-level{color:var(--enc-lime);border-left:2px solid #4e6b49;padding-left:16px;font:17px/1 Tiny5,monospace}.identity-level>span{color:var(--enc-muted);letter-spacing:1px;font-size:12px}.encounter-bio{color:var(--enc-muted);max-width:53ch;margin-bottom:24px;font-size:14px;line-height:1.7}.contact-link-list{gap:12px;display:grid}.encounter-link{width:100%;min-height:84px;color:var(--enc-ink);text-align:left;font:inherit;cursor:pointer;background:#1e3528;border:1px solid #4b654c;align-items:center;gap:16px;padding:16px 20px;text-decoration:none;transition:transform .15s,background .15s;display:flex;box-shadow:3px 3px #0b1a12}.encounter-link:hover{color:var(--enc-ink);background:#2a4531;transform:translate(-2px,-2px)}.discord-link{background:#364132;border-color:#a0b77c}.contact-link-icon{text-align:center;color:#bdd998;flex:0 0 36px;font:27px Tiny5,monospace}.contact-link-copy{flex-direction:column;flex:1;min-width:0;display:flex}.contact-link-label{color:var(--enc-muted);letter-spacing:.6px;margin-bottom:2px;font-size:11px}.contact-link-copy strong{overflow-wrap:anywhere;font-size:15px;font-weight:500;line-height:1.5}.contact-link-arrow{color:#c5d9a6;font:23px Tiny5,monospace}.copy-feedback{color:#d8e9b9;margin-top:4px;font-size:11px}.encounter-footer{text-align:center;color:#abbea1;border-top:1px solid #304b35;margin-top:48px;padding-top:24px}.encounter-footer a{color:#d2e4b6;font-size:12px}@keyframes character-bob{50%{transform:translateY(-1px)}}@keyframes character-wave{to{transform:rotate(-50deg)}}@keyframes arrive{0%{opacity:0;translate:65px}to{opacity:1;translate:0}}@keyframes reveal-title{0%{opacity:0;transform:translateY(8px)}}@keyframes sparkle{0%,to{opacity:.25}50%{opacity:1}}@keyframes rarity-pulse{50%{transform:rotate(-8deg)translateY(-3px)}}@keyframes cloud-drift{to{translate:20px}}.encounter-page[data-paused=true] *,.encounter-page[data-paused=true] :before{animation-play-state:paused!important}@media (width<=440px){.encounter-page{padding:18px 20px 32px}.encounter-nav{margin-bottom:32px}.encounter-intro h1{max-width:340px;font-size:42px}.encounter-scene{height:221px}.pixel-anthony{width:151px}.encounter-rarity{font-size:17px;left:2%}.encounter-rarity span{font-size:8px}.encounter-dialogue{padding:18px 16px}.visitor-line{font-size:24px}.encounter-link{gap:10px;padding:14px 13px}.contact-link-icon{flex-basis:30px}.contact-link-copy strong{font-size:13px}}@media (prefers-reduced-motion:reduce){.encounter-page *,.encounter-page :before{transition:none!important;animation:none!important}}
