:root{font-family:Courier New,Courier,monospace;color:#e7e8e2;background:#101210;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color-scheme:dark;font-weight:400;line-height:1.6;--accent: #b9e779;--muted: #969c90}*{box-sizing:border-box}body{margin:0;min-width:320px}::selection{color:#101210;background:var(--accent)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important}}.contact-trigger,.contact-dialog button{border:0;background:transparent;font:inherit;cursor:pointer;touch-action:manipulation}.contact-trigger{min-height:44px;padding:0 8px;margin-right:-8px;color:var(--muted);font-size:11px;transition:color .18s,text-shadow .18s}.contact-trigger span{display:inline-block;transition:transform .18s}.contact-trigger:hover{color:var(--accent);text-shadow:0 0 12px #b9e77955}.contact-trigger:hover span:first-child{transform:translate(-3px)}.contact-trigger:hover span:last-child{transform:translate(3px)}.contact-trigger:focus-visible,.contact-dialog button:focus-visible{outline:1px dashed var(--accent);outline-offset:3px}.contact-dialog{width:min(420px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:0;margin:auto;overflow:auto;overscroll-behavior:contain;border:1px solid #46533c;background:#131610;color:#e7e8e2;box-shadow:0 24px 100px #0008;transform-origin:center}.contact-dialog::backdrop{background:#080a08b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:contact-dim .3s ease-out}.contact-titlebar{display:flex;align-items:center;justify-content:space-between;min-height:52px;padding:0 20px;border-bottom:1px solid #30372b}.contact-titlebar h2{margin:0;font-size:12px;font-weight:400}.contact-titlebar h2 span{margin-right:8px}.contact-dialog .contact-close{min-width:44px;min-height:44px;margin-right:-8px;color:var(--muted);font-size:12px}.contact-dialog .contact-close:hover{color:var(--accent)}.contact-form{padding:22px 24px 12px}.contact-form>p:first-child{margin:0 0 24px;color:var(--muted);font-size:12px}.contact-form label{display:block;margin:18px 0 8px;font-size:12px}.contact-form label span{margin-right:8px;font-size:10px}.contact-website{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.contact-form .contact-website input{position:absolute;width:1px;height:1px;padding:0;border:0;opacity:0}.contact-form input,.contact-form textarea{display:block;width:100%;min-width:0;border:1px solid #343d2d;border-radius:0;padding:12px;background:#0e100d;color:#e7e8e2;caret-color:var(--accent);font:14px/1.5 Courier New,Courier,monospace}.contact-form textarea{resize:vertical;min-height:110px;max-height:240px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#89917f;opacity:1}.contact-form input:focus,.contact-form textarea:focus{outline:1px solid var(--accent);outline-offset:-1px}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin-top:14px}.contact-actions>span{color:var(--muted);font-size:10px}.contact-dialog .contact-submit{min-height:44px;padding:0 4px;color:var(--accent);font-size:12px}.contact-dialog .contact-submit:hover{background:#b9e77910}.contact-dialog .contact-submit:disabled{cursor:wait;opacity:.65}.contact-status{min-height:18px;margin:8px 0 0;color:var(--muted);font-size:11px}@keyframes contact-dim{0%{background:transparent;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}@media (max-width: 600px){.contact-form{padding:18px 18px 12px}.contact-form input,.contact-form textarea{font-size:16px}.contact-titlebar{padding:0 18px}}@media (prefers-reduced-motion: reduce){.contact-trigger,.contact-trigger span{transition:none}}.ascii-sketch{height:150px;margin:0;color:var(--accent);font:700 10px/1.25 Courier New,Courier,monospace;text-shadow:0 0 5px #b9e77924;animation:screen-lock-1 .9s steps(1,end) both}.ascii-glow{display:block;filter:brightness(1);animation:screen-brightness 1.1s ease-in-out both}.ascii-glow[data-phase=exit]{animation:screen-dim .22s ease-in both}.ascii-flicker{display:block;filter:brightness(var(--flicker-rest, .74));animation-timing-function:steps(1,end);animation-iteration-count:infinite}@keyframes screen-lock-1{0%{opacity:0;transform:translate(8px)}12%{opacity:.5;transform:translate(-4px)}24%{opacity:1;transform:translateY(-4px)}36%{opacity:.55;transform:translateY(3px)}48%{opacity:1;transform:translate(4px)}60%{opacity:.5;transform:translate(-2px,1px)}72%{opacity:1;transform:translate(2px)}84%{opacity:.75;transform:translateY(-1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-2{0%{opacity:0;transform:translate(-7px,2px)}14%{opacity:1;transform:translate(3px)}28%{opacity:.5;transform:translateY(-3px)}42%{opacity:1;transform:translateY(4px)}56%{opacity:.55;transform:translate(-3px)}70%{opacity:1;transform:translate(2px,-1px)}84%{opacity:.75;transform:translate(-1px,1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-3{0%{opacity:0;transform:translateY(-6px)}12%{opacity:.55;transform:translateY(3px)}24%{opacity:1;transform:translate(-4px)}38%{opacity:.5;transform:translate(3px)}52%{opacity:1;transform:translateY(4px)}66%{opacity:.6;transform:translateY(-2px)}80%{opacity:1;transform:translate(2px,1px)}90%{opacity:.75;transform:translate(-1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-4{0%{opacity:0;transform:translate(7px,3px)}16%{opacity:.7;transform:translate(-3px,-2px)}32%{opacity:1;transform:translate(1px,4px)}48%{opacity:.45;transform:translate(-2px)}64%{opacity:1;transform:translate(3px,-1px)}82%{opacity:.7;transform:translate(-1px,1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-5{0%{opacity:0;transform:translate(-8px,-3px)}14%{opacity:1;transform:translate(4px,2px)}29%{opacity:.5;transform:translateY(-4px)}44%{opacity:1;transform:translate(-3px,1px)}61%{opacity:.55;transform:translate(2px,3px)}78%{opacity:1;transform:translate(-2px,-1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-6{0%{opacity:0;transform:translateY(7px)}18%{opacity:.6;transform:translate(3px,-3px)}34%{opacity:1;transform:translate(-4px)}50%{opacity:.45;transform:translate(2px,2px)}67%{opacity:1;transform:translateY(-3px)}83%{opacity:.75;transform:translate(-1px,1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-7{0%{opacity:0;transform:translateY(-7px)}13%{opacity:1;transform:translate(-3px,3px)}28%{opacity:.45;transform:translate(4px)}43%{opacity:1;transform:translate(-1px,-4px)}59%{opacity:.6;transform:translate(2px,2px)}78%{opacity:1;transform:translate(-2px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-8{0%{opacity:0;transform:translate(9px,-2px)}20%{opacity:.55;transform:translate(-4px,1px)}37%{opacity:1;transform:translate(2px,-3px)}54%{opacity:.5;transform:translateY(4px)}70%{opacity:1;transform:translate(-3px,-1px)}86%{opacity:.75;transform:translate(1px,1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-9{0%{opacity:0;transform:translate(-9px,3px)}15%{opacity:1;transform:translate(2px,-4px)}31%{opacity:.5;transform:translate(-3px,2px)}47%{opacity:1;transform:translate(4px)}63%{opacity:.55;transform:translate(-1px,-3px)}80%{opacity:1;transform:translate(2px,1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-lock-10{0%{opacity:0;transform:translateY(8px)}17%{opacity:.5;transform:translate(-4px,-2px)}33%{opacity:1;transform:translate(3px,2px)}49%{opacity:.55;transform:translateY(-4px)}66%{opacity:1;transform:translate(-2px,3px)}84%{opacity:.75;transform:translate(1px,-1px)}to{opacity:1;transform:translate(0)}}@keyframes screen-off-1{0%{opacity:1;transform:translate(0)}30%{opacity:.5;transform:translate(-2px)}60%{opacity:1;transform:translate(2px,-1px)}to{opacity:0;transform:translate(-12px,2px)}}@keyframes screen-off-2{0%{opacity:1;transform:translate(0)}30%{opacity:.5;transform:translate(1px,-2px)}60%{opacity:1;transform:translate(-2px,1px)}to{opacity:0;transform:translate(10px,-3px)}}@keyframes screen-off-3{0%{opacity:1;transform:translate(0)}25%{opacity:.5;transform:translateY(2px)}50%{opacity:1;transform:translate(2px,-1px)}75%{opacity:.45;transform:translate(-1px)}to{opacity:0;transform:translateY(8px)}}.ascii-sketch[data-phase=exit]{animation-duration:.22s;animation-timing-function:steps(4,end)}@keyframes screen-brightness{0%{filter:brightness(.9)}24%{filter:brightness(var(--glow-peak, 1.05))}42%{filter:brightness(.95)}66%{filter:brightness(var(--glow-peak, 1.05))}82%{filter:brightness(.96)}to{filter:brightness(1)}}@keyframes screen-flicker-1{0%,12%,16%,20%,24%,62%,to{opacity:.94;filter:brightness(var(--flicker-rest, .74))}13%,17%,21%,63%{opacity:.5;filter:brightness(.58)}14%,18%,22%,64%{opacity:1;filter:brightness(var(--flicker-peak, 1.05))}}@keyframes screen-flicker-2{0%,27%,31%,35%,39%,78%,to{opacity:.92;filter:brightness(var(--flicker-rest, .74))}28%,32%,36%,79%{opacity:.48;filter:brightness(.55)}29%,33%,37%,80%{opacity:1;filter:brightness(var(--flicker-peak, 1.05))}}@keyframes screen-flicker-3{0%,8%,12%,16%,20%,50%,54%,58%,62%,to{opacity:.9;filter:brightness(var(--flicker-rest, .74))}9%,13%,17%,51%,55%,59%{opacity:.5;filter:brightness(.55)}10%,14%,18%,52%,56%,60%{opacity:1;filter:brightness(var(--flicker-peak, 1.05))}}@keyframes screen-dim{0%{filter:brightness(1)}45%{filter:brightness(var(--glow-peak, 1.05))}to{filter:brightness(.68)}}@media (max-width: 600px){.ascii-sketch{height:135px;font-size:9px}}.sketchbook{width:280px;max-width:100%;padding-block:12px;margin-bottom:30px;overflow:hidden}@media (max-width: 600px){.ascii-sketch{height:135px;font-size:9px}.sketchbook{margin-bottom:24px}}#root{min-height:100svh}.site-shell{display:flex;flex-direction:column;min-height:100svh;max-width:1040px;margin:0 auto;padding:0 48px}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:36px 0}.wordmark{display:inline-flex;align-items:center;gap:10px;font-size:14px;letter-spacing:3px;white-space:nowrap}.header-note,footer{color:var(--muted);font-size:11px}main{flex:1;display:grid;align-items:center;padding:64px 0 96px}.hero{width:fit-content;max-width:100%;margin:0 auto}h1{margin:0;font-size:clamp(36px,6.4vw,68px);line-height:1.12;font-weight:400;letter-spacing:-3px}.accent{color:var(--accent)}.cursor{color:var(--accent);animation:blink 1.2s steps(1) infinite}.intro{margin:28px 0 0;color:var(--muted);font-size:13px;line-height:1.8}footer{display:flex;justify-content:space-between;gap:24px;padding:24px 0}@keyframes blink{50%{opacity:0}}@media (max-width: 600px){.site-shell{padding:0 24px}.site-header{padding:28px 0}.header-note{display:none}main{padding:48px 0 72px}.hero{margin:0}h1{font-size:clamp(34px,8vw,48px);letter-spacing:-2px}.intro{max-width:270px;font-size:12px}footer{font-size:10px}}
