:root{color-scheme:dark;--bg:#111013;--panel:#1b181e;--edge:#38313c;--muted:#b5aebc;--red:#ed4b64;--cream:#f9f3ed;--green:#9de5bd;font-family:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 70% 0%,#351a25 0,transparent 45%),var(--bg);color:var(--cream);line-height:1.5}button,input,select{font:inherit}button,a,input,select{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;background:#29232d;border:1px solid #514553;color:var(--cream);border-radius:9px;min-height:44px;padding:10px 15px;font-weight:600}button:hover{background:#3b2e3d;border-color:#bd7684}button:disabled{cursor:default;opacity:.4}a{color:#ffb0bd;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffc0cd;outline-offset:4px}input,select{background:#121014;border:1px solid #736276;color:var(--cream);border-radius:9px;min-height:48px;padding:10px 12px;max-width:100%}input::placeholder{color:#918796;font-size:.78rem;letter-spacing:.07em}.topbar{max-width:1280px;margin:auto;min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 32px;border-bottom:1px solid var(--edge)}.back{font-size:.9rem;text-decoration:none}.brand{font-size:1.1rem;font-weight:700}.brand i{color:var(--red)}.brand span{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;margin-left:10px;color:var(--muted)}.quiet{background:transparent;border-color:transparent;color:#e6bac3;font-size:.88rem}main{max-width:1200px;margin:auto;padding:36px 32px 16px}.intro{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}.eyebrow{font-size:.65rem;font-weight:700;letter-spacing:.17em;color:#e7a1af;margin:0 0 8px}h1{font-family:Georgia,serif;font-weight:500;font-size:clamp(2.4rem,5vw,4rem);line-height:1.05;margin:0;letter-spacing:-.04em}.title-dot{color:var(--red)}.subtitle{margin:10px 0 0;font-size:1.05rem;color:var(--muted)}.intro-note{display:grid;gap:10px;color:var(--muted);font-size:.8rem;text-align:right}.mini-tiles{letter-spacing:.28em;font-weight:700;color:#eeb7c3}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:24px}.modes button{text-align:left;background:#19151b;border-color:var(--edge);padding:13px 18px}.modes button span{display:block;font-size:.73rem;font-weight:400;color:var(--muted);margin-top:3px}.modes button.active{border-color:var(--red);background:#3d1d2a;box-shadow:inset 3px 0 var(--red)}.game-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:22px;align-items:start}.play-panel,.ladder-panel{border:1px solid var(--edge);border-radius:18px;background:linear-gradient(145deg,#231d27,#19171c);padding:26px;box-shadow:0 18px 45px #0002;min-width:0}.panel-top,.ladder-top,.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}h2{font-size:1.18rem;margin:0;line-height:1.3}h3{font-size:1rem;margin:0 0 8px}.journey{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:28px 0}.label{display:block;letter-spacing:.12em;font-size:.62rem;font-weight:700;color:var(--muted);margin-bottom:8px}.tiles{display:flex;gap:5px}.tile{display:inline-flex;align-items:center;justify-content:center;width:clamp(27px,3.4vw,40px);height:45px;background:#352c39;border:1px solid #625169;border-bottom:3px solid #59465e;border-radius:7px;font-weight:700;font-size:1.1rem}.target .tile{background:#401f2c;border-color:#b64c64;color:#ffc3cd}.journey-arrow{font-size:1.5rem;color:#ac8997}.stats{display:flex;gap:12px;background:#100e1280;border:1px solid #302934;border-radius:12px;padding:12px;margin-bottom:24px}.stats div{flex:1;text-align:center;border-right:1px solid var(--edge)}.stats div:last-child{border:0}.stats strong{font-size:1.35rem;display:block;font-variant-numeric:tabular-nums}.stats span{display:block;color:var(--muted);font-size:.7rem}.current-line{display:flex;align-items:center;gap:12px;margin-bottom:10px}.current-line .label{margin:0}.current-line strong{letter-spacing:.12em;color:#ffc2cd}label{display:block;font-size:.82rem;margin:10px 0 7px;color:#d2c8d7}#letterCount{color:var(--muted);font-size:.73rem}.input-row{display:flex;gap:8px}.input-row input{min-width:0;flex:1;letter-spacing:.16em;text-transform:uppercase;font-size:1.18rem;font-weight:600}.primary{background:#d53b55;border-color:#e66a7c;color:white}.primary:hover{background:#eb4c66}.message{font-size:.85rem;min-height:2.8em;color:#ffb6c4;margin:12px 0;overflow-wrap:anywhere}.message.success{color:var(--green)}.controls{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--edge);padding-top:16px}.controls button{font-size:.78rem;flex:1 1 auto}.controls .next{border-color:#a75d70;color:#ffbdcc}.ladder-top{padding-bottom:20px;border-bottom:1px solid var(--edge)}.badge{white-space:nowrap;border:1px solid #574154;border-radius:20px;padding:4px 10px;font-size:.67rem;color:#dcb6c6}#ladder{list-style:none;margin:0;padding:14px 0 0}#ladder li{display:flex;align-items:center;gap:13px;padding:8px 0;position:relative}.step-number{width:24px;flex-shrink:0;font-size:.72rem;color:#a997ad;font-variant-numeric:tabular-nums}#ladder .tile{height:35px;width:30px;font-size:.95rem}#ladder .changed{background:#7b2940;border-color:#fa7f94;color:#fff;text-decoration:underline;text-underline-offset:4px}#ladder li:last-child .tile{box-shadow:0 0 0 1px #c98a9b}.step-caption{font-size:.62rem;color:var(--muted);margin-left:auto;text-align:right}.ladder-note{text-align:center;color:var(--muted);padding:35px 0 16px;font-size:.82rem}.ladder-note>span{font-size:2rem;color:#a75068}.completion{border:1px solid #5c9e7a;border-radius:10px;background:#173c2a;padding:15px;margin-bottom:15px;font-size:.9rem}.completion strong{display:block;font-size:1.15rem;margin-bottom:6px}.completion p{margin:4px 0}.bottom-row{display:flex;justify-content:space-between;align-items:center;margin-top:23px;gap:12px;font-size:.78rem;color:#cbb3c9}.small{font-size:.78rem;color:var(--muted)}#storageNotice:empty{display:none}footer{font-size:.7rem;color:#9a8a9c;padding:30px 0 10px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}footer a{margin-left:auto}.solution-panel{margin-top:18px;background:#100e12;border:1px solid #5d4054;border-radius:10px;padding:15px;font-size:.85rem}.solution-panel #solutionWords{line-height:2.2;word-spacing:.3em;color:#ffc3cf}.solution-panel p{color:var(--muted)}dialog{background:#211a25;color:var(--cream);border:1px solid #79617b;border-radius:18px;width:min(580px,calc(100% - 24px));max-height:calc(100dvh - 32px);padding:24px}dialog::backdrop{background:#08060cce;backdrop-filter:blur(5px)}.dialog-top{margin-bottom:20px}.dialog-top button{padding:5px 12px;background:transparent}.dialog-top h2{font-family:Georgia,serif;font-size:1.6rem;font-weight:400}dialog p{font-size:.9rem}dialog select{width:100%}.puzzle-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:16px}.puzzle-grid button{padding:8px 4px;display:grid;gap:2px;font-size:.8rem;min-height:65px}.puzzle-grid button small{font-size:.55rem;color:var(--muted);font-weight:400}.puzzle-grid button.selected{border:2px solid var(--red)}.picker-actions button{width:100%}#customForm input{width:100%;text-transform:uppercase;letter-spacing:.14em}.toggle{display:flex;align-items:center;gap:12px;font-size:1rem}.toggle input{width:20px;height:20px;min-height:20px;accent-color:var(--red)}.danger{background:#4d202c;border-color:#b56679;margin-top:20px}.example{color:#ffc3d1;font-weight:700}.noscript{padding:20px;text-align:center}[hidden]{display:none!important}
@media(min-width:760px){.ladder-panel{position:sticky;top:18px;max-height:calc(100vh - 36px);overflow:auto}}
@media(max-width:759px){.topbar{padding:10px 14px;min-height:58px;gap:5px;flex-wrap:wrap}.brand{font-size:.86rem}.brand span{display:none}.back{font-size:.78rem}.topbar .quiet{font-size:.72rem;padding:7px;min-height:40px}main{padding:20px 12px 10px}.intro{margin-bottom:18px}.intro .eyebrow{font-size:.53rem;letter-spacing:.12em}.intro-note{display:none}h1{font-size:2.55rem}.subtitle{font-size:.87rem;margin-top:6px}.modes{gap:6px;margin-bottom:14px}.modes button{font-size:.76rem;padding:10px 8px;line-height:1.25;min-height:58px}.modes button span{font-size:.6rem;line-height:1.4}.game-layout{display:flex;flex-direction:column;gap:14px}.play-panel,.ladder-panel{padding:17px 14px;border-radius:13px;width:100%}.panel-top h2{font-size:1.05rem}.panel-top .quiet{font-size:.75rem;padding:6px}.journey{padding:19px 0;gap:6px}.tiles{gap:3px}.tile{width:clamp(22px,5.6vw,36px);height:38px;font-size:1rem}.journey-arrow{font-size:1.1rem}.stats{padding:8px;margin-bottom:15px}.stats strong{font-size:1.15rem}.stats span{font-size:.64rem}.input-row .primary{padding:8px 12px;font-size:.85rem}.desktop-word{display:none}.input-row input{font-size:1.1rem;min-height:50px}.input-row input::placeholder{font-size:.65rem;letter-spacing:.04em}.current-line{margin-bottom:5px}.message{margin:8px 0;min-height:2.7em;font-size:.8rem}.controls{gap:6px;padding-top:12px}.controls button{font-size:.73rem;padding:8px 10px}.controls .next{flex-basis:100%}.ladder-top{padding-bottom:12px}#ladder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 10px}#ladder li{flex-wrap:wrap;gap:6px;border-bottom:1px solid #362b3a;padding:8px 0}#ladder .tile{width:clamp(19px,4.8vw,27px);height:30px;font-size:.8rem}.step-number{width:16px}.step-caption{width:100%;text-align:left;margin-left:22px;font-size:.57rem}.ladder-note{padding:14px 0 0}.ladder-note>span{display:none}.bottom-row{align-items:start;margin-top:16px}.bottom-row .small{display:block;margin-top:4px}.bottom-row .quiet{font-size:.73rem;max-width:120px}footer{font-size:.62rem;gap:8px;padding-top:20px}footer a{margin-left:0}dialog{padding:18px}.puzzle-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.puzzle-grid button small{font-size:.5rem}}
@media(max-width:359px){#ladder{grid-template-columns:1fr}.brand{font-size:.75rem}.tile{width:21px}.journey-arrow{display:none}}
@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.completion{animation:appear .25s ease-out}@keyframes appear{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}}
.word-note{font-size:.76rem;color:#d2b5c7;margin:-8px 0 15px}.word-note:empty{display:none}
.play-panel{container-type:inline-size}.journey .tile{width:clamp(18px,6cqw,40px);flex-shrink:0}.step-caption{max-width:110px}.tiles{flex-shrink:0}
@media(max-width:759px){.step-caption{max-width:none}.journey .tile{font-size:.94rem}}
@media(min-width:760px) and (max-width:1000px){.game-layout{grid-template-columns:1fr}.ladder-panel{position:static;max-height:none}#ladder{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px}#ladder li{flex-wrap:wrap}.step-caption{width:100%;max-width:none;text-align:left;margin-left:37px}}
@media(min-width:1001px) and (max-width:1150px){#ladder li{flex-wrap:wrap}.step-caption{width:100%;max-width:none;text-align:left;margin-left:37px}}
@media(max-width:759px){#ladder.long-words{grid-template-columns:1fr}#ladder.long-words .tile{width:28px;height:34px;font-size:.95rem}#ladder.long-words .step-caption{width:auto;flex:1;margin-left:5px;max-width:95px}}
@media(max-width:359px){#ladder.long-words .step-caption{width:100%;max-width:none;margin-left:22px}}
