@import"https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";@import"https://api.fontshare.com/v2/css?f[]=zodiak@400,500,600,700&display=swap";:root{--bg: #14110b;--paper: #1c1813;--terminal: #0d0a06;--ink: #ece5d6;--ink-2: #c5bca9;--muted: #8c8474;--muted-2: #544f45;--rule: #2a2620;--rule-soft: #1f1c16;--pass: #5fd388;--pass-bg: #163a25;--warn: #d8a04a;--warn-bg: #3a2a10;--fail: #e36b5e;--accent: #23c9d6;--display: "Zodiak", Georgia, "Times New Roman", serif;--sans: "Hanken Grotesk", system-ui, -apple-system, sans-serif;--mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--serif: "Zodiak", Georgia, serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink-2);font-family:var(--sans);font-size:16px;line-height:1.65;font-weight:400;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle,rgba(236,229,214,.03) 1px,transparent 1px);background-size:26px 26px;pointer-events:none;z-index:-2}::selection{background:var(--accent);color:var(--terminal)}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}code{font-family:var(--mono)}.section-head{padding:0 56px;margin:0 0 26px;display:flex;align-items:baseline;gap:14px}.section-head .ix{font-family:var(--mono);font-size:12px;color:var(--accent);letter-spacing:.04em}.section-head h2{font-family:var(--display);font-size:clamp(24px,3.4vw,32px);font-weight:600;letter-spacing:-.015em;color:var(--ink)}html.js .reveal{opacity:0;transform:translateY(16px)}html.js .reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.6,.2,1)}@keyframes blink{50%{opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #5fd3888c}70%{box-shadow:0 0 0 7px #5fd38800}to{box-shadow:0 0 #5fd38800}}@media (prefers-reduced-motion: reduce){html.js .reveal{opacity:1;transform:none}*{animation:none!important}}@media (max-width: 920px){.section-head{padding:0 24px}}.app-root{position:relative;min-height:100vh}.bg-canvas{position:absolute;top:0;left:0;width:100%;pointer-events:none;z-index:-1}.status-bar{position:sticky;top:0;z-index:50;background:var(--terminal);color:var(--ink-2);font-family:var(--mono);font-size:11px;padding:10px 32px;display:flex;align-items:center;gap:18px;letter-spacing:.01em;border-bottom:1px solid var(--rule)}.status-bar .status-dot{width:7px;height:7px;border-radius:50%;background:var(--pass);box-shadow:0 0 #5fd3888c;animation:pulse 2.4s infinite;flex-shrink:0}.status-bar .v{color:var(--ink)}.status-bar .sep{color:var(--muted-2)}.status-bar .right{margin-left:auto;display:flex;gap:18px;align-items:center}.live-tag{color:var(--muted-2);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.live-tag.live{color:var(--pass)}.live-tag.fallback{color:var(--warn)}@media (max-width: 920px){.status-bar{padding:10px 18px;gap:10px;flex-wrap:wrap}.status-bar .right{margin-left:0;gap:12px}}.nav{padding:20px 56px;display:flex;justify-content:space-between;align-items:center;font-family:var(--sans);font-size:14px}.nav-name{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.nav-links{display:flex;gap:26px;align-items:center;color:var(--muted)}.nav-links a{transition:color .15s,border-color .15s;border-bottom:1px solid transparent;padding-bottom:2px}.nav-links a:hover{color:var(--ink);border-bottom-color:var(--ink)}@media (max-width: 920px){.nav{padding:18px 24px}.nav-links{gap:18px}}.hero{padding:60px 56px 80px;display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:start}.hero-left .hero-label{font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--muted);margin-bottom:26px;text-transform:lowercase}.hero-name{font-family:var(--display);font-size:clamp(56px,8vw,104px);font-weight:600;line-height:.96;letter-spacing:-.025em;color:var(--ink);margin-bottom:26px}.hero-summary{font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink-2);max-width:54ch;margin-bottom:36px}.hero-summary .accent{color:var(--accent);font-weight:500}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.cmd{font-family:var(--sans);font-size:14px;font-weight:500;padding:12px 20px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);transition:background .18s,color .18s,transform .18s;display:inline-flex;align-items:center;gap:8px}.cmd:hover{background:var(--accent);color:var(--terminal);border-color:var(--accent);transform:translateY(-1px)}.cmd.ghost{background:transparent;color:var(--ink)}.cmd.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.cmd .caret{color:var(--accent)}.cmd:hover .caret{color:var(--terminal)}.status-card{background:var(--paper);border:1px solid var(--rule);align-self:start;margin-top:34px;position:relative;min-width:0}.status-card .mono,.status-card-head,.metric-row{font-family:var(--mono)}.status-card-hint{position:absolute;top:-20px;left:0;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.status-card-hint:before{content:"↳ ";color:var(--accent)}.status-card-head{background:var(--terminal);color:var(--ink);padding:10px 16px;font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:10px;letter-spacing:.02em}.status-card-head .caret{color:var(--accent)}.status-card-head .badge{padding:2px 8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;background:var(--pass);color:var(--terminal);font-weight:600;white-space:nowrap;flex-shrink:0}.status-card-head .badge.fail{background:var(--fail)}.status-card-head .badge.pending{background:var(--warn)}.status-card-body{padding:16px 18px 18px}.metric-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:9px 0;border-bottom:1px dashed var(--rule-soft);font-size:13px;flex-wrap:wrap}.metric-row:last-child{border-bottom:0}.metric-row .k{color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase;flex-shrink:0}.metric-row .v{color:var(--ink);text-align:right;min-width:0;overflow-wrap:anywhere;word-break:break-word}.metric-row .v.pass{color:var(--pass)}.metric-row .v.fail{color:var(--fail)}.metric-row .v.accent{color:var(--accent)}.metric-row .v .num{font-size:16px;font-weight:600;margin-right:2px}.metric-row .v .tests-meta{color:var(--muted);font-size:11px}@media (max-width: 920px){.hero{grid-template-columns:1fr;gap:30px;padding:40px 24px 60px}.status-card{margin-top:0}}@media (max-width: 440px){.metric-row{flex-direction:column;align-items:flex-start;gap:2px}.metric-row .v{text-align:left}}.about{padding:0 56px 80px;max-width:780px}.about p{font-family:var(--sans);font-size:17px;line-height:1.7;color:var(--ink-2);margin-bottom:16px}.about p em{font-style:normal;font-weight:600;color:var(--ink)}.about p code{font-family:var(--mono);font-size:.85em;background:var(--paper);border:1px solid var(--rule-soft);padding:1px 6px;border-radius:2px;color:var(--ink)}.about-agency{font-size:15px;color:var(--muted);margin-top:4px}.about-agency a{color:var(--accent)}.about-agency a:hover{text-decoration:underline;text-underline-offset:3px}@media (max-width: 920px){.about{padding:0 24px 60px}}.marquee{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);overflow:hidden;background:var(--paper);padding:12px 0}.marquee-track{display:flex;gap:36px;white-space:nowrap;animation:marquee 50s linear infinite;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em}.marquee-track span{flex-shrink:0;display:inline-flex;align-items:center;gap:36px}.marquee-track .dot{color:var(--accent)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.projects{padding:0 56px 96px}.project-card{border:1px solid var(--rule);background:var(--paper);margin-bottom:14px;position:relative;overflow:hidden;transition:border-color .2s,transform .2s}.project-card:hover{border-color:var(--ink)}.project-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,rgba(236,229,214,.05),transparent);transform:translate(-100%);transition:transform .65s ease;pointer-events:none;z-index:1}.project-card:hover:before{transform:translate(100%)}.project-card>*{position:relative;z-index:2}.project-head{padding:14px 20px;border-bottom:1px solid var(--rule-soft);display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:12px;flex-wrap:wrap}.project-num{color:var(--muted);font-size:11px}.project-status{display:inline-flex;align-items:center;gap:6px;background:var(--pass-bg);color:var(--pass);padding:3px 9px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:500}.project-status:before{content:"✓"}.project-status.dev{background:var(--warn-bg);color:var(--warn)}.project-status.dev:before{content:"●";animation:blink 1.6s steps(1) infinite}.project-status.role{background:var(--rule-soft);color:var(--ink-2)}.project-status.role:before{content:none}.project-suite{font-family:var(--display);font-size:22px;font-weight:600;letter-spacing:-.01em;color:var(--ink);flex:1;min-width:200px;line-height:1.1}.project-tail{color:var(--muted);font-size:11px}.project-body{padding:18px 20px 20px}.project-stack{font-family:var(--mono);font-size:11px;color:var(--accent);margin-bottom:12px;letter-spacing:.01em}.project-desc{font-family:var(--sans);font-size:15px;line-height:1.65;color:var(--ink-2);margin-bottom:16px;max-width:72ch}.project-desc strong{color:var(--ink);font-weight:600}.project-desc em{font-style:normal;color:var(--ink);font-weight:500}.project-desc code{font-family:var(--mono);background:var(--bg);border:1px solid var(--rule-soft);padding:1px 6px;border-radius:2px;font-size:12.5px}.project-foot{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px}.tag-row{display:flex;gap:6px;flex-wrap:wrap}.tag{font-family:var(--mono);font-size:10px;padding:2px 8px;border:1px solid var(--rule);color:var(--muted);letter-spacing:.02em}.tag-pending{color:var(--muted-2)}.link-row{display:flex;gap:14px}.link-row a{font-family:var(--mono);font-size:11px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:1px}.link-row a:hover{color:var(--accent);border-color:var(--accent)}@media (max-width: 920px){.projects{padding:0 24px 64px}}.contact{padding:0 56px 120px;max-width:720px}.contact-card{border:1px solid var(--rule);background:var(--paper)}.contact-card-head{background:var(--terminal);color:var(--ink);padding:10px 16px;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;display:flex;justify-content:space-between;align-items:center}.contact-card-head .badge{background:var(--pass);color:var(--terminal);padding:2px 8px;font-size:10px;letter-spacing:.08em;font-weight:600}.contact-blurb{padding:22px;font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink-2);border-bottom:1px solid var(--rule-soft)}.contact-form{padding:10px 22px 22px}.form-row{display:flex;align-items:flex-start;gap:14px;padding:12px 0;border-bottom:1px solid var(--rule-soft)}.form-row:last-of-type{border-bottom:0}.form-label{font-family:var(--sans);font-size:13px;font-weight:600;color:var(--muted);width:84px;flex-shrink:0;padding-top:7px}.form-row input,.form-row textarea{flex:1;background:transparent;border:0;border-bottom:1px solid var(--rule);font-family:var(--sans);font-size:15px;color:var(--ink);padding:6px 2px;outline:none;transition:border-color .18s;resize:vertical;min-height:32px}.form-row textarea{min-height:84px}.form-row input:focus,.form-row textarea:focus{border-bottom-color:var(--accent)}.form-row input::placeholder,.form-row textarea::placeholder{color:var(--muted-2)}.form-actions{display:flex;align-items:center;gap:14px;padding-top:16px}.form-actions .submit{font-family:var(--sans);font-size:14px;font-weight:500;padding:11px 20px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;transition:background .18s,color .18s,transform .18s}.form-actions .submit:hover{background:var(--accent);color:var(--terminal);border-color:var(--accent);transform:translateY(-1px)}.form-actions .submit:disabled{opacity:.5;cursor:not-allowed;transform:none}.form-actions .hint{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.04em}.form-success{padding:22px;font-family:var(--sans);font-size:15px;color:var(--ink-2);line-height:1.7}.form-success .ok-line{font-family:var(--mono);color:var(--pass);margin-bottom:8px;font-size:13px}.form-success .ok-line .prefix{color:var(--pass)}.form-error{margin-top:14px;padding:10px 12px;background:#e36b5e14;border:1px solid var(--fail);border-radius:2px;font-family:var(--mono);font-size:12.5px;color:var(--fail);line-height:1.55}.form-error .prefix{color:var(--fail);margin-right:6px}.contact-meta{display:flex;gap:28px;flex-wrap:wrap;padding:16px 22px;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:11px;color:var(--muted)}.contact-meta a:hover{color:var(--accent)}@media (max-width: 920px){.contact{padding:0 24px 80px}.form-row{flex-direction:column;gap:6px}.form-label{width:auto;padding-top:0}}.footer{background:var(--terminal);color:var(--muted);padding:24px 56px;font-family:var(--sans);font-size:13px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--rule)}.footer .right a{color:var(--ink-2)}.footer .right a:hover{color:var(--accent)}@media (max-width: 920px){.footer{padding:22px 24px}}
