@import"https://fonts.googleapis.com/css2?family=Press+Start+2P&family=VT323&display=swap";:root{font-family:"Press Start 2P",monospace;color:#e0f8cf;background:#071821;font-synthesis:none;--ink: #071821;--deep: #0f382f;--mid: #306850;--light: #86c06c;--paper: #e0f8cf}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#071821}button,input,select,textarea{font:inherit}button,.action{cursor:pointer}.app-shell{min-height:100svh;max-width:448px;margin:0 auto;color:var(--paper);background-color:var(--ink);background-image:linear-gradient(rgba(134,192,108,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(134,192,108,.055) 1px,transparent 1px);background-size:8px 8px;border-inline:4px solid #02090c;box-shadow:0 0 60px #000a;padding-top:env(safe-area-inset-top);overflow:hidden}.header{height:68px;display:flex;align-items:center;gap:10px;padding:0 16px;color:var(--ink);background:var(--light);border-bottom:4px solid var(--mid);position:relative;z-index:20}.status-light{width:16px;height:16px;flex:0 0 auto;background:#ef4444;border:2px solid var(--ink);border-radius:50%;box-shadow:2px 2px #0003;animation:status 1.8s steps(2,end) infinite}.wordmark{font-size:14px;letter-spacing:-.06em}.edition{margin-left:auto;display:flex;gap:5px}.edition i{width:12px;height:12px;display:block;border:2px solid var(--ink);border-radius:50%;background:#facc15;box-shadow:1px 1px #0003}.edition i:last-child{background:#22d3ee}.panel{min-height:calc(100svh - 68px - env(safe-area-inset-top));padding:18px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column}.home{justify-content:flex-start;gap:15px}.scanner{height:clamp(300px,42svh,440px);flex:0 0 auto;border:4px solid var(--mid);background:var(--ink);box-shadow:5px 5px 0 var(--light);position:relative;overflow:hidden}.scanner:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(134,192,108,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(134,192,108,.08) 1px,transparent 1px);background-size:10px 10px}.scanner:after{content:"";position:absolute;inset:-25% 0 auto;height:100px;background:linear-gradient(transparent,rgba(134,192,108,.32),transparent);animation:scan 3.4s linear infinite}.orb{position:absolute;z-index:2;width:92px;height:92px;left:50%;top:18%;transform:translate(-50%);display:grid;place-items:center;border:3px solid rgba(134,192,108,.36);border-radius:50%}.orb:after{content:"";width:112px;height:112px;border:4px dashed rgba(134,192,108,.56);border-radius:50%;animation:rotate 7s linear infinite}.orb span{position:absolute;width:35px;height:35px;border-radius:50%;background:#86c06cb8;box-shadow:0 0 18px #86c06c59;animation:status 1.5s steps(2,end) infinite}.scanner-readout{position:absolute;z-index:3;inset-inline:0;top:62%;transform:translateY(-50%);display:grid;gap:20px;text-align:center;color:var(--light);text-shadow:0 0 7px rgba(134,192,108,.28)}.scanner-readout p{margin:0;font-size:9px;line-height:1.45;letter-spacing:.08em}h1,h2{font-family:VT323,monospace;font-weight:400;margin:4px 0;line-height:.95;text-transform:uppercase}h1{font-size:clamp(38px,11vw,54px);color:var(--light)}h2{font-size:38px;color:var(--light)}.eyebrow,.step{margin:0;color:var(--light);font-size:9px;line-height:1.8;letter-spacing:.08em}.lede{font-family:VT323,monospace;font-size:22px;line-height:1.05;color:var(--paper);margin:0 0 4px}.home h1{max-width:360px;margin:14px auto 20px;padding-inline:4px;font-family:"Press Start 2P",monospace;font-size:clamp(14px,4.5vw,19px);line-height:1.55;letter-spacing:-.04em;text-align:center;text-transform:none}.primary,.secondary,.action{min-height:52px;padding:12px;display:grid;place-items:center;border:4px solid var(--mid);border-radius:0;text-align:center;text-transform:uppercase;font-size:10px;line-height:1.5;transition:transform .08s,box-shadow .08s,background .15s}.primary{color:var(--ink);background:var(--light);border-color:var(--mid);box-shadow:4px 4px 0 var(--mid)}.secondary{color:var(--light);background:transparent;border-color:var(--mid);box-shadow:4px 4px 0 var(--mid)}.primary:active,.secondary:active,.action:active{transform:translate(4px,4px);box-shadow:none}.primary:disabled{color:var(--light);background:var(--mid);box-shadow:none;cursor:not-allowed}.secondary:disabled{color:var(--mid);box-shadow:none;cursor:not-allowed}.action+.action{margin-top:-6px}.fineprint,.instruction,.demo-note{color:var(--light);opacity:.65;font-size:8px;line-height:1.7;text-align:center}.fineprint{margin:4px 10px 0}.auth-panel{justify-content:center;gap:16px;background:#071821}.auth-panel h1{margin-bottom:2px}.auth-panel label{color:var(--light)}.auth-panel input{color:var(--paper);-webkit-text-fill-color:var(--paper);caret-color:var(--light);background:#e0f8cf0f;border:3px solid var(--mid);padding:12px}.auth-panel input::placeholder{color:var(--mid);opacity:1}.auth-panel input:focus{border-color:var(--light);box-shadow:3px 3px 0 var(--mid)}.auth-panel input:-webkit-autofill,.auth-panel input:-webkit-autofill:hover,.auth-panel input:-webkit-autofill:focus{-webkit-text-fill-color:var(--paper);caret-color:var(--light);box-shadow:0 0 0 1000px var(--ink) inset,3px 3px 0 var(--mid)}.or{height:28px;display:flex;align-items:center;gap:10px;color:var(--mid);font-size:8px}.or:before,.or:after{content:"";height:2px;flex:1;background:var(--mid)}.auth-message{min-height:20px;color:var(--light);font-size:8px;line-height:1.6;text-align:center}.focus-panel{gap:12px;padding:0 0 calc(18px + env(safe-area-inset-bottom))}.image-stage{position:relative;height:min(66svh,640px);background:#000;border-bottom:4px solid var(--mid);overflow:hidden}.image-stage img{width:100%;height:100%;object-fit:contain}.focus-mark{position:absolute;aspect-ratio:1;transform:translate(-50%,-50%);border:4px solid var(--light);box-shadow:0 0 0 999px #0718219e}.focus-mark:before,.focus-mark:after{content:"";position:absolute;inset:48% -14%;border-top:2px solid var(--paper)}.focus-mark:after{inset:-14% 48%;border-top:0;border-left:2px solid var(--paper)}.focus-mark span{position:absolute;inset:37%;border:3px solid var(--light);animation:status 1.2s steps(2,end) infinite}.focus-status{display:grid;gap:9px;padding-inline:16px;text-align:center;color:var(--light);font-size:8px;line-height:1.4}.focus-status span{color:var(--mid);font-size:7px}.range{width:calc(100% - 32px);margin-inline:16px;accent-color:var(--light)}.button-row{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;margin:auto 16px 0}.capture-panel{padding:0 0 calc(16px + env(safe-area-inset-bottom));gap:0;background:var(--ink)}.capture-stage{position:relative;height:min(72svh,700px);overflow:hidden;border-bottom:4px solid var(--mid);background:#000}.capture-stage>img{width:100%;height:100%;object-fit:contain}.capture-rings{position:absolute;left:50%;top:49%;width:min(128vw,560px);aspect-ratio:1;transform:translate(-50%,-50%);border:2px solid rgba(224,248,207,.52);border-radius:50%}.capture-rings:before,.capture-rings:after{content:"";position:absolute;border:2px solid rgba(224,248,207,.3);border-radius:50%}.capture-rings:before{inset:14%}.capture-rings:after{inset:30%}.capture-disc{position:absolute;z-index:5;left:50%;bottom:16px;width:66px;height:66px;padding:0;border:4px solid var(--ink);border-radius:50%;background:linear-gradient(#f8fafc 46%,var(--ink) 47% 54%,#f8fafc 55%);box-shadow:0 0 0 3px #f8fafc,4px 5px #0008;touch-action:none;transition:transform .12s ease-out}.capture-disc i{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%);border:4px solid var(--ink);border-radius:50%;background:#ef4444}.capture-panel.capturing .capture-disc{animation:collect-launch .72s cubic-bezier(.24,.78,.24,1) forwards}.capture-scan{position:absolute;z-index:4;inset:0;opacity:0;pointer-events:none;background:#07182175}.capture-scan:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(134,192,108,.19) 0 2px,transparent 2px 6px)}.capture-scan:after{content:"";position:absolute;left:50%;top:50%;width:48px;height:48px;transform:translate(-50%,-50%);border:3px solid var(--light);border-radius:50%;box-shadow:0 0 22px var(--light)}.capture-scan span{position:absolute;left:50%;top:50%;width:10px;height:10px;transform:translate(-50%,-50%);border:2px solid var(--ink);border-radius:50%;background:#ef4444}.capture-panel.capturing .capture-scan{animation:scan-lock 1.45s .48s steps(5,end) forwards}.capture-panel.capturing .capture-stage>img{animation:field-capture 1.5s .45s steps(4,end) forwards}.capture-footer{min-height:112px;display:grid;place-items:center;align-content:center;gap:14px;text-align:center}.capture-footer p{margin:0;color:var(--paper);font-size:9px}.capture-footer button{color:var(--light);background:transparent;border:0;font-size:7px;text-decoration:underline}.capture-footer button:disabled{opacity:.35}.secured-panel{padding:0 0 calc(16px + env(safe-area-inset-bottom));gap:0;background:var(--ink)}.secured-stage{position:relative;height:min(69svh,660px);overflow:hidden;border-bottom:4px solid var(--mid);background:#000}.secured-stage>img{width:100%;height:100%;object-fit:contain;filter:grayscale(1) sepia(.4) hue-rotate(82deg) saturate(1.35) contrast(1.12) brightness(.75)}.secured-stage:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(134,192,108,.18) 0 2px,transparent 2px 6px);mix-blend-mode:screen}.secured-reticle{position:absolute;z-index:2;left:50%;top:56%;width:46px;height:46px;transform:translate(-50%,-50%);border:3px solid var(--light);border-radius:50%;box-shadow:0 0 18px #86c06cb8}.secured-reticle:before{content:"";position:absolute;inset:10px;border:2px solid var(--light);border-radius:50%}.secured-reticle span{position:absolute;left:50%;top:50%;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:var(--light)}.secured-copy{min-height:78px;display:grid;place-items:center;align-content:center;gap:9px;color:var(--paper);font-size:9px}.secured-copy span{color:var(--light);font-size:7px}.secured-panel .button-row{width:calc(100% - 32px);grid-template-columns:1fr 1fr}.describe-panel{gap:13px;padding:0 14px calc(18px + env(safe-area-inset-bottom));color:var(--ink);background:var(--paper);background-image:radial-gradient(rgba(48,104,80,.16) .8px,transparent .8px);background-size:4px 4px}.describe-panel .step{color:var(--deep)}.subject-strip{height:132px;width:calc(100% + 28px);margin-inline:-14px;object-fit:cover;border-bottom:4px solid var(--mid);filter:contrast(1.15) saturate(.75)}.secured{height:38px;margin-top:-13px;display:flex;align-items:center;justify-content:space-between;color:var(--light);background:var(--ink);border-bottom:4px solid var(--mid);padding:0 9px;font-family:VT323,monospace;font-size:17px}.secured button{padding:0;color:var(--light);background:transparent;border:0;font-family:VT323,monospace;font-size:17px}label{display:grid;gap:7px;color:var(--deep);text-transform:uppercase;font-size:8px;line-height:1.5}input,select,textarea{width:100%;color:var(--ink);background:transparent;border:0;border-bottom:4px solid var(--ink);border-radius:0;padding:10px 4px;outline:none;text-transform:none;font-family:VT323,monospace;font-size:23px}select{border:4px solid var(--ink);padding:8px;font-size:20px}textarea{min-height:80px;padding:8px;border:4px solid var(--ink);resize:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.consent{color:var(--deep);border-left:4px solid var(--deep);padding:8px 10px;font-size:7px;line-height:1.7}.describe-panel .button-row{margin-inline:0}.describe-panel .primary{background:var(--light);border-color:var(--ink);box-shadow:4px 4px 0 var(--ink)}.describe-panel .secondary{color:var(--deep);border-color:var(--deep);box-shadow:none}.loading{align-items:center;justify-content:center;text-align:center;gap:14px}.loading p{color:var(--mid);font-size:9px}.pulse{width:66px;height:66px;margin-bottom:24px;border:8px solid var(--mid);border-top-color:var(--light);border-radius:50%;animation:rotate 1s linear infinite;box-shadow:0 0 15px #86c06c99}.result-panel{gap:16px;color:var(--paper);background:#18181b}.record-card{color:#111827;background:#cbd2dc;border:9px solid #ffefa8;border-radius:14px;padding:14px;box-shadow:6px 6px #000}.record-top,.affinities,.trait>div,.axes{display:flex;justify-content:space-between;gap:12px}.record-top{align-items:end;font-size:7px;letter-spacing:.04em}.record-top span:last-child{color:#dc2626;font-size:13px}.record-card h2{color:#111827;font-family:"Press Start 2P",monospace;font-size:clamp(17px,5.4vw,23px);line-height:1.25;margin:13px 0}.record-card>img{width:100%;aspect-ratio:4/3;object-fit:cover;border:5px solid #4b5563;image-rendering:crisp-edges;image-rendering:pixelated}.classification{margin:0 5px 12px;padding:7px 5px;color:#111827;background:#eef2f7;text-align:center;font-family:system-ui,sans-serif;font-size:12px;font-style:italic;font-weight:650}.affinities{justify-content:flex-start;margin:12px 0 14px}.affinities span{color:#0f172a;background:#e2e8f0;border:2px solid #334155;padding:5px 7px;font-size:7px;text-transform:uppercase}.trait{border-top:2px solid #64748b;padding:12px 0}.trait b{font-family:VT323,monospace;font-size:26px;font-weight:400;text-transform:uppercase}.trait span{font-size:8px;color:#306850}.trait p,.field-note{font-family:VT323,monospace;font-size:18px;line-height:1.05;margin:5px 0 0}.axes{border-top:2px solid #64748b;padding-top:12px;color:#475569;font-size:7px;line-height:1.8}.axes b{color:#0f172a;font-weight:400}.field-note{margin-top:14px;padding:11px;background:#fff6;border:2px solid #64748b;font-style:italic}.demo-note{color:#a1a1aa}@keyframes scan{to{transform:translateY(650%)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes status{50%{opacity:.35}}@keyframes collect-launch{0%{transform:translate(-50%) scale(1)}65%{transform:translate(-50%,-42svh) scale(.6) rotate(250deg)}to{transform:translate(-50%,-35svh) scale(.12) rotate(540deg);opacity:0}}@keyframes scan-lock{0%{opacity:0}20%,80%{opacity:1}40%{filter:brightness(1.7)}to{opacity:1;background:#071821a6}}@keyframes field-capture{0%{filter:none}35%{filter:grayscale(1) sepia(.5) hue-rotate(75deg) saturate(1.6) contrast(1.15)}55%{filter:brightness(1.7) contrast(1.5)}to{filter:grayscale(1) sepia(.5) hue-rotate(75deg) saturate(1.6) contrast(1.2) brightness(.72)}}@media(prefers-reduced-motion:reduce){*{animation:none!important}}@media(max-height:680px){.header{height:58px}.panel{min-height:calc(100svh - 58px - env(safe-area-inset-top))}.scanner{height:40svh;min-height:250px}.home{gap:11px}.home h1{margin-block:8px 10px;font-size:13px}.primary,.secondary,.action{min-height:48px}.fineprint{margin-top:1px}}
