:root{color-scheme:dark;--ink:#0b1210;--panel:#151e19;--text:#d4d4c4;--muted:#a0aa98;--line:#34483a;--copper:#c29873;--paper:#e0e6cf}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 0,#1b2a20 0,transparent 650px),var(--ink);color:var(--text);font:17px/1.65 Georgia,'Times New Roman',serif}a{color:var(--paper);text-underline-offset:4px}button{font:inherit;color:var(--text)}a:focus-visible,button:focus-visible{outline:2px solid #d3ae83;outline-offset:5px}
.page-header{max-width:1000px;margin:auto;text-align:center;padding:44px 20px 26px}.eyebrow{font:11px/1.6 'Courier New',monospace;letter-spacing:.23em;text-transform:uppercase;color:var(--copper);text-decoration:none}.page-header h1{font-weight:normal;color:var(--paper);font-size:clamp(2.2rem,5vw,3.4rem);letter-spacing:.06em;line-height:1.2;margin:15px 0 8px}.subtitle{font-style:italic;letter-spacing:.06em;margin:0;color:var(--muted)}nav{display:flex;justify-content:center;gap:12px;margin-top:23px;flex-wrap:wrap}nav a,.dm-tools button{border:1px solid var(--line);padding:6px 16px;border-radius:3px;text-decoration:none;font-size:14px;background:#10201855}nav a:hover,.dm-tools button:hover{background:#28392d}.page-header:after{content:'';display:block;height:1px;max-width:400px;margin:28px auto 0;background:linear-gradient(90deg,transparent,#79654c,transparent)}
.roster-wrap,.dm-wrap{max-width:1280px;padding:0 24px 56px;margin:auto}.intro{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font:12px/1.6 'Courier New',monospace;color:var(--muted);margin:0 0 20px}.intro span{font-family:Georgia,serif;font-style:italic;font-size:14px}.roster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.character-card{padding:0;text-align:left;cursor:pointer;background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:3px;overflow:hidden;transition:transform .18s,border-color .18s;box-shadow:0 8px 24px #0002}.character-card:hover{transform:translateY(-4px);border-color:var(--accent)}.card-portrait{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;background:#1b2921}.card-copy{padding:16px 17px 18px}.card-topline{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.card-name{font-size:25px;color:var(--paper);font-weight:normal;line-height:1.2;margin:0}.hp-badge{flex-shrink:0;font:12px/1.4 'Courier New',monospace;color:var(--accent);border:1px solid var(--line);padding:3px 6px;border-radius:3px}.card-full-name{font-size:13px;margin:7px 0 0;color:var(--text)}.card-feel{font-size:12px;font-style:italic;color:var(--muted);margin:0}.card-gift{margin:14px 0 0;padding-top:10px;border-top:1px solid var(--line);font-size:14px;color:var(--accent)}.card-action{font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.12em;display:block;color:var(--muted);margin-top:12px}
dialog{padding:0;border:1px solid #5a6a50;border-radius:5px;background:var(--panel);color:var(--text);width:min(960px,calc(100% - 32px));max-height:calc(100dvh - 40px);box-shadow:0 25px 100px #000a;overflow:auto}dialog::backdrop{background:#030907df;backdrop-filter:blur(5px)}.close-sheet{position:sticky;top:13px;z-index:1;float:right;width:36px;height:36px;margin:12px 12px -48px 0;border:1px solid #667361;border-radius:50%;background:#0b1210e8;color:var(--paper);font:26px/1 Arial,sans-serif;cursor:pointer}.sheet-layout{display:grid;grid-template-columns:36% 1fr}.sheet-portrait{width:100%;height:100%;min-height:460px;object-fit:cover;object-position:50% 35%;background:#15221b}.sheet-copy{padding:32px 36px}.sheet-kicker{font:11px 'Courier New',monospace;color:var(--accent);text-transform:uppercase;letter-spacing:.12em;margin:0 0 9px}.sheet-copy h2{font-size:30px;font-weight:normal;color:var(--paper);line-height:1.25;margin:0 22px 7px 0}.sheet-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:14px;color:var(--muted);font-style:italic}.sheet-description{font-size:16px;color:var(--text);margin:20px 0 24px}.sheet-section{margin:0 0 22px}.sheet-section h3,.field-label{font:10px/1.6 'Courier New',monospace;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin:0 0 6px}.sheet-section p{font-size:16px;margin:0}.sheet-section h4{font-size:21px;color:var(--paper);font-weight:normal;margin:0 0 5px}.uncanny{border-left:2px solid var(--accent);padding-left:16px;font-style:italic;color:#bac3af}
.compact{padding-top:30px}.compact h1{font-size:clamp(1.8rem,4vw,2.6rem)}.dm-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;flex-wrap:wrap}.dm-tools p{font-size:13px;font-style:italic;color:var(--muted);margin:0}.dm-tools button{cursor:pointer}.dm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.dm-card{border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:3px;background:var(--panel);padding:18px 20px}.dm-card-header{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}.dm-portrait{width:68px;height:86px;object-fit:cover;object-position:50% 35%;border-radius:2px}.dm-identity{flex:1;min-width:0}.dm-identity h2{font-size:23px;font-weight:normal;line-height:1.2;margin:0 0 5px}.dm-identity h2 a{text-decoration:none}.dm-identity p{font-size:12px;color:var(--muted);margin:0;font-style:italic}.dm-card section{margin:0 0 12px}.dm-card section:last-child{margin-bottom:0}.dm-card section p{font-size:14px;line-height:1.65;margin:0}.dm-power-name{display:block;font-size:17px;color:var(--paper);margin-bottom:3px}.hp-control{display:grid;grid-template-columns:30px auto 30px;align-items:center;gap:6px;flex-shrink:0}.hp-control button{width:30px;height:32px;border:1px solid var(--line);background:#0c1711;border-radius:3px;cursor:pointer;font:20px/1 Arial,sans-serif}.hp-control button:hover:not(:disabled){border-color:var(--accent);background:#24392b}.hp-control button:disabled{opacity:.35;cursor:default}.hp-value{font:16px 'Courier New',monospace;color:var(--paper);text-align:center;min-width:54px}.hp-label{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.12em}.hp-empty .hp-value{color:#d79a81}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1050px){.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.dm-card{padding:16px}.dm-card-header{gap:10px}.dm-portrait{width:54px;height:72px}.dm-identity h2{font-size:21px}}
@media(max-width:760px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.dm-grid{grid-template-columns:1fr}.sheet-layout{grid-template-columns:1fr}.sheet-portrait{height:310px;min-height:0;object-position:50% 27%}.sheet-copy{padding:25px}.sheet-copy h2{font-size:28px}.page-header{padding-top:30px}}
@media(max-width:460px){body{font-size:16px}.roster-wrap,.dm-wrap{padding-left:16px;padding-right:16px}.roster-grid{gap:12px}.card-copy{padding:12px}.card-name{font-size:21px}.card-topline{gap:5px}.hp-badge{font-size:10px;padding:2px 4px}.card-full-name{font-size:12px;line-height:1.5}.card-feel{font-size:11px}.card-gift{font-size:12px}.card-action{font-size:9px}.intro{font-size:11px}.dm-card-header{flex-wrap:wrap}.dm-identity{min-width:130px}.hp-control{margin-left:auto}.sheet-copy{padding:22px}.sheet-portrait{height:280px}}
@media(prefers-reduced-motion:reduce){.character-card{transition:none}.character-card:hover{transform:none}}
@media print{body{background:white;color:#222}.page-header,nav,.dm-tools,.hp-control button{display:none}.dm-wrap{padding:0;max-width:none}.dm-grid{gap:10px}.dm-card{background:white;border-color:#aaa;break-inside:avoid}.dm-identity h2 a,.dm-power-name,.hp-value{color:#222}.field-label,.dm-identity p,.hp-label{color:#555}.uncanny{color:#333}.dm-portrait{width:45px;height:58px}}
