:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#0a0b0a;--ink-2:#11130f;--panel:#151711;--panel-2:#1b1c16;--limestone:#e9dfc8;--muted:#a79f8d;--dim:#706a5f;--line:#e9dfc829;--line-strong:#e9dfc847;--brass:#c3974a;--bronze:#9a6a3a;--green:#5b8c78;--red:#9b4d3f;--gold:#d4b56d;--water:#6f9ea1;--stone:#99917f;--shadow:0 22px 70px #0000006b;background:var(--ink);color:var(--limestone);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--ink);min-height:100%}body{background:linear-gradient(#050604 0%,#10110d 48%,#080907 100%);min-height:100%;margin:0}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}button:disabled{cursor:not-allowed;opacity:.42}.app-shell{min-height:100vh;padding-bottom:max(26px, env(safe-area-inset-bottom));background-color:#0000;background-image:linear-gradient(#e9dfc809 1px,#0000 1px),linear-gradient(90deg,#e9dfc807 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:44px 44px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box}.hero-band{isolation:isolate;flex-direction:column;justify-content:space-between;min-height:min(760px,88svh);display:flex;position:relative;overflow:hidden}.hero-image{z-index:-3;background-image:url(/assets/mckim-cipher-hero.png);background-position:top;background-size:cover;position:absolute;inset:0;transform:scale(1.01)}.hero-shade{z-index:-2;background:linear-gradient(#040504b8 0%,#0708062e 34%,#070806c2 72%,#0a0b0a 100%),linear-gradient(90deg,#00000075,#00000014 50%,#0000008f);position:absolute;inset:0}.topbar{width:min(1120px,100%);padding:max(16px, env(safe-area-inset-top)) 18px 10px;grid-template-columns:96px minmax(0,1fr) 96px;align-items:center;gap:12px;margin:0 auto;display:grid;position:relative}.topbar-actions{justify-content:flex-end;gap:8px;display:flex}.brand-lockup{text-align:center;min-width:0}.brand-lockup span{color:#fff6dd;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:1.02rem;display:block;overflow:hidden}.brand-lockup small{color:#e9dfc8b3;text-transform:uppercase;font-size:.72rem;display:block}.ghost-button,.primary-button,.secondary-button,.text-button,.evidence-button,.check-card,.hint-box button,.clean-run{border:1px solid var(--line);min-height:44px;color:var(--limestone);cursor:pointer;background:#131511b3;border-radius:8px}.ghost-button{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);place-items:center;width:44px;height:44px;display:grid}.hero-content{width:min(1120px,100%);margin:0 auto;padding:28px 18px 38px}.classification{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.classification span,.intel-tags span{color:#e9dfc8d1;text-transform:uppercase;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#0708067a;border:1px solid #e9dfc833;border-radius:999px;padding:7px 10px;font-size:.72rem}h1,h2,p{margin-top:0}h1{color:#fff8e8;text-wrap:balance;max-width:11ch;margin-bottom:14px;font-family:Georgia,Times New Roman,serif;font-size:4.9rem;font-weight:600;line-height:.9}.hero-content p{color:#fff8e8d1;max-width:660px;margin-bottom:24px;font-size:1.04rem;line-height:1.55}.hero-actions,.nav-actions,.report-toggle{gap:10px;display:flex}.primary-button,.secondary-button,.text-button,.evidence-button,.clean-run{justify-content:center;align-items:center;gap:9px;padding:0 15px;text-decoration:none;display:inline-flex}.primary-button{color:#120e07;background:linear-gradient(#e0bd72 0%,#b98738 100%);border-color:#d4b56d85;box-shadow:0 13px 34px #00000057}.secondary-button,.text-button,.evidence-button{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0a0b0a9e}.mission-console{width:min(980px,100%);margin:0 auto;padding:14px 14px 0}.status-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.metric{border:1px solid var(--line);min-width:0;min-height:72px;box-shadow:var(--shadow);background:#141511d1;border-radius:8px;padding:10px 8px}.metric svg{color:var(--brass)}.metric span{color:var(--muted);text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;margin-top:4px;font-size:.68rem;display:block;overflow:hidden}.metric strong{color:#fff8e8;font-variant-numeric:tabular-nums;margin-top:2px;font-size:1rem;display:block}.progress-rail{grid-template-columns:repeat(11,minmax(30px,1fr));gap:6px;margin:14px 0;display:grid}.progress-rail button{border:1px solid var(--line);color:#e9dfc8b3;cursor:pointer;background:#0f110de6;border-radius:6px;min-width:0;height:38px;position:relative}.progress-rail button span{text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,Times New Roman,serif;font-size:.78rem;display:block;overflow:hidden}.progress-rail button.done{color:#d6eee3;border-color:#5b8c788a}.progress-rail button.active{color:#120e07;background:#d4b56d;border-color:#d4b56ddb}.intercept-panel{border:1px solid var(--line-strong);box-shadow:var(--shadow);background:linear-gradient(135deg,#e9dfc80d,#0000 34%),linear-gradient(#1a1c16f5,#0f100cf7);border-radius:8px;padding:18px;position:relative;overflow:hidden}.intercept-panel:before{content:"";background:var(--accent,var(--brass));width:100%;height:4px;position:absolute;top:0;left:0}.accent-brass{--accent:var(--brass)}.accent-bronze{--accent:var(--bronze)}.accent-green{--accent:var(--green)}.accent-stone{--accent:var(--stone)}.accent-red{--accent:var(--red)}.accent-gold{--accent:var(--gold)}.accent-water{--accent:var(--water)}.intercept-header{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;display:grid}.eyebrow{color:var(--accent,var(--brass));text-transform:uppercase;margin-bottom:7px;font-size:.78rem;display:block}h2{color:#fff8e8;text-wrap:balance;margin-bottom:12px;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:600;line-height:1.05}.numeral{width:54px;height:54px;color:var(--accent,var(--brass));background:#0a0b0a80;border:1px solid #e9dfc838;border-radius:50%;place-items:center;font-family:Georgia,Times New Roman,serif;font-size:1rem;display:grid}.intel-tags{flex-wrap:wrap;gap:7px;margin-bottom:16px;display:flex}.location,.recover-line{color:#e9dfc8e0;align-items:flex-start;gap:9px;line-height:1.45;display:flex}.location svg,.recover-line svg{color:var(--accent,var(--brass));flex:none;margin-top:2px}.prompt-copy{color:#e9dfc8c7;font-size:1rem;line-height:1.65}.recover-line{color:#fff8e8;margin-bottom:18px;font-weight:650}.field-capture,.decryptor,.report-panel{gap:14px;margin-top:14px;display:grid}.input-stack{gap:7px;display:grid}.input-stack span{color:var(--muted);text-transform:uppercase;font-size:.78rem}input,textarea{color:#fff8e8;background:#07080694;border:1px solid #e9dfc833;border-radius:8px;outline:none;width:100%;min-height:50px;padding:12px 13px}textarea{resize:vertical;min-height:96px;line-height:1.45}input:focus,textarea:focus{border-color:#d4b56db8;box-shadow:0 0 0 3px #d4b56d1f}.check-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.check-card{text-align:left;align-content:start;gap:6px;min-height:132px;padding:13px;display:grid}.check-card span{width:32px;height:32px;color:var(--accent,var(--brass));background:#e9dfc814;border-radius:50%;place-items:center;display:grid}.check-card strong{color:#fff8e8;font-size:.95rem}.check-card small{color:var(--muted);font-size:.78rem;line-height:1.35}.check-card.checked{background:#30534452;border-color:#5b8c78b8}.evidence-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.evidence-button{position:relative;overflow:hidden}.evidence-button input{opacity:0;position:absolute;inset:0}.proof-image{border:1px solid var(--line);object-fit:cover;border-radius:8px;width:100%;max-height:310px;display:block}.hint-box{border-top:1px dashed #e9dfc821;margin-top:22px;padding-top:10px}.hint-box>.assist-tab{color:#e9dfc894;width:auto;min-height:32px;box-shadow:none;text-align:right;text-transform:uppercase;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:flex-end;gap:3px;margin-left:auto;padding:0;font-size:.75rem;line-height:1.1;display:flex}.hint-box>.assist-tab span{align-items:center;gap:7px;display:inline-flex}.hint-box>.assist-tab small{color:#e9dfc85c;letter-spacing:0;font-size:.66rem}.hint-box p{color:#e9dfc8cc;margin:0;padding:0;line-height:1.55}.hint-box.used{border-top-color:#c3974a42}.assist-gate{background:#090a0857;border:1px solid #c3974a33;border-radius:8px;gap:12px;margin-top:8px;padding:12px;display:grid}.assist-gate p,.hint-box.used p{font-size:.86rem}.hint-box.used p{background:#090a0857;border:1px solid #c3974a33;border-radius:8px;margin-top:8px;padding:12px}.hold-assist{color:#fff8e8;background:#0a0b0ac7;border:1px solid #d4b56d66;width:100%;min-height:42px;position:relative;overflow:hidden}.hold-assist span{transform-origin:0;background:#d4b56d42;position:absolute;inset:0}.hold-assist strong{z-index:1;text-align:center;text-transform:uppercase;width:100%;font-size:.82rem;display:block;position:relative}.cipher-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.cipher-cell{background:#07080694;border:1px solid #e9dfc829;border-radius:6px;place-items:center;min-height:64px;display:grid}.cipher-cell span{color:#fff8e8;font-size:1rem;font-weight:700}.cipher-cell small{color:var(--brass);font-size:.72rem;font-weight:700}.cipher-cell strong{color:var(--green);font-size:1rem}.plaintext-output{background:#26423638;border:1px solid #5b8c786b;border-radius:8px;padding:14px}.plaintext-output span{color:var(--muted);text-transform:uppercase;font-size:.78rem;display:block}.plaintext-output strong{overflow-wrap:anywhere;color:#e5fff3;margin-top:5px;font-size:1.22rem;line-height:1.35;display:block}.memory-list{gap:8px;display:grid}.memory-list div{background:#07080680;border:1px solid #e9dfc824;border-radius:8px;gap:4px;padding:12px;display:grid}.memory-list span{color:var(--muted);text-transform:uppercase;font-size:.76rem}.memory-list strong{color:#fff8e8;overflow-wrap:anywhere;font-size:.96rem}.memory-list.practice strong{color:var(--dim)}.clean-run{background:#26423647;border-color:#5b8c7873;width:100%}.nav-actions{justify-content:space-between;margin:16px 0 10px}.nav-actions .primary-button,.nav-actions .secondary-button{min-width:122px}@media (width>=780px){.hero-band{min-height:720px}.hero-content{padding-bottom:80px}.mission-console{margin-top:0}.intercept-panel{padding:30px}.field-capture{grid-template-columns:minmax(0,1fr) 280px;align-items:start}.note-stack,.proof-image,.check-grid{grid-column:1/-1}.decryptor{grid-template-columns:280px minmax(0,1fr)}.cipher-grid,.plaintext-output{grid-column:1/-1}.report-panel{grid-template-columns:1fr 1fr}.report-toggle,.memory-list,.clean-run,.case-file{grid-column:1/-1}}@media (width<=520px){h1{font-size:3.35rem}h2{font-size:1.62rem}.hero-actions,.nav-actions{grid-template-columns:1fr 1fr;display:grid}.hero-actions .primary-button,.hero-actions .secondary-button,.nav-actions .primary-button,.nav-actions .secondary-button{width:100%;padding-left:10px;padding-right:10px}.status-strip{gap:6px}.metric{min-height:66px;padding:9px 7px}.progress-rail{grid-template-columns:repeat(6,minmax(0,1fr))}.intercept-panel{padding:16px}.numeral{width:48px;height:48px}.cipher-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.check-grid,.report-toggle{grid-template-columns:1fr}}.cipher-cell.veiled strong{color:var(--dim)}.cipher-cell.lit strong{animation:.34s ease-out both cipher-flip}@keyframes cipher-flip{0%{opacity:0;color:#fff8e8;transform:rotateX(86deg)scale(1.3)}60%{opacity:1}to{transform:none}}.plaintext-output.solved{border-color:#d4b56d99;animation:2.2s ease-in-out 3 solved-glow}@keyframes solved-glow{0%,to{box-shadow:0 0 #d4b56d00}50%{box-shadow:0 0 34px #d4b56d66}}.case-file{gap:12px;display:grid}.case-file-preview{border:1px solid var(--line-strong);border-radius:8px;width:100%}.case-file-actions{gap:10px;display:flex}.case-file-note{color:var(--muted);margin:0;font-size:.82rem;line-height:1.5}@media (prefers-reduced-motion:reduce){.cipher-cell.lit strong,.plaintext-output.solved{animation:none}}.compass-lock{background:#090a0866;border:1px solid #5b8c7857;border-radius:8px;align-items:center;gap:11px;padding:12px 13px;display:flex}.compass-lock>svg{color:var(--accent,var(--brass));flex:none}.compass-lock div{flex:1;min-width:0}.compass-lock strong{color:#fff8e8;font-size:.92rem;display:block}.compass-lock small{color:var(--muted);font-size:.76rem;line-height:1.35;display:block}.compass-lock .secondary-button{flex:none;min-height:38px;font-size:.8rem}.compass-lock.locked{background:#30534452;border-color:#5b8c78b8}.compass-lock.locked>svg:last-child{color:#d6eee3}.compass-active{color:var(--limestone);background:#090a0866;border:1px solid #e9dfc838;border-radius:8px;grid-template-columns:124px minmax(0,1fr);align-items:center;gap:14px;padding:14px;display:grid}.compass-active.aligned{color:#d6eee3;border-color:#5b8c78bf}.compass-dial svg{width:100%;height:auto;display:block}.compass-readout strong{color:#fff8e8;text-transform:uppercase;font-size:.95rem;display:block}.compass-active.aligned .compass-readout strong{color:#d6eee3}.compass-readout small{color:var(--muted);margin-top:5px;font-size:.76rem;line-height:1.35;display:block}.compass-hold{background:#07080699;border:1px solid #5b8c7866;border-radius:999px;height:7px;margin-top:11px;position:relative;overflow:hidden}.compass-hold span{transform-origin:0;background:#5b8c78bf;position:absolute;inset:0}.scan-logged{color:#d6eee3;letter-spacing:.5px;background:#26423642;border:1px solid #5b8c7873;border-radius:8px;align-items:center;gap:8px;margin:0;padding:11px 13px;font-family:Courier New,monospace;font-size:.82rem;display:flex}.camera-overlay{z-index:60;background:#050604;flex-direction:column;display:flex;position:fixed;inset:0}.camera-stage{flex:1;min-height:0;position:relative;overflow:hidden}.camera-stage video{object-fit:cover;width:100%;height:100%}.camera-error{color:var(--limestone);background:#0a0b0ae0;border:1px solid #c3974a66;border-radius:8px;margin:0;padding:13px;font-size:.88rem;line-height:1.45;position:absolute;inset:auto 18px 18px}.frame-guide{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:26px;display:flex;position:absolute;inset:0}.frame-guide svg{width:min(82vw,520px);height:auto}.frame-guide path{fill:none;stroke:#fff8e899;stroke-width:2.5px;stroke-dasharray:9 7;stroke-linecap:round;stroke-linejoin:round}.frame-guide span{color:#fff8e8e0;text-transform:uppercase;letter-spacing:1px;background:#0a0b0a9e;border-radius:999px;padding:7px 14px;font-size:.78rem}.scan-reticle{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:absolute;inset:0}.scan-reticle span{border:2px solid #fff8e8a6;border-radius:10px;width:min(74vw,420px);height:130px;display:block;position:relative;box-shadow:0 0 0 2000px #05060473}.scan-reticle span:after{content:"";background:#d4b56dd9;height:2px;animation:1.6s ease-in-out infinite alternate scan-sweep;position:absolute;top:50%;left:10px;right:10px}@keyframes scan-sweep{0%{transform:translateY(-44px)}to{transform:translateY(44px)}}.scan-reticle small{z-index:1;color:#fff8e8d9;text-align:center;text-transform:uppercase;letter-spacing:.6px;max-width:320px;font-size:.78rem}.camera-controls{padding:14px 16px max(18px, env(safe-area-inset-bottom));background:#0a0b0af5;gap:10px;display:grid}.manual-isbn{gap:9px;display:flex}.manual-isbn input{min-height:46px}.manual-isbn .secondary-button{flex:none;min-width:76px}.manual-error{color:var(--red);margin:0;font-size:.8rem}.camera-actions{justify-content:center;align-items:center;gap:12px;display:flex}.shutter{cursor:pointer;background:#e9dfc838;border:3px solid #fff8e8e6;border-radius:50%;width:62px;height:62px}.shutter:active{background:#e9dfc899}@media (prefers-reduced-motion:reduce){.scan-reticle span:after{animation:none}}.hero-band.compact{min-height:0}.hero-band.compact .hero-image,.hero-band.compact .hero-shade,.hero-band.compact .hero-content{display:none}.hero-band.compact .topbar{border-bottom:1px solid var(--line);padding-bottom:12px}.metric-button{cursor:pointer;text-align:left}.metric-button:active{background:#22241deb}
