:root{font-family:'Avenir Next',Avenir,'Segoe UI',sans-serif;color:#203a32;background:#f4f3ec;font-synthesis:none;--ink:#203a32;--green:#234e43;--line:#d4d9ce;--muted:#657469}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #b86a26;outline-offset:4px}button:disabled{opacity:.6;cursor:wait}.loading{padding:48px}.brand{display:flex;gap:12px;align-items:center;font-weight:700;letter-spacing:.02em}.mark{display:grid;place-items:center;background:var(--green);color:#f4f3ec;width:38px;height:38px;font-size:14px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:700}.auth{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}.intro{background:#e5e9dc;padding:clamp(28px,5vw,80px);display:flex;flex-direction:column;position:relative;overflow:hidden}.intro h1{font-family:Georgia,serif;font-size:clamp(52px,6vw,88px);font-weight:400;line-height:1.04;letter-spacing:-.055em;margin:65px 0 24px;max-width:560px}.intro p{max-width:350px;line-height:1.7;color:#516152}.intro .bottom{margin-top:auto;padding-top:50px}.drawing{width:180px;height:100px;position:absolute;right:40px;bottom:65px;transform:rotate(-12deg);border:1px solid #99a990;box-shadow:12px -12px 0 -1px #e5e9dc,12px -12px 0 0 #99a990,24px -24px 0 -1px #e5e9dc,24px -24px 0 0 #99a990}.form-side{padding:50px clamp(24px,7vw,110px);display:flex;justify-content:center;flex-direction:column}.form-side h2{font:400 38px Georgia,serif;letter-spacing:-.03em;margin:16px 0}.muted{color:var(--muted);line-height:1.6}label{display:block;font-size:13px;font-weight:600;margin:24px 0 9px}input,textarea{width:100%;border:1px solid #b9c4b7;background:#fafaf5;border-radius:4px;padding:14px;color:var(--ink)}textarea{resize:vertical;min-height:210px;line-height:1.6}.primary{border:1px solid var(--green);background:var(--green);color:#f6f5ef;padding:14px 22px;border-radius:4px;font-weight:600}.primary:hover{background:#193c32}.wide{width:100%;margin-top:26px}.quiet{border:1px solid var(--line);border-radius:4px;background:transparent;padding:10px 15px;color:var(--ink)}.text-button{border:0;padding:4px;background:transparent;color:var(--green);text-decoration:underline;text-underline-offset:4px}.help{font-size:12px;line-height:1.6;color:var(--muted);margin-top:8px}.error{color:#9a3029;font-size:14px;min-height:20px;line-height:1.5}.auth-switch{font-size:14px;text-align:center;margin-top:24px}.shell{max-width:1440px;margin:auto}.topbar{height:90px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.account{display:flex;align-items:center;gap:20px}.account span{font-size:13px;color:var(--muted)}main{padding:58px 5% 80px}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}h1{font:400 clamp(38px,4vw,56px) Georgia,serif;letter-spacing:-.04em;margin:14px 0}.summary{min-width:170px;font-size:13px;color:var(--muted)}progress{width:100%;height:5px;accent-color:var(--green);display:block;margin-top:12px}.toolbar{display:flex;align-items:center;gap:18px;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:20px}.tabs{display:flex;gap:6px}.tab{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:4px}.tab.active{background:var(--green);color:#f7f7ef}.search{max-width:260px;padding:10px 14px}.sheet-row{display:grid;grid-template-columns:60px 1fr 140px 100px;align-items:center;gap:20px;padding:27px 4px;border-bottom:1px solid var(--line)}.sheet-number{font:italic 26px Georgia,serif;color:#81907d}.sheet-row h2{font-size:18px;font-weight:600;margin:0 0 7px}.sheet-row p{font-size:13px;color:var(--muted);margin:0}.status{font-size:12px;color:var(--muted)}.status.done{color:var(--green)}.open{text-align:right;text-decoration:none;font-size:14px}.open:hover{text-decoration:underline}.empty{padding:60px 0}.empty h2{font:32px Georgia,serif}.back{display:inline-block;margin-bottom:28px;text-decoration:none;font-size:14px}.detail{display:grid;grid-template-columns:1.25fr 1fr;gap:70px}.source{margin-top:28px;border-top:1px solid var(--line);padding-top:28px}.source a{display:inline-block;text-decoration:none}.notes-panel{border-left:1px solid var(--line);padding-left:42px}.notes-panel h2{font:30px Georgia,serif;margin-top:0}.check{display:flex;align-items:center;gap:12px;font-size:14px;font-weight:400}.check input{width:18px;height:18px;accent-color:var(--green)}.save-row{display:flex;align-items:center;gap:18px;margin-top:22px}.save-status{font-size:13px;color:var(--muted)}footer{border-top:1px solid var(--line);margin:0 5%;padding:25px 0;font-size:12px;color:var(--muted);display:flex;justify-content:space-between}@media(max-width:760px){.auth{grid-template-columns:1fr}.intro{padding:25px}.intro h1{font-size:45px;margin:30px 0 12px}.intro p{margin:0}.intro .bottom,.drawing{display:none}.form-side{padding:35px 25px}.topbar{height:auto;min-height:80px;padding:18px 5%;align-items:start}.account{gap:10px;flex-direction:column;align-items:end}.account span{max-width:170px;overflow-wrap:anywhere}main{padding-top:35px}.page-heading{align-items:start;flex-direction:column;gap:10px}.summary{width:100%}.toolbar{align-items:stretch;flex-direction:column;gap:10px}.search{max-width:none}.sheet-row{grid-template-columns:30px 1fr 55px;gap:12px}.sheet-row .status{grid-column:2;grid-row:auto}.sheet-row .open{grid-column:3;grid-row:1 / 3}.sheet-row h2{font-size:16px}.sheet-number{font-size:20px}.detail{grid-template-columns:1fr;gap:40px}.notes-panel{padding-left:0;border-left:0;border-top:1px solid var(--line);padding-top:30px}footer{gap:15px}}@media(prefers-reduced-motion:no-preference){main,.form-side{animation:enter .3s ease-out}@keyframes enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}}
/* PLAYLAB: cartridge labels, pixel companions, warm arcade palette. */
:root{--ink:#292947;--green:#51418a;--line:#cec8b9;--muted:#666078;color:var(--ink);background:#f5efdf;font-family:'Avenir Next',Avenir,sans-serif}body{background-image:radial-gradient(#c9bea5 0.65px,transparent 0.65px);background-size:14px 14px}.brand{font-family:'Courier New',monospace;font-weight:900;font-size:15px}.mark{background:#ffce73;color:#292947;border:2px solid #292947;box-shadow:3px 3px 0 #292947;width:42px;height:38px}.auth{min-height:100dvh}.intro{background:#292947;color:#fff1ce;border-right:4px solid #292947;padding-bottom:220px}.intro .mark{box-shadow:3px 3px 0 #8ac9bd}.intro h1{font-family:'Courier New',monospace;font-size:clamp(40px,5.4vw,76px);font-weight:900;line-height:1.03;letter-spacing:-.07em;text-shadow:4px 4px 0 #675d8b;margin-top:90px}.intro p{color:#d2cadf}.intro .bottom{margin-top:35px;padding-top:10px}.party{display:flex;align-items:end;justify-content:center;gap:30px;position:absolute;bottom:50px;left:30px;right:30px;border-bottom:8px solid #8ac9bd;padding-bottom:10px}.party img{width:90px;height:100px;image-rendering:pixelated}.party img:nth-child(2){width:115px;height:130px}.eyebrow{font-family:'Courier New',monospace;letter-spacing:.14em;font-weight:900;font-size:12px}.form-side{background:#f5efdf}.form-side h2{font-family:'Courier New',monospace;font-size:32px;font-weight:900;letter-spacing:-.06em}.primary,.quiet,.tab,input,textarea{border-radius:0}.primary{background:#51418a;border:2px solid #292947;box-shadow:4px 4px 0 #292947;color:#fff7e8}.primary:hover{background:#69569f;transform:translate(-1px,-1px)}.primary:active{transform:translate(3px,3px);box-shadow:1px 1px 0 #292947}.quiet{background:#fff9eb;border:2px solid #292947;box-shadow:2px 2px 0 #292947}.text-button{color:#51418a}input,textarea{background:#fffaf0;border:2px solid #9d94aa}h1{font-family:'Courier New',monospace;font-size:clamp(32px,4vw,52px);font-weight:900;letter-spacing:-.065em;line-height:1.1}.topbar{background:#292947;color:#fff0d1;border-bottom:4px solid #ffce73}.account span{color:#e0d6eb}.shell{background:#f5efdf;min-height:100vh;border-left:1px solid #cec8b9;border-right:1px solid #cec8b9;max-width:1320px}.page-heading{position:relative;margin-bottom:38px;min-height:150px}.summary{position:relative;padding-top:90px;min-width:210px}.guide{position:absolute;width:72px;height:78px;top:0;right:0;image-rendering:pixelated}progress{height:10px;accent-color:#51418a}.toolbar{border-bottom:2px solid #292947}.tab{font-weight:600}.tab.active{background:#ffce73;color:#292947;box-shadow:2px 2px 0 #292947;border:1px solid #292947}.sheet-row{grid-template-columns:75px 1fr 140px 90px;padding:20px 8px;min-height:116px}.sheet-row:hover{background:#eee5d2}.sheet-number{display:flex;gap:7px;align-items:end}.sheet-number img{width:44px;height:50px;image-rendering:pixelated}.sheet-number small{font:700 11px 'Courier New',monospace;color:#736780}.sheet-row h2{font-size:18px}.open{font-family:'Courier New',monospace;font-weight:700}.status.done{color:#376448;font-weight:700}.notes-panel h2,.empty h2{font:900 28px 'Courier New',monospace;letter-spacing:-.05em}.check input{accent-color:#51418a}.source{border-top:2px solid #292947}.error{color:#a12c36}.save-status{color:#51418a}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline-color:#cc5e37}@media(max-width:760px){.intro{padding:25px 25px 125px;border-right:0;border-bottom:4px solid #ffce73}.intro h1{font-size:44px;margin-top:38px;text-shadow:3px 3px 0 #675d8b}.intro p{max-width:300px}.party{bottom:16px;left:auto;right:25px;gap:18px;border-bottom-width:5px}.party img{width:48px;height:52px}.party img:nth-child(2){width:57px;height:66px}.summary{padding-top:0;padding-right:70px;min-height:55px}.guide{width:46px;height:50px}.sheet-row{grid-template-columns:50px 1fr 55px;gap:10px}.sheet-number img{width:34px;height:40px}.sheet-number{gap:2px}.sheet-row h2{font-size:16px}.page-heading{margin-bottom:22px}.tabs{gap:2px}.tab{padding:10px 12px;font-size:13px}.brand{font-size:12px;max-width:155px}.account span{font-size:11px;max-width:160px}.notes-panel h2{font-size:26px}.detail h1{font-size:36px}.source .primary{font-size:14px}.topbar{align-items:center}}
.player-badge{display:flex;align-items:center;gap:9px}.player-badge img{width:24px;height:28px;image-rendering:pixelated}.onboarding{display:grid;grid-template-columns:1.25fr .8fr;gap:65px;align-items:start;max-width:1100px;margin:auto}.onboarding h1{font-size:44px}.onboarding fieldset{border:0;padding:0;margin:28px 0}.onboarding legend{font-size:14px;font-weight:700;margin-bottom:14px}.character-options{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.character-option{display:flex;align-items:center;flex-direction:column;gap:10px;padding:12px 4px;margin:0;border:2px solid #c9bfd1;cursor:pointer;background:#fff9eb;position:relative}.character-option:has(input:checked){border-color:#292947;box-shadow:3px 3px 0 #292947;background:#ffedbf}.character-option img{height:65px;width:60px;image-rendering:pixelated}.character-option input,.color-option input{width:16px;height:16px;accent-color:#51418a;margin:0}.color-options{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.color-option{display:flex;align-items:center;gap:8px;padding:10px;margin:0;border:2px solid transparent;cursor:pointer;color:#292947}.color-option:has(input:checked){border-color:#292947;box-shadow:2px 2px 0 #292947}.accent-ffce73{background:#ffce73}.accent-a3d59b{background:#a3d59b}.accent-8ac9bd{background:#8ac9bd}.accent-b9a4ed{background:#b9a4ed}.accent-f5a8bd{background:#f5a8bd}.accent-91c4f2{background:#91c4f2}.player-preview{margin-top:34px;padding:30px 22px;background:#292947;color:#fff1d7;border:3px solid #292947;box-shadow:7px 7px 0 #c9bddb;text-align:center;position:sticky;top:30px}.player-preview>img{display:block;width:130px;height:150px;image-rendering:pixelated;margin:40px auto 24px}.player-preview h2{font:700 26px 'Courier New',monospace;overflow-wrap:anywhere}.player-preview p{font-size:13px;line-height:1.6;color:#ddd2e8}.preview-sentence{border-top:1px solid #665a7d;padding-top:24px;margin-top:24px;display:flex;gap:8px;align-items:center;text-align:left;font-size:13px;line-height:1.8}.preview-sentence mark{color:#292947;padding:3px}.preview-sentence img{width:30px;height:34px;image-rendering:pixelated}@media(max-width:760px){.onboarding{grid-template-columns:1fr;gap:15px}.onboarding h1{font-size:35px}.player-preview{position:static;margin-top:0}.player-preview>img{margin:20px auto;width:90px;height:100px}.character-options{gap:7px}.character-option img{width:48px;height:55px}}
.character-options{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.character-option{font-size:12px}.character-option img{object-fit:contain}.player-preview img,.class-tip-avatar img{object-fit:contain}@media(max-width:760px){.character-options{grid-template-columns:repeat(3,minmax(0,1fr))}.character-option{padding:10px 4px}.character-option img{width:48px;height:55px}}

/* Chapter collectibles share a pixel grid and keep their natural proportions. */
.sheet-number img{width:48px;height:51px;object-fit:contain;filter:drop-shadow(2px 3px 0 #29294718)}
.chapter-powerup{display:block;width:80px;height:85px;object-fit:contain;image-rendering:pixelated;margin:0 0 20px}
@media(max-width:600px){.sheet-number img{width:34px;height:37px}}
