*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--slate-50);color:var(--slate-700)}button{font:inherit}.borrow-page{width:min(calc(100% - 40px),1120px);margin:0 auto;padding:34px 0 72px}.game-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.game-heading h1{margin:5px 0 7px;color:var(--slate-900);font-size:clamp(36px,6vw,52px);line-height:1;letter-spacing:-.05em}.game-heading p{max-width:620px;margin:0;color:var(--slate-600)}.heading-actions{display:flex;gap:8px}.icon-button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--slate-200);border-radius:var(--radius-md);background:white;color:var(--slate-600);box-shadow:var(--shadow-xs);font-weight:700;cursor:pointer}.icon-button svg{width:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.borrow-card{overflow:hidden;border:1px solid var(--slate-200);border-radius:var(--radius-lg);background:white;box-shadow:var(--shadow-sm)}.run-strip{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--slate-200);background:var(--slate-50)}.run-strip>div{display:flex;justify-content:space-between;gap:12px;padding:13px 18px;border-right:1px solid var(--slate-200)}.run-strip>div:last-child{border-right:0}.run-strip span{color:var(--slate-500);font-size:12px;font-weight:600}.run-strip strong{color:var(--slate-800)}
.ring-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:28px 28px 20px}.ring-heading h2{margin:5px 0 0;color:var(--slate-900);font-size:28px}.ring-heading p{max-width:380px;margin:0;color:var(--slate-500);font-size:13px;text-align:right}
.letter-ring{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:8px 28px 26px}.word-node{position:relative;min-width:0;padding:16px 12px 14px;border:1px solid var(--slate-200);border-radius:var(--radius-md);background:var(--slate-50);transition:border-color .18s,background .18s}.word-node::after{content:"→";position:absolute;z-index:3;top:50%;right:-18px;translate:0 -50%;width:22px;height:22px;display:grid;place-items:center;border:1px solid var(--cobalt-200);border-radius:50%;background:white;color:var(--cobalt-600);font-size:12px}.word-node:last-child::after{content:"↩"}.node-number{color:var(--cobalt-700);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.node-clue{min-height:42px;margin:8px 0 14px;color:var(--slate-600);font-size:12px;line-height:1.45}.letter-buttons{display:flex;justify-content:center;gap:3px}.letter-button{width:min(31px,18%);aspect-ratio:1;padding:0;border:1px solid var(--slate-300);border-radius:6px;background:white;color:var(--slate-800);font:700 15px/1 var(--font-mono);text-transform:uppercase;cursor:pointer}.letter-button:hover{border-color:var(--cobalt-400)}.letter-button[aria-pressed="true"]{border-color:var(--cobalt-600);background:var(--cobalt-600);color:white;box-shadow:0 0 0 3px var(--cobalt-100)}.letter-button:disabled{cursor:default}.word-node.is-repaired{border-color:#8ed4b6;background:var(--success-bg)}.word-node.is-repaired .node-number{color:#176d49}.word-node.is-broken{border-color:#edb8c0;background:var(--danger-bg)}.word-node.is-hinted{border-color:var(--cobalt-300)}.word-node.is-hinted .letter-button[aria-pressed="true"]{background:var(--slate-700);border-color:var(--slate-700)}.result-word{min-height:20px;margin-top:12px;color:var(--slate-500);font:700 14px/1 var(--font-mono);text-align:center;text-transform:uppercase}.word-node.is-repaired .result-word{color:#176d49}.word-node.is-broken .result-word{color:var(--danger)}
.circuit-note{display:flex;justify-content:center;align-items:center;gap:12px;margin:0 28px 22px;padding:12px 16px;border:1px solid var(--cobalt-100);border-radius:var(--radius-md);background:var(--cobalt-50)}.circuit-note>span{color:var(--cobalt-600);font-size:25px}.circuit-note p{margin:0;color:var(--slate-600);font-size:12px}.feedback-panel{margin:0 28px 18px;padding:13px 15px;border-left:3px solid var(--cobalt-500);background:var(--slate-50);color:var(--slate-600);font-size:13px}.feedback-panel[hidden]{display:none}
.game-action{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;padding:20px 28px;border-top:1px solid var(--slate-200);background:var(--slate-50)}.game-action p{margin:0;color:var(--slate-500);font-size:13px;text-align:center}.primary-button{min-height:46px;padding:10px 18px;border:1px solid var(--cobalt-600);border-radius:var(--radius-md);background:var(--cobalt-600);color:white;font-weight:700;cursor:pointer}.primary-button:hover{background:var(--cobalt-700)}.primary-button:disabled{border-color:var(--slate-200);background:var(--slate-200);color:var(--slate-500);cursor:default}.hint-button{min-height:42px;padding:8px 12px;border:1px solid var(--slate-300);border-radius:var(--radius-md);background:white;color:var(--slate-700);font-size:12px;font-weight:700;cursor:pointer}.hint-button span{color:var(--danger)}.hint-button:disabled{opacity:.55;cursor:default}
.ad-card{height:92px;display:grid;place-items:center;margin:20px 0;border:1px dashed var(--slate-300);border-radius:var(--radius-md);color:var(--slate-400);font-size:10px;letter-spacing:.16em;text-transform:uppercase}.about-card{display:grid;grid-template-columns:.8fr 1.2fr;gap:32px;padding:28px;border:1px solid var(--slate-100);border-radius:var(--radius-lg);background:white;box-shadow:var(--shadow-sm)}.about-card h2{margin:5px 0 0;color:var(--slate-800);font-size:23px}.about-card p{margin:0;color:var(--slate-600);line-height:1.65}
.dialog{width:min(calc(100% - 32px),500px);padding:28px;border:1px solid var(--slate-200);border-radius:var(--radius-lg);background:white;color:var(--slate-600);box-shadow:var(--shadow-lg)}.dialog::backdrop{background:rgba(20,25,40,.48)}.dialog h2{margin:6px 0 18px;color:var(--slate-800)}.dialog-close{position:absolute;top:14px;right:14px;width:36px;height:36px;border:0;background:transparent;color:var(--slate-500);font-size:24px;cursor:pointer}.steps{margin:0 0 18px;padding:0;list-style:none}.steps li{display:flex;gap:13px;padding:12px 0;border-top:1px solid var(--slate-200)}.steps li>span{color:var(--cobalt-600);font-size:12px;font-weight:700}.steps p{margin:3px 0 0;color:var(--slate-500);font-size:13px}.result-dialog{text-align:center}.result-mark{display:grid;place-items:center;width:62px;height:58px;margin:0 auto 14px;border:1px solid var(--cobalt-200);border-radius:var(--radius-md);background:var(--cobalt-50);color:var(--cobalt-700);font-weight:700}.result-grid,.record-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 0;border-block:1px solid var(--slate-200)}.record-grid{grid-template-columns:1fr 1fr}.result-grid div,.record-grid div{padding:13px 6px;border-right:1px solid var(--slate-200)}.result-grid div:last-child,.record-grid div:nth-child(2n){border-right:0}.record-grid div:nth-child(n+3){border-top:1px solid var(--slate-200)}.result-grid strong,.result-grid span,.record-grid strong,.record-grid span{display:block}.result-grid span,.record-grid span{margin-top:3px;color:var(--slate-500);font-size:11px}.answer-list{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:18px}.answer-list span{padding:6px 9px;border-radius:var(--radius-sm);background:var(--slate-100);font:700 12px/1 var(--font-mono);text-transform:uppercase}.text-button{width:100%;margin-top:8px;padding:9px;border:0;background:transparent;color:var(--slate-500);cursor:pointer}#snackbar{position:fixed;z-index:var(--global-toast-z);left:50%;top:var(--global-toast-top);translate:-50% -18px;max-width:calc(100% - 32px);padding:10px 14px;border:1px solid var(--slate-200);border-radius:var(--radius-md);background:white;box-shadow:var(--shadow-md);color:var(--slate-700);opacity:0;pointer-events:none;transition:.2s}#snackbar.show{translate:-50% 0;opacity:1}
.complete-state{min-height:520px;display:grid;place-items:center;align-content:center;padding:35px;text-align:center;background:radial-gradient(circle,var(--cobalt-50),transparent 55%)}.complete-state h2{margin:8px 0;color:var(--slate-900);font-size:34px}.complete-state p{margin:0 0 20px;color:var(--slate-600)}
@media(max-width:900px){.letter-ring{grid-template-columns:repeat(3,1fr)}.word-node:last-child::after{content:"→"}.word-node:nth-child(3)::after,.word-node:nth-child(5)::after{content:"↩"}.game-action{grid-template-columns:1fr 1fr}.game-action p{grid-column:1/-1;grid-row:1;text-align:left}.hint-button,.primary-button{width:100%}}
@media(max-width:650px){.borrow-page{width:min(calc(100% - 16px),1120px);padding-top:22px}.game-heading{align-items:flex-start}.run-strip>div{display:block;padding:10px 12px}.run-strip strong{display:block;margin-top:2px}.ring-heading{display:block;padding:22px 18px 16px}.ring-heading p{margin-top:8px;text-align:left}.letter-ring{grid-template-columns:1fr;padding:6px 18px 20px}.word-node{padding:14px 16px}.word-node::after,.word-node:nth-child(3)::after,.word-node:nth-child(5)::after,.word-node:last-child::after{content:"↓";top:auto;right:50%;bottom:-18px;translate:50% 0}.word-node:last-child::after{content:"↟"}.node-clue{min-height:0}.letter-buttons{justify-content:flex-start}.letter-button{width:38px}.result-word{text-align:left}.circuit-note,.feedback-panel{margin-inline:18px}.game-action{grid-template-columns:1fr;padding:18px}.game-action p{grid-column:auto;grid-row:auto}.about-card{grid-template-columns:1fr;gap:10px;padding:22px}.dialog{padding:25px 18px}}
@media(prefers-reduced-motion:reduce){.word-node,#snackbar{transition:none}}
