@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}.button-row{display:grid;grid-template-columns:1fr 1.6fr;gap:10px;margin:auto 16px 0}.memory-panel{position:relative;padding:0 16px calc(18px + env(safe-area-inset-bottom));gap:12px;overflow:hidden;overscroll-behavior:none;background:var(--ink)}.memory-stage{position:relative;height:min(70svh,660px);margin-inline:-16px;overflow:hidden;overscroll-behavior:none;touch-action:none;user-select:none;-webkit-user-select:none;border-bottom:4px solid var(--mid);background:radial-gradient(circle at 50% 54%,rgba(48,104,80,.34),transparent 42%),#031017}.memory-stage: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}.memory-stage:after{content:"";position:absolute;inset:-20% 0 auto;height:90px;background:linear-gradient(transparent,rgba(134,192,108,.24),transparent);animation:scan 2.8s linear infinite;pointer-events:none}.memory-status{position:absolute;z-index:7;top:18px;inset-inline:16px;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--light);font-size:8px;letter-spacing:.06em;text-shadow:0 0 8px rgba(134,192,108,.55)}.memory-status span{width:8px;height:8px;border-radius:50%;background:#ef4444;box-shadow:0 0 9px #ef4444;animation:status .8s steps(2,end) infinite}.memory-gate{position:absolute;z-index:2;left:50%;top:76px;width:76px;height:24px;transform:translate(-50%);border:3px solid var(--light);border-radius:50%;box-shadow:0 0 15px #86c06ccc,inset 0 0 12px #86c06c99;animation:gate-pulse 1.3s steps(3,end) infinite}.memory-gate:before,.memory-gate:after{content:"";position:absolute;left:50%;width:2px;height:20px;background:linear-gradient(var(--light),transparent)}.memory-gate:before{transform:translate(-19px)}.memory-gate:after{transform:translate(17px)}.memory-gate i{position:absolute;left:50%;top:50%;width:9px;height:9px;transform:translate(-50%,-50%);border-radius:50%;background:var(--light);box-shadow:0 0 14px var(--light)}.memory-drift{position:absolute;z-index:5;left:50%;top:53%;width:min(82%,350px);touch-action:none;transform:translate(-50%,-50%);animation:memory-drift 3.8s ease-in-out infinite alternate}.memory-fragment{position:relative;width:100%;aspect-ratio:4/3;padding:7px;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none;border:0;background:var(--paper);box-shadow:8px 9px #306850cc,0 0 30px #86c06c33;clip-path:polygon(3% 1%,24% 4%,42% 0,67% 3%,97% 1%,100% 26%,97% 47%,100% 72%,96% 98%,70% 96%,48% 100%,27% 97%,1% 100%,3% 74%,0 51%,4% 28%);transition:transform .04s linear}.memory-photo{position:relative;z-index:3;width:100%;height:100%;display:block;object-fit:cover;pointer-events:none;-webkit-user-drag:none;filter:saturate(.68) contrast(1.28) sepia(.16) hue-rotate(55deg)}.memory-echo{position:absolute;z-index:2;inset:7px;overflow:hidden;opacity:.5;mix-blend-mode:screen;pointer-events:none}.memory-echo img{width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none}.echo-one{clip-path:inset(8% 0 67% 0);transform:translate(-10px,7px);animation:memory-glitch-a 1.15s steps(2,end) infinite}.echo-one img{filter:saturate(2.2) hue-rotate(145deg)}.echo-two{clip-path:inset(63% 0 8% 0);transform:translate(9px,-5px);animation:memory-glitch-b .9s steps(2,end) infinite}.echo-two img{filter:saturate(2.5) hue-rotate(285deg)}.memory-noise{position:absolute;z-index:4;inset:7px;background:repeating-linear-gradient(0deg,transparent 0 5px,rgba(224,248,207,.14) 5px 7px);mix-blend-mode:screen;pointer-events:none}.memory-instruction{min-height:102px;display:grid;place-items:center;align-content:center;gap:7px;text-align:center}.memory-instruction b{color:var(--light);font-family:VT323,monospace;font-size:40px;line-height:.55;animation:arrow-flick 1.1s steps(3,end) infinite}.memory-instruction p{margin:0;color:var(--paper);font-size:9px;line-height:1.5}.memory-instruction span{color:var(--light);opacity:.7;font-family:VT323,monospace;font-size:18px}.memory-back{margin-top:auto;padding:8px;color:var(--mid);background:transparent;border:0;font-size:7px;text-decoration:underline}.memory-back:disabled{opacity:.25}.memory-capture-flash{position:absolute;z-index:9;inset:0;opacity:0;pointer-events:none;background:var(--paper)}.memory-panel.capturing .memory-drift{animation:none}.memory-panel.capturing .memory-fragment{animation:memory-catch .86s cubic-bezier(.2,.72,.2,1) forwards}.memory-panel.capturing .memory-gate{animation:gate-catch .9s steps(4,end) forwards}.memory-panel.capturing .memory-capture-flash{animation:memory-flash .9s steps(2,end) forwards}.memory-panel.capturing .memory-instruction b{visibility:hidden}.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}.result-actions{display:grid;gap:12px;padding:4px 0 10px}.download-card{min-height:58px;padding:12px;color:var(--ink);background:#facc15;border:4px solid #a16207;box-shadow:5px 5px #a16207;font-size:11px}.download-card:active{transform:translate(5px,5px);box-shadow:none}.result-secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-secondary-actions .secondary{min-height:58px;padding-inline:8px;color:#f4f4f5;border-color:#52525b;box-shadow:none;font-size:8px}.result-secondary-actions .secondary:first-child{color:var(--paper);background:#27272a}.action-error{margin:0;color:#fca5a5;font-size:7px;line-height:1.6;text-align:center}@keyframes scan{to{transform:translateY(650%)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes status{50%{opacity:.35}}@keyframes memory-drift{0%{transform:translate(-52%,-52%) rotate(-2deg)}48%{transform:translate(-48%,-49%) rotate(1.5deg)}to{transform:translate(-51%,-55%) rotate(-1deg)}}@keyframes memory-glitch-a{50%{transform:translate(11px,-4px);opacity:.72}}@keyframes memory-glitch-b{50%{transform:translate(-8px,6px);opacity:.25}}@keyframes gate-pulse{50%{transform:translate(-50%) scaleX(1.2);opacity:.6}}@keyframes arrow-flick{0%,40%{transform:translateY(8px);opacity:.45}80%,to{transform:translateY(-6px);opacity:1}}@keyframes memory-catch{0%{transform:translateY(0) scale(1) rotate(0)}65%{transform:translateY(-36svh) scale(.42) rotate(-8deg);opacity:1}to{transform:translateY(-43svh) scale(.04) rotate(18deg);opacity:0}}@keyframes gate-catch{55%{transform:translate(-50%) scale(1.7);filter:brightness(2)}to{transform:translate(-50%) scale(.2);opacity:0}}@keyframes memory-flash{55%{opacity:0}65%{opacity:.85}to{opacity:0}}@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}}
