:root{--ink: #1d1b16;--muted: #5b534a;--accent: #c7782c;--accent-soft: #f3e3d1;--card: #fff9f1;--bg-top: #f9efe2;--bg-bottom: #e8d7c3;--border: #decab4;--shadow: rgba(27, 18, 8, .08)}*{box-sizing:border-box}body{margin:0;font-family:"Source Sans 3",Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(160deg,var(--bg-top),var(--bg-bottom));min-height:100vh;overflow-x:hidden}.shell{min-height:100vh;display:grid;grid-template-columns:minmax(220px,280px) 1fr}.sidebar{background:var(--card);border-right:1px solid var(--border);padding:24px 18px;display:flex;flex-direction:column;gap:16px}.brand h1{font-family:Fraunces,Times New Roman,serif;font-size:1.5rem;margin:0}.workspace{padding:32px 32px 48px;display:flex;flex-direction:column;gap:20px}.passage-title{font-family:Fraunces,Times New Roman,serif;font-size:1.3rem;margin:0 0 8px;color:var(--ink)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.stage-nav{display:flex;gap:8px;flex-wrap:wrap}.stage-nav a.ghost{text-decoration:none;padding:10px 14px;border-radius:12px}.stage-nav a.active{border-color:var(--accent);color:var(--accent)}.passage-list{display:flex;flex-direction:column;gap:8px}.settings{margin-top:auto;padding-top:16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.settings h3{margin:0 0 6px;font-size:.95rem;color:var(--muted)}.toggle{display:flex;align-items:center;gap:10px;font-size:.95rem;color:var(--ink)}.passage-item{text-align:left;padding:10px 12px;border-radius:12px;border:1px solid transparent;background:transparent;color:var(--ink)}.passage-item:hover,.passage-item.active{border-color:var(--border);background:#fff}.passage-row{display:flex;align-items:center;gap:8px}.passage-row .passage-item{flex:1}.delete-btn{padding:6px 10px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--muted)}.delete-btn:hover{border-color:#c94f4f;color:#c94f4f}.empty-text{color:var(--muted);font-size:.9rem;margin:0}.page{max-width:1100px;margin:0 auto;padding:48px 20px 72px;display:flex;flex-direction:column;gap:24px}.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;align-items:center}.kicker{text-transform:uppercase;letter-spacing:.16em;font-size:.7rem;color:var(--muted);margin:0 0 8px}h1,h2{font-family:Fraunces,Times New Roman,serif;margin:0 0 12px}h1{font-size:clamp(2rem,4vw,3rem)}h2{font-size:clamp(1.4rem,2vw,1.8rem)}.lead{margin:0;color:var(--muted);font-size:1.05rem}.card{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:24px;box-shadow:0 20px 40px var(--shadow)}.input-row label{display:block;font-weight:600;margin-bottom:8px}.input-row input,.input-row textarea{margin-bottom:12px}.input-group{display:flex;flex-wrap:wrap;gap:12px}.spaced{margin-top:16px}input[type=text]{flex:1;min-width:220px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;font-size:1rem;background:#fff}textarea{width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:12px;font-size:1rem;font-family:inherit;background:#fff;resize:vertical}button{padding:12px 18px;border:none;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #c7782c40}button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}button.ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}button.icon-btn{width:44px;height:44px;padding:0;font-size:1.3rem;display:flex;align-items:center;justify-content:center}.full{width:100%}.hint{color:var(--muted);font-size:.9rem}.status{margin-top:12px;color:var(--muted);min-height:22px}.stage-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.progress-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.button-row{display:flex;gap:8px;flex-wrap:wrap}.range-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.select{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--muted)}.select select{padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--ink)}.select input{width:80px;padding:8px 10px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--ink)}.progress{font-weight:600;color:var(--muted)}.passage-display{font-size:1.15rem;line-height:2;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;min-height:160px;max-height:100vh;overflow-y:auto;position:relative;scroll-behavior:smooth}.passage-display:focus{outline:2px solid var(--accent);outline-offset:2px}.passage-display.empty{display:flex;align-items:center;justify-content:center;color:var(--muted);font-style:italic}.passage-input{position:fixed;opacity:0;top:0;left:0;width:1px;height:1px;padding:0;margin:0;border:none;background:transparent;pointer-events:none}.passage-input:focus{outline:none}.word{display:inline;padding:2px 4px;border-radius:6px;background:#fdf7ef;border:1px solid transparent}.word.revealed{background:var(--accent-soft);border-color:var(--border)}.word.current{outline:2px solid rgba(199,120,44,.5);outline-offset:2px}.word.masked,.word.hidden{color:transparent;text-shadow:none;background:transparent;border-color:transparent}body[data-stage=stage3] .word.masked{text-shadow:0 0 10px rgba(27,18,8,.5);background:#f3ece4}body[data-stage=stage2] .word.masked{text-shadow:0 0 8px rgba(27,18,8,.5);background:#f3ece4}.modal{position:fixed;inset:0;background:#120c0899;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:2000}.modal.open{opacity:1;pointer-events:auto}.modal-content{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:20px;width:min(640px,95vw);box-shadow:0 25px 60px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.modal-header h3{margin:0;font-family:Fraunces,Times New Roman,serif}.word .rest.masked{color:transparent;text-shadow:0 0 8px rgba(27,18,8,.5)}.small{margin:0;color:var(--muted)}.sidebar-toggle{display:none}@media (max-width: 600px){.shell{grid-template-columns:1fr;position:relative}.sidebar-toggle{display:flex;align-items:center;justify-content:center;position:fixed;top:16px;left:16px;z-index:1001;width:44px;height:44px;padding:0;border-radius:12px;font-size:1.5rem;background:var(--card);border:1px solid var(--border);color:var(--ink);box-shadow:0 4px 12px var(--shadow)}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:1000;transform:translate(-100%);transition:transform .3s ease;border-right:1px solid var(--border);border-bottom:none}.sidebar.open{transform:translate(0)}.workspace{padding:72px 12px 40px;width:100%;max-width:100vw;box-sizing:border-box}.workspace .card{padding:16px}.stage-controls{flex-direction:column;align-items:flex-start;gap:12px}.progress-row{width:100%;gap:12px}.button-row{width:100%;flex-direction:column;gap:12px}.button-row .mode-select{width:100%}.range-row{width:100%;flex-wrap:nowrap;gap:6px}.button-row .select{flex:1;width:100%;flex-wrap:wrap;justify-content:space-between}.button-row .range-select{width:100%;flex:1 1 auto;flex-wrap:nowrap;justify-content:flex-start;gap:6px}.button-row .select select,.button-row .select input[type=text]{flex:1;min-width:0;width:auto}.button-row .range-select input[type=text]{width:64px;flex:0 1 64px}.button-row button.icon-btn{flex:0 0 auto;align-self:flex-end}.range-row button.icon-btn{align-self:center;width:38px;height:38px;font-size:1.1rem}.button-row .select .ghost{flex:0 0 auto}.input-group{flex-direction:column}input[type=text]{min-width:unset;width:100%}.passage-display{font-size:1rem;line-height:2;padding:12px;overflow-wrap:break-word;word-wrap:break-word;hyphens:auto;max-height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.passage-display .word.current{scroll-margin:20px}.topbar{flex-direction:column;align-items:flex-start}.modal-content{width:min(95vw,100%);padding:16px;margin:10px}}
