
:root{--bg:#0f172a;--panel:#ffffff;--ink:#101827;--muted:#64748b;--line:#dbe3ef;--accent:#2563eb;--soft:#f8fafc;--footer:#111827;--header-h:72px;--footer-h:76px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:linear-gradient(135deg,#0f172a,#1e293b);color:var(--ink);overflow:hidden}.app{height:100svh;min-height:520px;display:grid;grid-template-rows:var(--header-h) minmax(0,1fr) var(--footer-h);padding:14px;gap:12px}.shell{border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 70px rgba(0,0,0,.32)}.app-header,.app-footer{background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-radius:22px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;min-width:0}.brand{display:flex;align-items:center;gap:14px;min-width:0}.mark{width:42px;height:42px;border-radius:14px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-.04em}.brand-text{min-width:0}.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:750;white-space:nowrap}.brand h1{font-size:18px;line-height:1.1;margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.version{font-size:12px;font-weight:800;color:#1d4ed8;background:#dbeafe;padding:8px 10px;border-radius:999px;white-space:nowrap}.stage{min-height:0;overflow:hidden;border-radius:26px;background:rgba(255,255,255,.94);padding:18px}.card{height:100%;min-height:0;display:grid;grid-template-columns:minmax(240px,.95fr) minmax(0,1.05fr);gap:22px;border-radius:22px;background:var(--panel);border:1px solid var(--line);padding:20px;overflow:hidden}.visual{min-height:0;border-radius:20px;background:var(--soft);display:grid;place-items:center;overflow:hidden;border:1px solid #e5eaf2}.visual img{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain;padding:18px}.copy{min-height:0;display:flex;flex-direction:column;overflow:hidden}.kicker{font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#1d4ed8;margin-bottom:10px}.copy h2{font-size:clamp(26px,4vw,52px);line-height:.96;letter-spacing:-.055em;margin:0 0 12px}.copy .subtitle{font-size:clamp(15px,1.55vw,20px);line-height:1.35;color:#475569;font-weight:650;margin:0 0 16px}.body-scroll{min-height:0;overflow:auto;padding-right:8px;scrollbar-width:thin}.body-scroll p{font-size:clamp(16px,1.35vw,20px);line-height:1.55;margin:0 0 14px}.source{margin-top:auto;padding-top:12px;font-size:12px;color:#64748b;font-weight:700}.app-footer{gap:14px}.controls{display:flex;align-items:center;gap:10px}.btn{border:0;background:#111827;color:white;font:inherit;font-weight:800;padding:11px 16px;border-radius:14px;cursor:pointer}.btn:disabled{opacity:.35;cursor:not-allowed}.progress-wrap{flex:1;display:flex;align-items:center;gap:12px;min-width:80px}.progress-track{height:10px;background:#e2e8f0;border-radius:999px;overflow:hidden;flex:1}.progress-bar{height:100%;width:0;background:#2563eb;border-radius:999px;transition:width .22s ease}.counter{font-size:13px;font-weight:800;color:#475569;white-space:nowrap}.hint{font-size:12px;color:#64748b;white-space:nowrap}@media (max-width:760px){:root{--header-h:76px;--footer-h:86px}.app{padding:10px;gap:10px}.app-header,.app-footer{border-radius:18px;padding:0 14px}.brand{gap:10px}.mark{width:38px;height:38px}.brand h1{font-size:15px}.version{display:none}.stage{padding:10px;border-radius:20px}.card{grid-template-columns:1fr;grid-template-rows:minmax(126px,36%) minmax(0,1fr);gap:12px;padding:12px;border-radius:18px}.visual{border-radius:16px}.visual img{padding:10px}.copy h2{font-size:clamp(24px,8.5vw,34px)}.copy .subtitle{font-size:15px;margin-bottom:10px}.body-scroll p{font-size:15px;line-height:1.48}.source,.hint{display:none}.btn{padding:10px 12px}.app-footer{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;height:auto}.progress-wrap{grid-column:1/-1;grid-row:1}.controls{grid-column:1/-1;justify-content:space-between}.controls .btn{width:48%}}@media (max-height:620px) and (min-width:761px){:root{--header-h:62px;--footer-h:62px}.app{padding:10px;gap:8px}.stage{padding:10px}.card{padding:14px;gap:14px}.copy h2{font-size:clamp(24px,3.2vw,42px)}.copy .subtitle{font-size:16px;margin-bottom:10px}.body-scroll p{font-size:16px;line-height:1.42}.visual img{padding:12px}.eyebrow,.hint,.source{display:none}}
