:root{--ink:#222;--ink-soft:#555;--muted:#777;--paper:#f4f4f0;--card:#fff;--line:#ccc;--accent:#2a6ad0;--warn:#e8b030;--danger:#e03030;--success:#3a9a4a}*{box-sizing:border-box}html,body{overflow:hidden;color:#eee;background:#111;height:100%;margin:0;font:14px/1.4 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}canvas{display:block}.empty{color:var(--muted)}.btn{font:inherit;color:#fff;background:var(--accent);cursor:pointer;border:0;border-radius:4px;padding:6px 14px}.link{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0}.lesson{border-left:4px solid var(--warn);background:#fff8d0;padding:8px 12px}.tags{display:inline-flex;flex-wrap:wrap;gap:4px}.tag{color:var(--ink-soft);background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:0 6px;font-size:11px}.boss-vignette{position:fixed;z-index:3;pointer-events:none;animation:.7s ease-out forwards boss-flash;background:radial-gradient(#0000 45%,#c00c 100%);inset:0}.boss-shake{animation:.4s linear boss-shake}@keyframes boss-flash{0%{opacity:1}to{opacity:0}}@keyframes boss-shake{0%,to{transform:none}20%{transform:translate(-14px,4px)rotate(-1deg)}40%{transform:translate(10px,-6px)rotate(.8deg)}60%{transform:translate(-6px,3px)}80%{transform:translate(3px,-1px)}}.dialog-layer{position:fixed;z-index:3;display:flex;justify-content:center;align-items: flex-end;padding-bottom:8vh;inset:0}.dialog-layer[hidden]{display:none}.dialog{color:var(--ink);background:var(--paper);border-radius:6px;width:min(640px,92vw);padding:14px 18px;box-shadow:0 4px 16px #0008}.dialog p{margin:6px 0 12px;font-size:16px}.dialog-choices{display:flex;flex-wrap:wrap;align-items:baseline;gap:16px}.dialog-leave{color:var(--muted);margin-left:auto;font-size:12px}.modal{position:fixed;z-index:4;display:grid;background:#000a;place-items: center;inset:0}.modal-card{color:var(--ink);background:var(--paper);border-radius:8px;max-width:420px;padding:20px 24px}.modal-card h2{margin-top:0}.modal-card td:first-child{color:var(--muted);padding-right:16px}.modal-card .met{color:var(--success);font-weight:600}.modal-card .missed{color:var(--danger);font-weight:600}.modal-card .verdict{color:var(--ink-soft)}.modal-card .warning{border-left:4px solid var(--danger);background:var(--card);margin-bottom:12px;padding:8px 12px}.modal-card .warning p{margin:4px 0}.sound-key{position:fixed;z-index:2;color:var(--muted);pointer-events:none;font-size:12px;bottom:10px;right:12px}.file{padding:16px 24px}.file ul{list-style:none;margin:0;padding:0}.file .clue{background:var(--card);border:1px solid var(--line);border-radius:6px;margin-bottom:8px;padding:12px}.file .lesson{margin:6px 0 0}.leads{padding:16px 24px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.card{display:flex;font:inherit;text-align:left;background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:6px;flex-direction:column;gap:4px;padding:12px}.card:hover{border-color:var(--accent)}.card ul{color:var(--ink-soft);margin:4px 0 0;padding-left:18px}.template{display:flex;background:var(--card);border:1px solid var(--line);border-radius:6px;justify-content:space-between;align-items: flex-start;gap:16px;margin-bottom:8px;padding:12px}.template .subject{margin:4px 0;font-weight:600}.template .body{color:var(--ink-soft);margin:0;font-family:ui-monospace,monospace;font-size:12px}.result{border-radius:6px;padding:16px}.result.win{background:#e3f4e3}.result.loss{background:#f8e0e0}.leads button[data-send] small,.leads button[data-warm] small{display:block;opacity:.85;font-size:11px}.card>small+small{margin-top:4px}.result blockquote{margin:8px 0;font-style:italic}.trust{display:flex;align-items: center;gap:8px;font-size:13px}.trust meter{width:120px}.mail{display:grid;grid-template-columns:280px 1fr;height:100%}.mail-list{list-style:none;border-right:1px solid var(--line);overflow:auto;margin:0;padding:0}.mail-list li{display:flex;border-bottom:1px solid var(--line);cursor:pointer;flex-direction:column;padding:8px 12px}.mail-list li.unread b:before{content:"● ";color:var(--accent)}.mail-list li.selected{background:#dfe8f6}.mail-read{overflow:auto;padding:16px 24px}.mail-read .from{color:var(--muted)}.shop{padding:16px 24px}.shop .item{display:flex;background:var(--card);border:1px solid var(--line);border-radius:6px;justify-content:space-between;align-items: center;gap:16px;margin-bottom:8px;padding:12px}.shop .item p{color:var(--ink-soft);margin:4px 0 0}.shop .btn{white-space:nowrap}.shop .btn:disabled{background:var(--muted);cursor:default}.shop h3{margin:20px 0 8px}.desktop{position:fixed;z-index:1;display:flex;background:linear-gradient(160deg,#1d4f7a,#0e2a44);border:10px solid #1a1a1a;border-radius:8px;flex-direction:column;inset:4vh 6vw;box-shadow:0 0 0 100vmax #0008}.desktop[hidden],.window[hidden]{display:none}.taskbar{display:flex;background:#0008;gap:4px;padding:6px}.app-icon{position:relative;display:flex;color:inherit;font:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:4px;align-items: center;gap:6px;padding:6px 12px}.app-icon:hover{background:#ffffff2a}.app-icon b{background:var(--danger);border-radius:8px;padding:0 6px;font-size:11px}.window{display:flex;color:var(--ink);background:var(--paper);overflow:hidden;border-radius:6px;flex-direction:column;flex:1;min-height:0;margin:16px}.window header{display:flex;color:#eee;background:#333;justify-content:space-between;padding:6px 10px}.window header button{color:inherit;cursor:pointer;background:0 0;border:0;font-size:18px;line-height:1}.window-body{overflow:auto;flex:1;min-height:0}.hint{opacity:.6;padding:4px 10px;font-size:12px}.hud{position:fixed;z-index:2;pointer-events:none;inset:0}.hud-stats{position:absolute;display:flex;background:#000a;border-radius:6px;align-items: center;gap:16px;padding:6px 12px;top:12px;left:12px}.heat{display:flex;align-items: center;gap:6px}.hud-stats .met{color:var(--success)}.meter{display:inline-block;overflow:hidden;background:#333;border-radius:4px;width:120px;height:8px}.meter i{display:block;background:linear-gradient(90deg,var(--warn),var(--danger));width:0;height:100%;transition:width .3s}.crosshair{position:absolute;opacity:.6;top:50%;left:50%;transform:translate(-50%,-50%)}.prompt{position:absolute;text-align:center;text-shadow:0 1px 2px #000;width:100%;top:calc(50% + 24px)}
