:root{--navy:#17233a;--blue:#3974bb;--pale:#eaf3ff;--ink:#1e293b;--muted:#64748b;--line:#d8e1ee;--cream:#fffdf8;--pink:#fff0eb}*{box-sizing:border-box}body{margin:0;background:linear-gradient(#f8fbff,#f7f4ef);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;min-height:100vh}button{font:inherit;touch-action:manipulation}main{max-width:680px;margin:auto;min-height:90vh}.brand{position:sticky;top:0;z-index:5;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:#f8fbfff2;backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.quiet{border:0;background:transparent;color:var(--blue);padding:10px 6px}.screen{display:none;padding:20px 16px 32px}.screen.active{display:block}.hero{background:var(--navy);color:white;border-radius:24px;overflow:hidden;display:grid;grid-template-columns:1.15fr .85fr;min-height:235px;padding:22px 0 0 22px;box-shadow:0 12px 30px #17233a22}.hero h1{font-size:32px;line-height:1.2;margin:5px 0 14px}.hero p{font-size:13px;line-height:1.7}.hero img{width:100%;height:230px;object-fit:cover;object-position:center 36%;border-radius:18px 0 0 0;align-self:end}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--blue);margin:0 0 8px}.hero .eyebrow{color:#9dc8ff}.paper{background:#ffffffcc;border:1px solid var(--line);border-radius:22px;padding:20px;margin-top:16px}.paper h2{font-size:17px;margin:0 0 15px}.jobs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.job{border:1px solid var(--line);background:white;border-radius:15px;min-height:78px;text-align:left;padding:14px;color:var(--ink);font-weight:800;box-shadow:0 3px 0 #dce5ef}.job span{display:block;font-size:22px;margin-bottom:5px}.job:active{transform:translateY(2px);box-shadow:0 1px 0 #dce5ef}.scene{text-align:center;background:white;border:1px solid var(--line);border-radius:24px;padding:28px 22px;margin-top:10px}.scene img,.result-card img{width:150px;height:150px;border-radius:50%;object-fit:cover;object-position:center 8%;border:5px solid var(--pale);margin:10px auto;display:block}.scene h2{font-size:22px}.speech{background:var(--pale);border-radius:16px;padding:16px;position:relative;line-height:1.7}.primary,.secondary{width:100%;min-height:52px;border-radius:14px;font-weight:800}.primary{border:0;background:var(--navy);color:white;box-shadow:0 4px 0 #09101e}.secondary{border:1px solid var(--line);background:white;color:var(--ink)}.result-card{background:white;border:1px solid var(--line);border-radius:24px;padding:23px;text-align:center;box-shadow:0 10px 28px #17233a14}.rarity{display:inline-block;padding:5px 11px;border-radius:99px;background:var(--pale);color:var(--blue);font-size:12px;font-weight:800}.result-card h2{font-size:23px;margin:10px}.result-card>p:not(.eyebrow,.verdict){line-height:1.8}.stats{background:#f7f8fa;border-radius:15px;padding:12px 16px;text-align:left;line-height:1.9;font-size:14px;white-space:pre-line}.verdict{font-weight:900;font-size:20px;margin-bottom:0}.actions{display:grid;gap:10px;margin-top:14px}.book-head{display:flex;justify-content:space-between;align-items:start}.book-head h1{font-size:25px;margin:0}.progress{display:flex;gap:12px;align-items:center}.progress>span{height:9px;background:#dfe7f1;border-radius:10px;flex:1;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--blue)}.filters{display:flex;gap:7px;overflow-x:auto;padding:6px 0 13px}.filter{white-space:nowrap;border:1px solid var(--line);background:white;border-radius:99px;padding:8px 12px;color:var(--muted)}.filter.on{background:var(--navy);color:white}.entries{display:grid;gap:9px}.entry{width:100%;text-align:left;border:1px solid var(--line);border-radius:14px;background:white;padding:13px;display:flex;gap:12px;align-items:center}.entry .no{color:var(--muted);font-size:12px}.entry strong{display:block;margin-bottom:4px}.entry.locked{color:#9aa5b5;background:#f4f6f8}.entry .tag{margin-left:auto;font-size:11px;color:var(--blue)}.danger{display:block;margin:28px auto 0;border:0;background:transparent;color:#a34b52;padding:12px}dialog{border:0;border-radius:22px;max-width:calc(100% - 32px);width:430px;padding:20px;box-shadow:0 20px 70px #0005}dialog::backdrop{background:#17233a99}#detail .quiet{float:right}footer{text-align:center;color:var(--muted);font-size:11px;line-height:1.7;padding:18px 10px calc(25px + env(safe-area-inset-bottom))}@media(max-width:360px){.hero h1{font-size:27px}.hero{grid-template-columns:1.25fr .75fr}.jobs{grid-template-columns:1fr}}
