@font-face{font-family:Geist;src:url('/assets/fonts/geist-latin.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'Geist Mono';src:url('/assets/fonts/geist-mono-latin.woff2') format('woff2');font-weight:100 900;font-display:swap}
:root{--ink:#0a0d11;--paper:#e7e8e9;--muted:#92949f;--violet:#a98bff;--gutter:clamp(22px,3.4vw,60px);color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}html{background:var(--ink)}
body{height:100dvh;display:grid;grid-template-rows:72px minmax(0,1fr) 42px;color:var(--paper);font:400 14px/1.5 Geist,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}::selection{background:var(--violet);color:var(--ink)}
a:focus-visible,button:focus-visible{outline:1px solid var(--violet);outline-offset:6px}[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:-10000px;top:12px;z-index:5;padding:8px 14px;background:var(--paper);color:var(--ink)}.skip-link:focus{left:var(--gutter)}
.masthead{display:flex;align-items:center;padding:0 var(--gutter)}
.wordmark{font:500 17px/1 'Geist Mono',ui-monospace,monospace;letter-spacing:.015em;color:#c6c4cd;padding:10px 0}
main{min-height:0;display:flex;align-items:center;justify-content:center;padding:0 var(--gutter)}main:focus{outline:none}
.waiting{width:100%;max-width:600px;display:flex;flex-direction:column;align-items:center;transform:translateY(6px)}
.portrait{display:block;flex:none;width:clamp(170px,29dvh,280px);aspect-ratio:1;padding:0;margin:0 0 20px;border:0;border-radius:0;background:none;transform:rotate(-1.6deg);-webkit-tap-highlight-color:transparent;cursor:pointer}
.portrait-window{position:relative;display:block;width:100%;height:100%;overflow:hidden;line-height:0}
.portrait img{display:block;width:200%;height:100%;max-width:none;transform:translateX(0);pointer-events:none}
.portrait.is-looking img{transform:translateX(-50%)}
h1{font-size:42px;font-weight:560;line-height:1.05;letter-spacing:-.055em;margin:0;text-align:center}
.promise{margin:22px 0 0;text-align:center;font-size:14px;line-height:1.65;font-weight:400;letter-spacing:-.025em;color:var(--muted)}.promise .row{display:block;white-space:nowrap}.scratch{position:relative;display:inline-block;margin:0 .32em;text-decoration:none;color:var(--muted)}.scratch i{font-style:normal}.scratch svg{position:absolute;left:-4%;top:0;width:108%;height:100%;overflow:visible;pointer-events:none}.scratch path{fill:none;stroke:var(--violet);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}.solved{display:block;margin-top:5px;font-family:"Geist Mono",ui-monospace,monospace;font-size:12px;letter-spacing:.06em;color:var(--violet)}
.notify{position:relative;width:100%;max-width:354px;margin:34px 0 0;font-family:'Geist Mono',ui-monospace,monospace;letter-spacing:-.035em}
.notify>label{display:block;font-size:12px;line-height:1.5;color:#c6c4ce}
.handle-line{display:flex;align-items:center;gap:3px;position:relative;min-height:47px;margin-top:9px;padding-bottom:8px}
.at{font-size:21px;color:var(--violet)}
.handle-line input{width:100%;min-width:0;padding:5px 0;border:0;border-radius:0;outline:0;box-shadow:none;background:none;color:var(--paper);font:inherit;font-size:19px;letter-spacing:-.055em}
.handle-line input::placeholder{color:#767782;opacity:1}
.handle-line button{flex:none;display:flex;align-items:center;gap:18px;justify-content:flex-end;min-width:89px;min-height:40px;padding:7px 0 7px 13px;border:0;background:none;color:#c6c4ce;font:inherit;font-size:11px;white-space:nowrap}
.handle-line button:hover{color:var(--violet)}.handle-line button:disabled{color:var(--muted);cursor:wait}.notify.is-joined .handle-line button:disabled{color:var(--paper);cursor:default}
.join-arrow{width:21px;height:20px;overflow:visible;flex:none}.join-arrow path{fill:none;stroke:var(--violet);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.input-rule{position:absolute;left:0;bottom:0;width:100%;height:8px;pointer-events:none}.input-rule path{fill:none;stroke:#6d637e;stroke-width:1;transition:stroke 180ms}.handle-line:focus-within .input-rule path,.notify.is-joined .input-rule path{stroke:var(--violet)}
.join-confirm{color:var(--violet);width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.25}
.notify-hint{font-size:11px;line-height:1.6;color:#81808d;margin:9px 0 0 1px;letter-spacing:0}.notify-hint a{text-decoration:underline;text-decoration-color:#4e475c;text-underline-offset:4px}.notify-hint a:hover{color:var(--violet)}
.notify-result{position:absolute;top:100%;left:0;right:0;font-size:10px;line-height:1.5;min-height:17px;color:var(--violet);margin:8px 0 0}.notify-result[data-error]{color:#e6a9b9}
.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.endnote{display:flex;align-items:center;justify-content:flex-end;padding:0 var(--gutter)}
.motion-toggle{display:flex;align-items:center;gap:6px;border:0;background:none;color:#74727f;font:400 9px/1.4 'Geist Mono',monospace;min-height:32px;padding:6px 0}
.motion-symbol{display:block;width:7px;height:8px;border-inline:1.5px solid currentColor}.motion-toggle[aria-pressed="true"] .motion-symbol{border:0;border-left:6px solid currentColor;border-block:4px solid transparent;width:0;height:0}
@media(min-width:1600px){.portrait{width:clamp(240px,29dvh,300px)}}
@media(max-width:600px){body{grid-template-rows:58px minmax(0,1fr) 34px}.wordmark{font-size:15px}.portrait{width:clamp(170px,28dvh,245px);margin-bottom:19px}h1{font-size:36px}.promise{font-size:12px;margin-top:18px}.notify{margin-top:29px;max-width:340px}.notify>label{font-size:11px}.handle-line input{font-size:18px}.handle-line button{font-size:10px}.notify-hint{font-size:10px}}
@media(max-height:650px) and (orientation:portrait){body{grid-template-rows:48px minmax(0,1fr) 30px}.waiting{transform:none}.portrait{width:clamp(120px,26dvh,165px);margin-bottom:14px}h1{font-size:31px}.promise{font-size:11px;margin-top:14px;line-height:1.55}.notify{margin-top:23px}.notify>label{font-size:11px}.handle-line{min-height:39px;margin-top:5px;padding-bottom:6px}.handle-line input{font-size:17px}.handle-line button{min-height:34px;font-size:10px}.notify-hint{font-size:10px;margin-top:7px}.notify-result{font-size:9px}}
@media(max-height:450px) and (orientation:landscape){body{grid-template-rows:38px minmax(0,1fr) 25px}.wordmark{font-size:14px}.waiting{max-width:540px;display:grid;grid-template-columns:150px minmax(0,1fr);grid-template-rows:auto auto auto;column-gap:26px;transform:none;align-items:center}.portrait{grid-column:1;grid-row:1/4;width:150px;margin:0}h1{grid-column:2;grid-row:1;font-size:28px;text-align:left;align-self:end}.promise{grid-column:2;grid-row:2;font-size:10px;margin:9px 0 0;text-align:left;align-self:start}.notify{grid-column:2;grid-row:3;margin-top:15px}.notify>label{font-size:11px}.handle-line{min-height:33px;margin-top:3px;padding-bottom:4px}.handle-line input{font-size:15px}.at{font-size:17px}.handle-line button{min-width:72px;min-height:30px;font-size:9px;gap:11px}.join-arrow{width:17px;height:17px}.notify-hint{font-size:10px;margin-top:6px}.notify-result{font-size:8px;margin-top:5px}.motion-toggle{font-size:8px;min-height:23px}}
@media(prefers-reduced-motion:no-preference){.is-joined .join-confirm path{stroke-dasharray:20;animation:join-confirm 240ms ease-out both}}
@keyframes join-confirm{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}
@media(prefers-reduced-motion:no-preference){.scratch path{animation:scratch .45s cubic-bezier(.4,0,.2,1) both;animation-delay:var(--d,0s)}.solved{animation:solved .5s ease-out both;animation-delay:1.75s}}
@keyframes scratch{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes solved{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.motion-toggle{display:none}}

/* A quiet wordmark lets the hero cat carry the landing-page identity. */
.wordmark{display:inline-flex;align-items:center;width:auto;padding:5px 0;font:650 20px/1 Geist,Arial,sans-serif;letter-spacing:-.045em;color:#fff}
.brand-name{display:block;color:#fff}
.promise .row:nth-child(1) .scratch:nth-child(1){--d:.2s}
.promise .row:nth-child(1) .scratch:nth-child(2){--d:.55s}
.promise .row:nth-child(2) .scratch:nth-child(1){--d:.9s}
.promise .row:nth-child(2) .scratch:nth-child(2){--d:1.25s}
@media(max-width:600px){.wordmark{font-size:19px;padding:4px 0}}
@media(max-height:650px) and (orientation:portrait){.wordmark{font-size:18px;padding:3px 0}}
@media(max-height:450px) and (orientation:landscape){.wordmark{font-size:17px;padding:2px 0}}
