@import url('https://fonts.googleapis.com/css2?family=Archivo+Black&family=IBM+Plex+Mono:wght@400;500&display=swap');
*{box-sizing:border-box}body{margin:0;background:#111816;color:#eee9d9;font-family:'IBM Plex Mono',monospace;overflow:hidden}button,a,input{touch-action:manipulation}button{font:inherit;background:#24332f;color:inherit;border:1px solid #52685b;border-radius:8px;min-height:46px;padding:10px 20px;cursor:pointer}button:hover{border-color:#aada84}.primary{background:#d6ee95;color:#14211b;border:0;font-weight:500}a{color:#c5dcaa}header{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;gap:20px;padding:20px max(22px,env(safe-area-inset-right));pointer-events:none;background:linear-gradient(#101915e8,transparent)}header img{width:66px;max-height:45px;object-fit:contain}header span{font-size:12px;letter-spacing:2px}header small{display:block;font-size:9px;opacity:.55;margin-top:5px}header button{margin-left:auto;pointer-events:auto}#gate{position:fixed;z-index:10;inset:75px 0 35px;overflow:auto;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px;background:radial-gradient(ellipse at 50% 45%,#29413b,#111816 70%)}.eyebrow{color:#98af9e;font-size:10px;letter-spacing:2px}h1{font-family:'Archivo Black',sans-serif;font-size:clamp(28px,5vh,47px);line-height:1.06;margin:4px 0 0;letter-spacing:-2px}.card{height:24vh;min-height:140px;transform:rotate(-6deg);box-shadow:15px 16px 35px #0008;margin:10px}p{font-size:12px;line-height:1.7;margin:4px}#gate a{font-size:11px;margin:5px}small{font-size:9px;color:#a6b6ac}#gate>small{max-width:300px;line-height:1.5}#stage{position:fixed;inset:0}#stage a-scene{height:100%;width:100%}#status{position:fixed;z-index:15;top:100px;left:20px;right:20px;text-align:center;font-size:12px;pointer-events:none;text-shadow:0 2px 6px #000;background:#10191599;border-radius:10px;padding:10px;display:none}#controls{position:fixed;z-index:15;bottom:80px;left:50%;transform:translateX(-50%);width:min(370px,90%);background:#14251bea;backdrop-filter:blur(12px);border:1px solid #788a6844;padding:16px;border-radius:12px}.control-help{font-size:11px;text-align:center;margin-bottom:15px;color:#d0e6a5}label{display:flex;align-items:center;gap:12px;font-size:11px}input[type=range]{accent-color:#c9e995;flex:1;min-width:0}#practiceNotice{display:block;text-align:center;margin-top:10px}#messageActions{position:fixed;z-index:16;bottom:95px;left:0;right:0;text-align:center}#settings{position:fixed;z-index:18;right:16px;bottom:35px;font-size:10px}details[open]{background:#162820ef;border:1px solid #587563;padding:15px;border-radius:8px}details label{margin:12px 0}summary{cursor:pointer}footer{position:fixed;z-index:18;bottom:10px;left:16px;font-size:8px;opacity:.6}footer a{color:inherit}[hidden]{display:none!important}canvas{touch-action:none}.a-enter-vr,.a-enter-ar{display:none!important}

.nudges{display:flex;justify-content:center;gap:6px;margin-top:8px}.nudges button{min-height:32px;padding:3px 16px}

.placement{color:#d6ee95}.placement-check{font-size:12px;line-height:1.5;max-width:320px}.placement-check input{width:20px;height:20px}button:disabled{opacity:.45;cursor:default}
/* Nora's paper transmission: the physical card carries into the scanner. */
body{background:#e9e1d1;color:#282721}header{background:linear-gradient(#e9e1d1, #e9e1d100);padding:18px 24px;gap:16px}header img{filter:brightness(0);width:60px}header span{font-size:10px;letter-spacing:1.7px}header small{color:inherit}#gate{inset:78px 0 28px;background:radial-gradient(ellipse at 50% 35%,#f4eedf,#e6ddcc);padding:18px 22px 30px;display:block;text-align:left}.dispatch{width:min(100%,440px);margin:auto}.eyebrow{color:#8c6246;display:flex;align-items:center;gap:9px;font-size:9px;letter-spacing:1.8px;padding:0 0 16px}.eyebrow>span:last-child{margin-left:auto}.signal-dot{width:6px;height:6px;border-radius:50%;background:#a56d47;box-shadow:0 0 0 4px #a56d4714}.letter{position:relative;border-top:1px solid #38362b;border-bottom:1px solid #38362b;padding:22px 0 18px}.file-label{font-size:8px;letter-spacing:1.5px;color:#79715f}h1{font-size:clamp(40px,7vh,62px);line-height:1.02;letter-spacing:-2.8px;margin:19px 0 12px;max-width:310px}.evidence{position:absolute;right:0;top:82px;width:112px;transform:rotate(7deg)}.card{width:100%;height:auto;min-height:0;margin:0;transform:none;box-shadow:3px 8px 16px #36281133}.evidence-caption{display:block;font-size:6px;letter-spacing:.5px;margin-top:10px;text-align:center;color:#8c6246}.message{font-size:14px;line-height:1.75;margin:22px 0 14px}.instructions{font-size:11px;line-height:1.9;margin:0;max-width:350px}.signature{margin-top:22px;display:flex;align-items:center;justify-content:space-between;font-size:13px;letter-spacing:2px}.signature span{font-size:7px;letter-spacing:1px;color:#8c6246;border:1px solid #a8785355;padding:6px 8px}.activation{text-align:center;padding-top:16px}.placement{color:#726754;font-size:10px;line-height:1.7;margin:0 0 13px}button{background:#e8dfce;border:1px solid #aa9981;border-radius:2px;color:#282721}button:hover{border-color:#835534}.primary{background:#292822;color:#f4eddf;border:1px solid #292822;border-radius:2px;min-height:54px;font-size:11px;letter-spacing:.4px}.activation .primary{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 20px}.activation .primary span{font-size:22px;color:#c39470}.activation small{display:block;color:#827563;font-size:9px;margin-top:11px}a{color:#80573b}small{color:#827563}footer{font-size:7px;color:#6a6253}#controls,details[open]{background:#292822ed;border:1px solid #a58b68;color:#f4eddf;border-radius:4px}.control-help{color:#e0c6a4}input[type=range]{accent-color:#bc8b62}#status{background:#292822e8;color:#f4eddf;text-shadow:none;border-radius:3px}.scanning header{background:linear-gradient(#24241dea,transparent);color:#eee6d6}.scanning header img{filter:none}.scanning footer{color:#eee6d6;text-shadow:0 1px 4px #000}button:focus-visible,a:focus-visible{outline:3px solid #aa7247;outline-offset:4px}#gate>h1,#gate>p,#gate>.card,#gate>button,#gate>a,#gate>label,#gate>small{display:block;margin:14px auto;text-align:center}#gate>.card{width:140px}#gate>.eyebrow{justify-content:center}
@media(max-width:380px){.evidence{width:87px;top:89px}h1{font-size:43px}.message{font-size:12px}.instructions{font-size:10px}.signature span{font-size:6px}header{padding:16px 20px}}@media(min-width:700px){#gate{padding-top:30px}.dispatch{max-width:440px}.letter{padding-top:26px}.evidence{width:122px;right:3px;top:87px}}@media(prefers-reduced-motion:no-preference){.dispatch{animation:arrival .7s ease-out both}@keyframes arrival{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
@media(max-width:480px){h1{font-size:43px;letter-spacing:-2px}.evidence{width:80px;top:90px;right:4px}.message{font-size:12px}.instructions{font-size:10px}.signature span{font-size:6px}}
#alignment{position:fixed;z-index:16;left:50%;top:175px;transform:translateX(-50%);width:68px;height:68px;border-radius:50%;padding:3px;background:conic-gradient(#bb885e var(--progress,0deg),#bb885e33 0);display:grid;place-items:center}#alignment span{background:#292822;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:#dec8a6;font-size:14px;letter-spacing:3px}#alignment.aligned{background:#6fe6ff;box-shadow:0 0 25px #6fe6ff77}#alignmentFallback{position:fixed;z-index:19;bottom:60px;left:20px;right:20px;text-align:center;background:#292822ed;color:#f4eddf;padding:16px;border:1px solid #a58b68;border-radius:4px}#alignmentFallback p{font-size:10px;margin-bottom:12px}
#keyAction{position:fixed;z-index:22;bottom:180px;left:24px;right:24px;text-align:center}#acceptKey{background:#172b30ef;border:1px solid #7fddf0;color:#dcfbff;box-shadow:0 0 28px #53dafa55;min-width:250px;font-size:15px;padding:18px 26px}#acceptKey span{margin-left:20px}
