:root{--bg:#2b1d12;--bg2:#3b2a1c;--paper:#f1e4c3;--paper2:#e4d3a8;--ink:#3b2a1c;--or:#e0691f;--mus:#d9a032;--teal:#4f8a78;--mute:#8a7556;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-padding-top:4rem}
body{margin:0;background:var(--bg);color:var(--paper);font:16px/1.55 "Trebuchet MS","Gill Sans","Century Gothic",sans-serif;
background-image:repeating-linear-gradient(0deg,rgba(0,0,0,.14) 0 1px,transparent 1px 3px),radial-gradient(circle at 50% -10%,#5a3a20 0,transparent 60%)}
h1,h2,h3{font-family:"Courier New",Courier,monospace;margin:0;font-weight:700;letter-spacing:.02em}
.top{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;padding:1.2rem clamp(1rem,4vw,3rem);background:var(--or);color:var(--ink);border-bottom:6px solid var(--mus);box-shadow:0 6px 0 var(--bg2)}
.clock{width:56px;height:56px;flex:none;filter:drop-shadow(0 2px 0 rgba(0,0,0,.3))}
.top h1{font-size:clamp(1.4rem,4.5vw,2.4rem);line-height:1.1}
.top p{margin:.2rem 0 0;font-size:.95rem}
.progress{margin-left:auto;min-width:150px;font-family:"Courier New",monospace;text-align:right}
.progress #pt{font-size:1.2rem;font-weight:700}
.bar{height:10px;background:var(--ink);border-radius:5px;overflow:hidden;margin:.2rem 0}
.bar i{display:block;height:100%;width:0;background:var(--paper);transition:width .4s}
.progress small{font-size:.75rem}
.tabs{display:flex;gap:.4rem;overflow-x:auto;padding:1rem clamp(1rem,4vw,3rem) 0;position:sticky;top:0;background:linear-gradient(var(--bg) 85%,transparent);z-index:5}
.tabs button{font:inherit;font-family:"Courier New",monospace;font-weight:700;padding:.65rem 1.1rem;border:2px solid var(--mus);border-bottom:0;border-radius:10px 10px 0 0;background:var(--bg2);color:var(--paper);cursor:pointer;white-space:nowrap}
.tabs button[aria-selected=true]{background:var(--paper);color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--mus);outline-offset:2px}
main{padding:0 clamp(1rem,4vw,3rem);max-width:1100px;margin:0 auto}
.view{background:var(--paper);color:var(--ink);padding:clamp(1rem,3vw,2rem);border:2px solid var(--mus);border-radius:0 12px 12px 12px;margin-bottom:2rem}
.memo{margin-bottom:1.5rem;max-width:70ch}
.memo h2{font-size:1.4rem;margin-bottom:.4rem}
.memo ul{padding-left:1.2rem}.memo li{margin:.3rem 0}
.paths{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-bottom:1.5rem}
.paths article{background:var(--paper2);border:2px solid var(--ink);border-radius:14px 4px 14px 4px;padding:1rem;display:flex;flex-direction:column}
.paths h3{font-size:1.15rem;margin-bottom:.4rem}.paths p{flex:1;margin:.2rem 0 1rem}
.go{font:inherit;font-family:"Courier New",monospace;font-weight:700;background:var(--or);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:.6rem 1rem;cursor:pointer;box-shadow:0 3px 0 var(--ink)}
.go:active{transform:translateY(2px);box-shadow:0 1px 0 var(--ink)}
.tools{display:grid;grid-template-columns:2fr 1fr 1fr 1.4fr;gap:.6rem}
.tools input,.tools select{font:inherit;padding:.6rem;border:2px solid var(--ink);border-radius:8px;background:#fff8e4;color:var(--ink);min-width:0}
.hint{font-size:.9rem;color:#5b4730;margin:.8rem 0}
.rail{list-style:none;margin:1rem 0 0;padding:0 0 0 2.2rem;position:relative}
.rail:before{content:"";position:absolute;left:.7rem;top:0;bottom:0;width:6px;background:repeating-linear-gradient(var(--or) 0 14px,var(--mus) 14px 18px);border-radius:3px}
.rail li{position:relative;margin:0 0 1rem;background:#fff8e4;border:2px solid var(--ink);border-radius:4px 14px 4px 14px;padding:.8rem 1rem .8rem 1rem}
.rail li:before{content:"";position:absolute;left:-2.05rem;top:1rem;width:18px;height:18px;border-radius:50%;background:var(--paper);border:4px solid var(--or)}
.rail li.done{opacity:.6}.rail li.done:before{background:var(--teal);border-color:var(--ink)}
.rail li.must{border-left:8px solid var(--or)}.rail li.rec{border-left:8px solid var(--mus)}.rail li.opt{border-left:8px solid var(--mute)}
.row{display:flex;gap:.6rem;align-items:flex-start}
.row h3{font-size:1.05rem;flex:1}
.row input{width:1.4rem;height:1.4rem;accent-color:var(--teal);flex:none;margin-top:.1rem}
.meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:.4rem 0;font-family:"Courier New",monospace;font-size:.8rem}
.meta span{padding:.1rem .5rem;border:1.5px solid var(--ink);border-radius:999px;background:var(--paper2)}
.meta .s-must{background:var(--or)}.meta .s-rec{background:var(--mus)}
.meta .tag{background:var(--teal);color:#fff}
.rail p{margin:.3rem 0 0}
.rail .fase{list-style:none;background:none;border:0;padding:0;margin:1.6rem 0 .8rem;font-family:"Courier New",monospace;font-weight:700;font-size:1.1rem}
.rail .fase:before{display:none}
footer{text-align:center;color:var(--mute);font-size:.8rem;padding:0 1rem 2rem;max-width:70ch;margin:0 auto}
@media(max-width:640px){.tools{grid-template-columns:1fr 1fr}.tools input{grid-column:1/-1}.progress{margin-left:0;text-align:left;width:100%}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.thumb{width:64px;height:96px;object-fit:cover;border:2px solid var(--ink);border-radius:4px;flex:none;background:var(--paper2)}
.row a{color:inherit;text-decoration:none}.row a:hover,.row a:focus-visible{text-decoration:underline;text-decoration-color:var(--or);text-decoration-thickness:3px}
.row h3{align-self:center}
.phases{display:grid;gap:1rem}
.ph{background:var(--paper2);border:2px solid var(--ink);border-radius:14px 4px 14px 4px;padding:1rem}
.ph h3{font-size:1.2rem}.ph .meta{margin:.5rem 0}.ph p{margin:.4rem 0;max-width:70ch}
.saga{font-family:"Courier New",monospace;font-weight:700;margin:1.2rem 0 .6rem}
.back{font:inherit;font-family:"Courier New",monospace;font-weight:700;background:none;border:0;color:var(--ink);cursor:pointer;padding:0;margin-bottom:1rem;text-decoration:underline;text-decoration-color:var(--or);text-decoration-thickness:3px}
.det{display:grid;grid-template-columns:minmax(150px,240px) 1fr;gap:1.5rem}
.det .poster{width:100%;aspect-ratio:2/3;object-fit:cover;border:3px solid var(--ink);border-radius:6px 20px 6px 20px;box-shadow:6px 6px 0 var(--or)}
.det h2{font-size:clamp(1.4rem,4vw,2rem);line-height:1.15}
.det h3{font-size:1rem;margin:1.2rem 0 .3rem}
.det ul{margin:.2rem 0;padding-left:1.2rem}
.det a{color:var(--ink);font-weight:700;text-decoration-color:var(--or);text-decoration-thickness:2px}
.chk{display:flex;align-items:center;gap:.5rem;margin:.8rem 0}.chk input{width:1.4rem;height:1.4rem;accent-color:var(--teal)}
.nav2{display:flex;justify-content:space-between;gap:1rem;margin-top:1.5rem;padding-top:1rem;border-top:3px dashed var(--mus);flex-wrap:wrap}
@media(max-width:640px){.det{grid-template-columns:1fr}.det .poster{max-width:220px}}
