.hashi-main{max-width:1250px;margin:65px auto 70px;padding:0 30px;display:grid;grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr);gap:65px;align-items:start}.hashi-intro h1{font-size:clamp(58px,6vw,86px);line-height:1;margin:20px 0 30px}.hashi-intro>p:not(.eyebrow){font-size:19px}.hashi-intro ul{padding-left:20px;color:var(--muted);font-size:15px;line-height:1.8}.hashi-intro li{margin-bottom:12px}.hashi-intro .hashi-help{font-size:13px!important;line-height:1.8}.hashi-game{min-width:0}.hashi-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--green-line);padding-bottom:15px}.hashi-toolbar p{margin:0;font-size:9px;font-family:var(--mono);color:var(--green);letter-spacing:.05em}.hashi-toolbar>div{display:flex;gap:14px}.hashi-toolbar button{border:0;border-bottom:1px solid var(--green-line);padding:3px 0;color:var(--muted);background:none;font-size:11px;white-space:nowrap;cursor:pointer}.hashi-toolbar button:hover{color:var(--green)}.hashi-toolbar button:disabled{opacity:.3;cursor:default}.hashi-board{position:relative;width:100%;aspect-ratio:1;margin-top:22px;background:radial-gradient(ellipse at center,rgba(58,255,21,.025),transparent 70%)}.hashi-board svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.edge-guide{stroke:var(--green-line);stroke-width:1;stroke-dasharray:2 7;vector-effect:non-scaling-stroke;opacity:.8}.edge-bridge{stroke:var(--green-soft);stroke-width:1.7;vector-effect:non-scaling-stroke;pointer-events:none}.edge-hit{stroke:transparent;stroke-width:22;vector-effect:non-scaling-stroke;cursor:pointer}.hashi-edge:focus{outline:none}.hashi-edge:focus .edge-guide,.hashi-edge.is-neighbor .edge-guide{stroke:var(--green);opacity:1;stroke-width:2}.hashi-edge:focus .edge-bridge{stroke:var(--green)}.hashi-island{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border:1px solid var(--green-muted);border-radius:50%;background:var(--bg);color:var(--ink);font-size:16px;font-family:var(--mono);display:grid;place-items:center;padding:0;cursor:pointer;touch-action:manipulation;isolation:isolate}.hashi-island:before{content:'';position:absolute;inset:-5px;border-radius:50%}.hashi-island:hover,.hashi-island.is-selected{border-color:var(--green);color:var(--green);box-shadow:0 0 0 4px rgba(58,255,21,.07)}.hashi-island.is-satisfied{background:#173514;border-color:var(--green);color:var(--green)}.hashi-island.is-overloaded{color:#ffb180;border-color:#ffb180;background:#311c11}.hashi-island:disabled{cursor:default;opacity:1}.hashi-metrics{display:flex;justify-content:space-between;border-top:1px solid var(--green-line);padding-top:20px;margin-top:20px;font-family:var(--mono);color:var(--muted);font-size:11px}.hashi-metrics strong{color:var(--ink);margin-left:8px}.hashi-feedback{font-size:12px;margin:15px 0;min-height:40px}.victory-lines{fill:none;stroke:var(--green);stroke-width:2;stroke-dasharray:1100;stroke-dashoffset:1100}.victory-nodes{fill:var(--bg);stroke:var(--green-soft);stroke-width:2;opacity:0}.is-revealing .victory-lines{animation:network-connect 1.4s .1s ease-out both}.is-revealing .victory-nodes{animation:network-nodes 1s .5s ease both}@keyframes network-connect{to{stroke-dashoffset:0}}@keyframes network-nodes{from{opacity:0}to{opacity:1}}@media(max-width:850px){.hashi-main{grid-template-columns:1fr;gap:22px;margin-top:35px;padding:0 20px;max-width:680px}.hashi-intro h1{font-size:58px}.hashi-intro h1 br{display:none}.hashi-intro>p:not(.eyebrow){font-size:17px}.hashi-intro ul{font-size:14px;margin-bottom:18px}.hashi-intro li{margin-bottom:7px}.hashi-intro .hashi-help{margin-bottom:10px}.hashi-board{margin-top:18px}.hashi-island{width:30px;height:30px;font-size:14px}.hashi-island:before{inset:-5px}.hashi-toolbar p{font-size:8px}.hashi-toolbar>div{gap:12px}}@media(max-width:360px){.hashi-main{padding:0 16px}.hashi-island{width:27px;height:27px;font-size:13px}.hashi-toolbar>div{gap:9px}.hashi-toolbar button{font-size:10px}}@media(prefers-reduced-motion:reduce){.is-revealing .victory-lines{animation-duration:.01ms;animation-delay:0s}.is-revealing .victory-nodes{animation-duration:.01ms;animation-delay:0s}}
@media(min-width:851px){.hashi-board{max-width:min(100%,calc(100svh - 245px));margin-left:auto;margin-right:auto}}
.hashi-intro .hashi-next-note{font-size:14px!important;line-height:1.7;color:var(--green-soft);margin-top:22px}.hashi-edge.is-given .edge-bridge{stroke:var(--green)}.hashi-edge.is-given .edge-guide{opacity:0}.hashi-edge.is-given .edge-hit{cursor:default}
