:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--surface:#f4f3ec;--border:#e5e4e7;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--accent-gradient:linear-gradient(135deg, var(--accent), #6d28d9);--danger:#dc2626;--success:#16a34a;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--surface:#1f2028;--border:#2e303a;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--danger:#f87171;--success:#4ade80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}}body{margin:0}#root{background:radial-gradient(circle at 20% 15%, var(--accent-bg), transparent 45%), radial-gradient(circle at 80% 85%, var(--accent-bg), transparent 45%);flex-direction:column;min-height:100svh;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);margin:0;font-weight:600}h1{letter-spacing:-.6px;font-size:28px}h2{letter-spacing:-.24px;font-size:20px}p{margin:0}.card{background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px}.logo-mark{color:#fff;background:var(--accent-gradient);width:56px;height:56px;box-shadow:0 8px 20px -6px var(--accent-border);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.logo-mark svg{width:50%;height:50%}.logo-mark.small{border-radius:10px;width:36px;height:36px}.btn{font:inherit;cursor:pointer;border-radius:8px;padding:12px 16px;font-weight:600;transition:transform .1s,box-shadow .2s,background .2s,border-color .2s,opacity .2s}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{color:#fff;background:var(--accent-gradient);border:none}.btn-primary:hover:not(:disabled){box-shadow:0 8px 20px -6px var(--accent-border)}.btn-ghost{border:1px solid var(--border);color:var(--text-h);background:0 0;padding:8px 14px;font-size:14px}.btn-ghost:hover:not(:disabled){border-color:var(--accent-border);background:var(--accent-bg)}.alert{border:1px solid;border-radius:8px;padding:10px 12px;font-size:14px}.alert.error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 30%, transparent)}.alert.success{color:var(--success);background:color-mix(in srgb, var(--success) 8%, transparent);border-color:color-mix(in srgb, var(--success) 30%, transparent)}.tabs{background:var(--surface);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.tabs button{font:inherit;overflow-wrap:anywhere;min-width:0;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:8px;font-size:15px;transition:background .2s,color .2s}.tabs button:hover{color:var(--text-h)}.tabs button[aria-selected=true]{background:var(--bg);color:var(--text-h);box-shadow:0 1px 3px #0000001f}.tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.progress{background:var(--surface);border-radius:999px;height:10px;overflow:hidden}.progress div{border-radius:inherit;background:var(--accent-gradient);height:100%;transition:width .3s}.progress.small{height:6px}.badge{letter-spacing:.3px;text-transform:uppercase;color:var(--accent);background:var(--accent-bg);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field label,.field .field-label{color:var(--text-h);font-size:14px;font-weight:500}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text-h);border-radius:8px;padding:10px 12px;transition:border-color .2s,box-shadow .2s}:is(.field input,.field select,.field textarea)::placeholder{color:var(--text);opacity:.6}:is(.field input,.field select,.field textarea):focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.field textarea{resize:vertical}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=600px){.field-row{grid-template-columns:1fr}}.checkbox-field{color:var(--text-h);cursor:pointer;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.checkbox-field input{width:18px;height:18px;accent-color:var(--accent);margin:0}.loading-screen{flex-grow:1;place-items:center;display:grid}:root[data-theme=silent-hill]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--text:#a7b1bb;--text-h:#eef1f4;--bg:#13171d;--surface:#1d232b;--border:#2d3640;--accent:#d63c41;--accent-bg:#d63c4124;--accent-border:#d63c4180;--accent-gradient:linear-gradient(135deg, #e34b4f, #8c1b21);--danger:#ff6b6b;--success:#93c9a6;--shadow:#0000008c 0 16px 32px -12px, #00000059 0 4px 10px -4px;--heading:"Arial Black", "Segoe UI Black", "Helvetica Neue", Arial, sans-serif}:root[data-theme=silent-hill] #root{background-color:#0000;background-image:radial-gradient(55% 40% at 8% 92%,#be242c52,#0000 70%),radial-gradient(45% 35% at 92% 78%,#be242c24,#0000 70%),radial-gradient(90% 45% at 50% -5%,#a0b0c042,#0000 70%),linear-gradient(#2b333d 0%,#1a2028 42%,#101419 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box}:root[data-theme=silent-hill] #root:before,:root[data-theme=silent-hill] #root:after{content:"";z-index:0;pointer-events:none;filter:blur(24px);position:fixed;inset:-25%}:root[data-theme=silent-hill] #root:before{background:radial-gradient(35% 18% at 25% 55%,#cdd6e01a,#0000 70%),radial-gradient(30% 15% at 70% 35%,#cdd6e014,#0000 70%);animation:70s ease-in-out infinite alternate sh-fog-drift}:root[data-theme=silent-hill] #root:after{background:radial-gradient(40% 16% at 60% 75%,#cdd6e014,#0000 70%),radial-gradient(28% 14% at 15% 25%,#cdd6e00f,#0000 70%);animation:95s ease-in-out infinite alternate-reverse sh-fog-drift}:root[data-theme=silent-hill] .app-main,:root[data-theme=silent-hill] .loading-screen{z-index:1;position:relative}:root[data-theme=silent-hill] .app-header{background:#0c0f13b8;border-bottom-color:#ffffff0f}:root[data-theme=silent-hill] .card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f1318cc;border-color:#ffffff12}:root[data-theme=silent-hill] .checklist-header h2,:root[data-theme=silent-hill] .app-brand h1{font-family:var(--heading);text-transform:uppercase;letter-spacing:.14em;font-weight:900}:root[data-theme=silent-hill] .checklist-header h2{text-shadow:0 2px 18px #0009;font-size:24px}:root[data-theme=silent-hill] .chapter>summary h3{text-transform:uppercase;letter-spacing:.1em;font-size:15px}:root[data-theme=silent-hill] .chapter{border-left:2px solid var(--accent-border);padding-left:10px}:root[data-theme=silent-hill] .checklist-item{background:#ffffff04;border-color:#ffffff12}:root[data-theme=silent-hill] .checklist-hero{filter:saturate(.9)contrast(1.05)}@keyframes sh-fog-drift{0%{transform:translate(-6%,1%)}to{transform:translate(6%,-3%)}}@media (prefers-reduced-motion:reduce){:root[data-theme=silent-hill] #root:before,:root[data-theme=silent-hill] #root:after{animation:none}}:root[data-theme=silent-hill-2]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--text:#5b6266;--text-h:#1f2427;--bg:#eef0ef;--surface:#dfe3e2;--border:#c9cfcd;--accent:#8e3a2f;--accent-bg:#8e3a2f1a;--accent-border:#8e3a2f66;--accent-gradient:linear-gradient(135deg, #a5473a, #6b2a22);--danger:#a3332a;--success:#4f6b52;--shadow:#1f24271f 0 14px 30px -12px, #1f242714 0 4px 10px -4px;--heading:"Segoe UI", "Helvetica Neue", Arial, sans-serif}:root[data-theme=silent-hill-2] #root{background-color:#0000;background-image:radial-gradient(90% 50% at 50% -10%,#fffffff2,#0000 70%),radial-gradient(70% 40% at 50% 110%,#78848a59,#0000 70%),linear-gradient(#f3f4f3 0%,#dde1e0 55%,#c7cdcc 100%);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}:root[data-theme=silent-hill-2] #root:before,:root[data-theme=silent-hill-2] #root:after{content:"";z-index:0;pointer-events:none;filter:blur(28px);position:fixed;inset:-25%}:root[data-theme=silent-hill-2] #root:before{background:radial-gradient(40% 20% at 25% 60%,#ffffff8c,#0000 70%),radial-gradient(32% 16% at 72% 32%,#ffffff73,#0000 70%);animation:80s ease-in-out infinite alternate sh2-fog-drift}:root[data-theme=silent-hill-2] #root:after{background:radial-gradient(45% 18% at 60% 80%,#ffffff80,#0000 70%),radial-gradient(30% 14% at 12% 22%,#fff6,#0000 70%);animation:110s ease-in-out infinite alternate-reverse sh2-fog-drift}:root[data-theme=silent-hill-2] .app-main,:root[data-theme=silent-hill-2] .loading-screen{z-index:1;position:relative}:root[data-theme=silent-hill-2] .app-header{background:#f3f4f3bf;border-bottom-color:#1f242714}:root[data-theme=silent-hill-2] .card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fafbfab8;border-color:#1f242714}:root[data-theme=silent-hill-2] .checklist-header h2,:root[data-theme=silent-hill-2] .app-brand h1{font-family:var(--heading);text-transform:uppercase;letter-spacing:.32em;font-weight:300}:root[data-theme=silent-hill-2] .checklist-header h2{color:var(--text-h);font-size:24px}:root[data-theme=silent-hill-2] .chapter>summary h3{text-transform:uppercase;letter-spacing:.18em;font-size:15px;font-weight:400}:root[data-theme=silent-hill-2] .chapter{border-left:2px solid var(--border);padding-left:10px}:root[data-theme=silent-hill-2] .checklist-item{background:#ffffff73;border-color:#1f24271a}:root[data-theme=silent-hill-2] .checklist-hero{filter:saturate(.85)}:root[data-theme=silent-hill-2] .tag-icon:after,:root[data-theme=silent-hill-2] .category-icon:after,:root[data-theme=silent-hill-2] .main-story-icon:after{color:#f3f4f3;background:#1f2427}@keyframes sh2-fog-drift{0%{transform:translate(-5%,1%)}to{transform:translate(5%,-2%)}}@media (prefers-reduced-motion:reduce){:root[data-theme=silent-hill-2] #root:before,:root[data-theme=silent-hill-2] #root:after{animation:none}}.login{flex-grow:1;justify-content:center;align-items:center;padding:32px 20px;display:flex}.login-card{box-sizing:border-box;width:100%;max-width:400px;padding:40px 32px 32px}.login-brand{text-align:center;flex-direction:column;align-items:center;margin-bottom:28px;display:flex}.login-brand h1{letter-spacing:-.8px;margin:12px 0 4px;font-size:32px}.login-brand p{font-size:15px}.login-card .tabs{margin-bottom:24px}.login-form{flex-direction:column;gap:16px;display:flex}.login-form .btn-primary{margin-top:8px}.login-card .alert{margin-top:16px}.back-link{color:var(--text);margin-bottom:16px;font-size:14px;font-weight:500;text-decoration:none;display:inline-block}.back-link:hover{color:var(--accent)}.checklist{padding:28px}@media (width<=600px){.checklist{padding:20px}}.checklist>.alert{margin-bottom:16px}.checklist-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}.checklist-header-actions{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.checklist-percent{color:var(--accent);white-space:nowrap;font-size:28px;font-weight:700;line-height:1}.checklist-stats{flex-wrap:wrap;gap:4px 20px;margin:10px 0 24px;font-size:14px;display:flex}.checklist .tabs{margin-bottom:24px}.checklist-empty{text-align:center;padding:24px 0}.item-groups{flex-direction:column;gap:28px;display:flex}.group-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.group-header h3{color:var(--text-h);margin:0;font-size:17px;font-weight:600}.group-count{white-space:nowrap;font-size:13px;font-weight:600}.group-count.done{color:var(--success)}.collapsible>summary{cursor:pointer;list-style:none}.collapsible>summary::-webkit-details-marker{display:none}.collapsible>summary h3:before{content:"▸";width:1.1em;color:var(--text);transition:transform .2s;display:inline-block}.collapsible>summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.collapsible[open]>summary h3:before{transform:rotate(90deg)}.collapsible>.step-notes{margin-top:2px}.location.nested{border-left:2px solid var(--border);margin-top:16px;padding-left:14px}.location.nested>summary h3{font-size:15px}.location-body{padding-left:4px}.category-block{margin-bottom:14px}.category-block h4{letter-spacing:.5px;text-transform:uppercase;color:var(--text);margin:0 0 8px;font-size:12px;font-weight:600}.walkthrough{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.step{align-items:flex-start;gap:6px;display:flex;position:relative}.step-content{flex:1;min-width:0}.step-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.step-header .group-header{flex:1;min-width:0;margin-bottom:0}.step-dot{border:2px solid var(--border);box-sizing:border-box;border-radius:50%;flex-shrink:0;width:10px;height:10px}.step-dot.current{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.step-dot.done{border-color:var(--accent);background:var(--accent)}.step.done>.step-content>.step-collapsible>summary{opacity:.6}.step-notes{margin-bottom:10px;font-size:14px}.walkthrough.nested{border-left:2px solid var(--border);gap:10px;margin-top:10px;margin-left:4px;padding-left:12px}.walkthrough.nested .group-header h3{font-size:15px}.chapter>.walkthrough,.chapter>.step-items{margin-top:12px}.checklist-items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.checklist-item{border:1px solid var(--border);color:var(--text-h);cursor:pointer;border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;transition:border-color .2s,background .2s;display:flex}.checklist-item:hover{border-color:var(--accent-border)}.checklist-item:has(input:checked){background:var(--accent-bg);border-color:#0000}.checklist-item:has(input:checked) .item-title{color:var(--text);text-decoration:line-through}.checklist-item:has(input:disabled){cursor:wait}.checklist-item.locked{cursor:not-allowed;border-style:dashed}.checklist-item.locked:hover{border-color:var(--border)}.checklist-item.locked .item-title{color:var(--text)}.checklist-item:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.checklist-item input{width:18px;height:18px;accent-color:var(--accent);cursor:inherit;flex-shrink:0;margin:2px 0 0}.item-body{flex-direction:column;gap:4px;min-width:0;display:flex}.item-title{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.item-description,.item-locked{color:var(--text);font-size:13px}.item-locked{font-weight:500}.checklist-header .edit-toggle{flex-shrink:0}.checklist-header .edit-toggle.active{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.admin-toolbar{border:1px dashed var(--accent-border);background:var(--accent-bg);border-radius:10px;flex-wrap:wrap;gap:8px;margin-bottom:20px;padding:12px;display:flex}.admin-toolbar .btn{padding:8px 14px;font-size:14px}.admin-toolbar .btn-ghost{background:var(--bg)}.item-row.editable{align-items:stretch;gap:8px;display:flex}.item-row.editable .checklist-item{flex-grow:1;min-width:0}.item-edit{flex-shrink:0;padding:0 12px;font-size:13px}.item-editor{box-sizing:border-box;width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text);padding:28px}.item-editor::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080}.item-editor form{flex-direction:column;gap:16px;display:flex}.item-editor h2{margin-bottom:4px}@media (width<=600px){.item-editor{padding:20px}}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.dialog-actions .btn-ghost{padding:12px 16px;font-size:16px}.step.sortable.dragging{z-index:5;opacity:.85;background:var(--bg);box-shadow:var(--shadow);border-radius:12px}.drag-handle{width:24px;height:28px;color:var(--text);cursor:grab;touch-action:none;background:0 0;border:none;border-radius:6px;align-self:start;padding:0;font-size:18px;line-height:1}.drag-handle:hover{color:var(--accent);background:var(--accent-bg)}.drag-handle:active{cursor:grabbing}.drag-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.item-row.sortable{align-items:stretch;gap:8px;display:flex}.item-row.sortable .checklist-item{flex-grow:1;min-width:0}.item-row.sortable .drag-handle{align-self:center}.item-row.sortable.dragging{z-index:5;opacity:.85;position:relative}.item-row.sortable.dragging .checklist-item{background:var(--bg);box-shadow:var(--shadow)}.group-header:has(.group-edit){justify-content:flex-start;align-items:center}.group-header:has(.group-edit) h3{min-width:0}.group-header:has(.group-edit) .group-count{margin-left:auto}.group-edit{flex-shrink:0;padding:3px 10px;font-size:12px}.tag-icon,.category-icon,.main-story-icon{width:22px;height:22px;color:var(--accent);background:var(--accent-bg);cursor:help;border-radius:6px;place-items:center;display:inline-grid;position:relative}:is(.tag-icon,.category-icon,.main-story-icon):focus-visible{outline:2px solid var(--accent);outline-offset:1px}:is(.tag-icon,.category-icon,.main-story-icon):after{content:attr(data-tooltip);z-index:20;white-space:nowrap;color:var(--bg);background:var(--text-h);box-shadow:var(--shadow);opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:500;line-height:1.3;text-decoration:none;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%,4px)}:is(.tag-icon,.category-icon,.main-story-icon):hover:after,:is(.tag-icon,.category-icon,.main-story-icon):focus-visible:after,:is(.tag-icon,.category-icon,.main-story-icon):active:after{opacity:1;transform:translate(-50%)}.group-header h3,.category-block h4{align-items:center;gap:6px;display:flex}.group-icon{color:var(--accent);place-items:center;display:inline-grid}.category-block h4 svg{color:var(--accent)}.icon-picker{border:1px solid var(--border);border-radius:8px;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:4px;max-height:168px;padding:6px;display:grid;overflow-y:auto}.icon-option{height:36px;color:var(--text-h);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;place-items:center;padding:0;display:grid}.icon-option:hover{background:var(--surface)}.icon-option[aria-checked=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.icon-option:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.icon-option.none{color:var(--text);font-size:14px}.tag-toggles{flex-wrap:wrap;gap:6px;display:flex}.tag-toggle{font:inherit;border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:13px;display:inline-flex}.tag-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--accent-bg)}.tag-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.dialog-body{flex-direction:column;gap:16px;display:flex}.tag-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tag-list li{border:1px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.tag-list-icon{color:var(--accent);place-items:center;display:grid}.tag-list-name{color:var(--text-h);flex-grow:1}.category-icon{color:var(--text-h);background:var(--surface)}.item-meta{color:var(--text);flex-wrap:wrap;align-items:center;gap:4px;font-size:12px;display:flex}.item-meta svg{color:var(--accent);flex-shrink:0}.dialog-delete{margin-right:auto}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){border-color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}.btn-danger-solid{background:var(--danger)}.btn-danger-solid:hover:not(:disabled){box-shadow:0 8px 20px -6px color-mix(in srgb, var(--danger) 60%, transparent)}.delete-warning{flex-direction:column;gap:6px;font-size:14px;display:flex}.checklist{--pad:28px;padding:var(--pad)}@media (width<=600px){.checklist{--pad:20px}}.checklist-hero{height:200px;margin:calc(-1 * var(--pad)) calc(-1 * var(--pad)) 0;opacity:.85;background-position:50% 18%;background-size:cover;border-radius:16px 16px 0 0;-webkit-mask-image:linear-gradient(#000 35%,#0000);mask-image:linear-gradient(#000 35%,#0000)}.checklist-hero+.checklist-header{margin-top:-64px;position:relative}.view-bar{align-items:stretch;gap:8px;margin-bottom:12px;display:flex}.view-bar .tabs{flex:auto;margin-bottom:0}.icon-button{flex-shrink:0;place-items:center;width:44px;padding:0;font-size:0;display:grid}.view-switches{flex-wrap:wrap;gap:8px 20px;margin-bottom:24px;display:flex}.switch{font:inherit;color:var(--text-h);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:4px 2px;font-size:14px;display:inline-flex}.switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}.switch-track{background:var(--border);border-radius:999px;flex-shrink:0;width:34px;height:20px;transition:background .2s;position:relative}.switch[aria-checked=true] .switch-track{background:var(--accent-gradient)}.switch-thumb{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #0000004d}.switch[aria-checked=true] .switch-thumb{transform:translate(14px)}.description-toggle{width:24px;height:22px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;transition:color .15s,background .15s;display:inline-grid}.description-toggle svg{transition:transform .2s}.description-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.description-toggle:hover{color:var(--accent);background:var(--accent-bg)}.description-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.item-description{border-left:2px solid var(--accent-border);padding-left:10px;line-height:1.45}.collapsible>summary+*{margin-top:4px}.prereq-chips{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.prereq-chips li{border:1px solid var(--accent-border);max-width:100%;color:var(--text-h);background:var(--accent-bg);border-radius:999px;align-items:center;gap:4px;padding:4px 4px 4px 10px;font-size:13px;display:inline-flex}.prereq-chips button{width:20px;height:20px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;padding:0;display:grid}.prereq-chips button:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.prereq-chips button:focus-visible{outline:2px solid var(--accent)}.prereq-chip-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prereq-choice{align-items:center;gap:4px;min-width:0;display:inline-flex}.prereq-or{color:var(--text);margin:0 2px 0 4px;font-size:12px;font-style:italic}.prereq-chips li.adding-or{outline:2px solid var(--accent);outline-offset:1px}.prereq-chips .prereq-add-or{width:auto;font:inherit;white-space:nowrap;border-radius:999px;padding:0 8px;font-size:12px}.prereq-chips .prereq-add-or:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.prereq-or-hint{color:var(--text);margin:0;font-size:13px}.prereq-or-hint button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.prereq-results{border:1px solid var(--border);background:var(--bg);border-radius:8px;max-height:240px;margin:0;padding:4px;list-style:none;overflow-y:auto}.prereq-results button{width:100%;font:inherit;text-align:left;color:var(--text-h);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;font-size:14px;display:flex}.prereq-results button:hover,.prereq-results button:focus-visible{background:var(--accent-bg);outline:none}.prereq-context{color:var(--text);font-size:12px}.prereq-empty{color:var(--text);padding:8px 10px;font-size:13px}.lock-note{margin:-2px 0 10px}.step.locked>.step-content>.step-collapsible>summary,.chapter.locked>summary{opacity:.6}.prereq-kind{letter-spacing:.04em;text-transform:uppercase;color:var(--text);background:var(--surface);border-radius:4px;margin-right:6px;padding:1px 6px;font-size:10px;font-weight:700}.step-collapsible>summary h3:before{content:none}.step-collapsible>summary .step-header:before{content:"▸";width:.8em;color:var(--text);flex-shrink:0;margin-right:-2px;transition:transform .2s}.step-collapsible[open]>summary .step-header:before{transform:rotate(90deg)}.step-collapsible:not([open])>summary .step-header{margin-bottom:0}.item-row{align-items:stretch;gap:6px;display:flex}.item-row>.checklist-item{flex-grow:1;min-width:0}.skip-toggle{width:30px;height:30px;color:var(--text);opacity:.55;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex-shrink:0;align-self:center;place-items:center;margin:-4px -6px -4px auto;padding:0;transition:opacity .15s,color .15s,background .15s,border-color .15s;display:grid}.skip-toggle:hover,.skip-toggle:focus-visible{opacity:1;color:var(--accent);background:var(--accent-bg)}.skip-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.skip-toggle[aria-pressed=true]{opacity:1;color:var(--accent);border-color:var(--accent-border)}.skip-toggle:disabled{cursor:wait}.item-row.skipped .checklist-item{border-style:dashed}.item-row.skipped .checklist-item>input,.item-row.skipped .checklist-item>.item-body{opacity:.6}.item-row.skipped .checklist-item .item-title{color:var(--text);text-decoration:line-through}.skipped-badge{color:var(--text);background:var(--surface)}.item-title-toggle{cursor:pointer;-webkit-text-decoration:inherit;text-decoration:inherit}.item-title-toggle:hover{color:var(--accent)}.ng-badge{color:var(--text-h);background:var(--surface);border:1px solid var(--border)}.checklist-stats strong{color:var(--accent)}.checkbox-row{flex-wrap:wrap;gap:10px 24px;display:flex}.checklist-item.ng-only{cursor:default;border-style:dashed}.checklist-item.ng-only:hover{border-color:var(--border)}.checklist-item.ng-only>input{opacity:.4}.finish-step{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:10px;display:flex}.finish-step .btn{padding:6px 12px;font-size:13px}.finish-step-note{color:var(--text);font-size:12px}.main-story-icon{width:30px;height:30px;color:var(--accent);background:var(--accent-bg);border-radius:8px;flex-shrink:0;align-self:center;margin:-4px -6px -4px auto}.main-story-icon:after{left:auto;right:0;transform:translateY(4px)}.main-story-icon:hover:after,.main-story-icon:focus-visible:after,.main-story-icon:active:after{transform:translate(0)}@media (width<=600px){.view-bar .tabs button{padding:8px 4px;font-size:13px}}.checklist-header .log-button{width:36px;height:36px}.log-dialog{width:min(640px,100vw - 32px);max-height:calc(100vh - 48px);overflow-y:auto}.log-dialog-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.log-dialog-header .icon-button{width:36px;height:36px}.checklist-hero.banner{opacity:.9;background-position:50% 35%;height:240px}@media (width<=600px){.checklist-hero.banner{height:170px}}.grid-header{margin-bottom:24px}.grid-header p{margin-top:4px}.grid-empty{text-align:center;padding:48px 0}.game-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;margin:0;padding:0;list-style:none;display:grid}@media (width<=600px){.game-grid{grid-template-columns:repeat(2,1fr);gap:12px}}.game-card{flex-direction:column;height:100%;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.game-card:hover{border-color:var(--accent-border);box-shadow:0 16px 30px -12px var(--accent-border);transform:translateY(-4px)}.game-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.game-card h3{color:var(--text-h);margin:0;font-size:15px;font-weight:600}.game-info{flex-direction:column;flex-grow:1;gap:8px;padding:12px 14px 14px;display:flex}.game-info h3{flex-grow:1}.game-percent{color:var(--text);font-size:12px;font-weight:500}.game-cover{aspect-ratio:3/4;background:var(--accent-gradient);place-items:center;display:grid;overflow:hidden}.game-cover img{object-fit:cover;width:100%;height:100%}.game-cover span{color:#ffffffd9;font-size:56px;font-weight:700}.game-card.complete{--gold:#e2b33c;--gold-light:#f7dc84;border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.game-card.complete:hover{border-color:var(--gold-light);box-shadow:0 0 0 1px var(--gold-light), 0 16px 30px -12px color-mix(in srgb, var(--gold) 70%, transparent)}.game-card.complete .game-percent{color:var(--gold);font-weight:600}.game-cover{position:relative}.game-complete-badge{color:#2b1d00;background:linear-gradient(135deg, var(--gold-light), var(--gold));border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:8px;right:8px;box-shadow:0 4px 12px #00000073}.app-header{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 80%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);position:sticky;top:0}.app-header-inner{align-items:center;gap:16px;max-width:960px;margin:0 auto;padding:12px 20px;display:flex}.app-brand{align-items:center;gap:10px;margin-right:auto;display:flex}.app-brand h1{letter-spacing:-.4px;font-size:20px}.app-user{text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}@media (width<=600px){.app-user{display:none}}.app-main{box-sizing:border-box;width:100%;max-width:960px;margin:0 auto;padding:32px 20px}.app-brand{text-decoration:none}
