:root{color-scheme:light;--bg:#f4f0e9;--ink:#233145;--muted:#7c8994;--line:#e5e6e0;--white:#fffefa;--coral:#f87a70;--teal:#32b6aa;--mint:#e2f6ef;--shadow:0 15px 60px rgba(36,53,65,.065),0 3px 15px rgba(36,53,65,.045);font-family:ui-rounded,'Trebuchet MS',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100svh;background:radial-gradient(circle at 10% 8%,#fff4df 0,transparent 38%),radial-gradient(circle at 91% 88%,#dff3ee 0,transparent 36%),var(--bg);color:var(--ink);-webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid var(--teal);outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}
.shell{max-width:1230px;margin:0 auto;padding:22px 26px 30px}.site-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.brand{display:flex;align-items:center;gap:12px}.brand-icon{width:53px;height:53px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:29px;font-weight:900;border-radius:18px;transform:rotate(-7deg);box-shadow:4px 5px 0 #ffd9ad}.brand-copy b{display:block;font-weight:950;font-size:24px;letter-spacing:-1px;line-height:1.1}.brand-copy small{display:block;margin-top:4px;font-size:10px;text-transform:uppercase;letter-spacing:2.2px;font-weight:900;color:var(--teal)}.head-actions{display:flex;gap:9px;align-items:center}.head-pill{border:1px solid #e6eae9;background:#fffefa;color:var(--ink);border-radius:999px;padding:12px 16px;font-size:13px;font-weight:850;box-shadow:0 2px 8px #23314505}.head-pill:hover,.pill:hover{border-color:var(--teal)}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 335px;align-items:start;gap:24px}.board-panel{background:var(--white);padding:18px 18px 14px;border:1px solid #eae9e3;border-radius:29px;box-shadow:var(--shadow);position:relative;min-width:0}.board-top{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 9px 14px}.eyebrow{text-transform:uppercase;color:var(--muted);font-size:11px;letter-spacing:1.6px;font-weight:850}.level-heading{font-size:27px;font-weight:950;letter-spacing:-1.2px;margin-top:1px;display:flex;gap:8px;align-items:baseline}.level-heading span{font-size:13px;font-weight:750;color:#abb1b7;letter-spacing:0}.difficulty{font-size:11px;font-weight:900;letter-spacing:.2px;border-radius:999px;padding:8px 11px;background:#e0f4ee;color:#168677}.difficulty[data-grade="Tutorial"]{background:#e8f1ff;color:#446cb2}.difficulty[data-grade="Tricky"]{background:#fff2cd;color:#a3730c}.difficulty[data-grade="Medium"]{background:#dfeeff;color:#3075af}.difficulty[data-grade="Hard"]{background:#ffdfd8;color:#b85450}.difficulty[data-grade="Expert"]{background:#edddfa;color:#8956a6}.board-zone{position:relative;background:#faf9f5;border:1px solid #eeece6;border-radius:19px;overflow:hidden;min-height:330px;display:grid;place-items:center;touch-action:pan-y}.board-zone.is-zoomed{touch-action:none}.board-zone:before{content:none}.board-svg{position:relative;z-index:1;display:block;width:100%;height:100%;min-height:330px;user-select:none;touch-action:inherit;overflow:hidden}.board-svg .arrow{cursor:pointer}.board-svg .arrow:focus-visible .shaft{stroke-width:.3}.board-svg .arrow:hover .shaft{stroke-width:.27}.board-svg .arrow:active{opacity:.78}.board-svg .shaft{fill:none;stroke:var(--ink);stroke-width:.205;stroke-linecap:round;stroke-linejoin:round}.board-svg .arrowhead{fill:var(--ink);stroke:none}.board-svg .hitpath{fill:none;stroke:transparent;stroke-width:.62;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.board-svg .arrow[data-color="1"] .shaft{stroke:#308d91}.board-svg .arrow[data-color="1"] .arrowhead{fill:#308d91}.board-svg .arrow[data-color="2"] .shaft{stroke:#d77163}.board-svg .arrow[data-color="2"] .arrowhead{fill:#d77163}.board-svg .arrow[data-color="3"] .shaft{stroke:#9261a9}.board-svg .arrow[data-color="3"] .arrowhead{fill:#9261a9}.board-svg .arrow[data-color="4"] .shaft{stroke:#dfac45}.board-svg .arrow[data-color="4"] .arrowhead{fill:#dfac45}.board-svg .arrow.hit-bad .shaft{stroke:#e44e56!important}.board-svg .arrow.hit-bad .arrowhead{fill:#e44e56!important}.board-svg .arrow.hinted .shaft{stroke:#00b6ad!important;stroke-width:.32;filter:drop-shadow(0 0 .1px #29dfce)}.board-svg .arrow.hinted .arrowhead{fill:#00b6ad!important}.board-svg .arrow.hinted{animation:gentlePulse 1.1s infinite alternate}.board-svg .block-ray{stroke:#ee5b5b;stroke-dasharray:.24 .24;stroke-width:.12;stroke-linecap:round;pointer-events:none}.board-svg .marker{fill:#293c4a;opacity:.1}.board-svg .arrow:focus-visible{outline:none}
@keyframes gentlePulse{to{opacity:.55}}.board-bottom{display:flex;align-items:center;gap:10px;padding:15px 6px 3px;flex-wrap:wrap}.progress{flex:1;min-width:100px;height:9px;border-radius:999px;background:#eceee9;overflow:hidden}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,#22b9a9,#84d1a5);border-radius:999px;transition:width .3s}.progress-info{font-size:12px;font-weight:900;color:var(--muted);white-space:nowrap}.zoom-controls{display:flex;gap:5px;margin-left:auto}.zoom-btn{width:33px;height:33px;border-radius:11px;border:1px solid #e5e9e4;background:white;color:var(--ink);font-size:20px;font-weight:800}.board-tip{text-align:center;margin:12px 4px 3px;font-size:13px;color:#839096;min-height:20px}.board-tip strong{color:var(--ink)}
.side{display:flex;flex-direction:column;gap:16px}.hero-card{background:#253849;color:white;border-radius:26px;padding:27px;position:relative;overflow:hidden;min-height:200px;box-shadow:var(--shadow)}.hero-card:after{content:'↗';position:absolute;right:-22px;top:2px;font-family:Arial;font-size:205px;color:#ffffff10;font-weight:800;line-height:1}.hero-card .mini-tag{font-size:11px;text-transform:uppercase;color:#a0e0d0;font-weight:950;letter-spacing:2px}.hero-card h1{font-size:28px;font-weight:950;letter-spacing:-1px;line-height:1.14;margin:16px 0 10px;position:relative;z-index:1}.hero-card p{font-size:13px;line-height:1.6;margin:0;max-width:250px;color:#d4e2e7;position:relative;z-index:1}.info-card{background:var(--white);border:1px solid #eae9e3;border-radius:22px;padding:19px;box-shadow:var(--shadow)}.card-h{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:#87949e;font-weight:950;margin:0 0 15px}.stats{display:flex;justify-content:space-between;align-items:center;gap:10px}.lives{font-size:23px;letter-spacing:3px;color:#fa8074;font-weight:900;min-height:31px}.lives.relaxed{font-size:13px;letter-spacing:0;color:#32988f;align-self:center}.button-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pill{border-radius:15px;border:1px solid #e3e7e6;padding:13px 11px;background:#fff;font-size:13px;font-weight:850;color:var(--ink);display:flex;align-items:center;justify-content:center;gap:7px}.pill.primary{background:var(--teal);color:white;border-color:var(--teal)}.pill.primary:hover{background:#239d94}.pill .button-icon{font-size:18px;line-height:1}.next-row{display:grid;grid-template-columns:1fr auto;gap:10px;margin-top:10px}.next-row .pill{justify-content:center}.compact-desc{font-size:12px;color:var(--muted);line-height:1.6;margin:13px 0 0}.support-card{display:flex;align-items:center;gap:14px;background:#e5f3eb;border:1px solid #d1eadf;border-radius:20px;padding:15px 17px}.support-card .sup-icon{font-size:24px;line-height:1}.support-card b{font-size:13px}.support-card p{font-size:11px;margin:3px 0 0;color:#588477;line-height:1.5}.footer{margin-top:18px;text-align:center;color:#9ca9aa;font-size:11px;font-weight:700}
.modal-back{position:fixed;inset:0;z-index:40;background:#15273594;backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}.modal-back[hidden],.toast[hidden]{display:none!important}.dialog{width:min(490px,100%);max-height:min(85svh,760px);overflow:auto;background:#fffefa;border-radius:26px;padding:24px;box-shadow:0 25px 100px #14243455;position:relative}.dialog header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.dialog h2{font-size:25px;letter-spacing:-1px;margin:0}.close-btn{background:#f4f4f0;border:none;border-radius:10px;width:34px;height:34px;font-size:23px;color:#5e6870}.dialog p{color:#7e8b94;font-size:13px;line-height:1.6}.chapter-controls{display:flex;align-items:center;gap:8px;margin:20px 0 11px}.chapter-btn{background:#f0f5f3;border:1px solid #e1e9e4;border-radius:10px;padding:10px 13px;color:var(--ink);font-weight:900}.chapter-label{flex:1;text-align:center;font-size:13px;font-weight:950}.level-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.level-tile{border:1px solid #e8eae5;background:#f8f8f3;border-radius:10px;aspect-ratio:1;font-size:12px;font-weight:900;color:#50606b;position:relative}.level-tile.active{background:var(--ink);color:white}.level-tile.solved{background:#dbf2e6;border-color:#c5e8d6;color:#168b76}.level-tile.solved:after{content:'✓';position:absolute;top:1px;right:2px;font-size:8px}.jump-form{display:flex;gap:8px;margin-top:17px;align-items:center}.jump-form input{min-width:0;flex:1;padding:12px;border-radius:12px;border:1px solid #dfe5e2;background:white}.jump-form button{border:none;border-radius:12px;background:var(--teal);color:white;padding:12px 18px;font-weight:900}.option{padding:16px 2px;border-bottom:1px solid #edf0eb;display:flex;align-items:center;justify-content:space-between;gap:10px}.option b{display:block;font-size:14px}.option small{display:block;font-size:11px;color:#8a969e;line-height:1.5;margin-top:3px;max-width:310px}.toggle{width:50px;min-width:50px;height:29px;position:relative;border:0;border-radius:30px;background:#d6e0dd;transition:background .2s}.toggle:before{content:'';position:absolute;top:3px;left:3px;width:23px;height:23px;background:white;border-radius:50%;box-shadow:0 1px 4px #0002;transition:transform .2s}.toggle[aria-checked="true"]{background:var(--teal)}.toggle[aria-checked="true"]:before{transform:translateX(21px)}.win-icon{width:80px;height:80px;margin:9px auto 12px;border-radius:26px;display:grid;place-items:center;font-size:45px;background:#e0f7e8;transform:rotate(-8deg)}.win-body{text-align:center}.win-body h2{font-size:33px}.win-body p{font-size:14px}.win-actions{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.win-actions button{padding:16px;font-weight:900;border-radius:14px;border:1px solid #e0e9e2;background:white}.win-actions button.primary{background:var(--teal);color:white;border-color:var(--teal)}.toast{position:fixed;z-index:60;left:50%;bottom:34px;transform:translateX(-50%);background:#233648;color:white;padding:12px 19px;border-radius:15px;box-shadow:0 6px 36px #1a2b3552;font-size:13px;font-weight:800;text-align:center;max-width:90%;pointer-events:none}.confetti{position:fixed;z-index:55;width:9px;height:14px;border-radius:2px;pointer-events:none;animation:fall 1.9s forwards ease-in}@keyframes fall{from{opacity:1;transform:translate3d(0,-8svh,0) rotate(0)}to{opacity:0;transform:translate3d(var(--drift),110svh,0) rotate(710deg)}}
body.night{--bg:#122431;--ink:#e7f4f4;--muted:#a5b2b8;--line:#304651;--white:#203542;--shadow:0 15px 60px #050f1538;background:radial-gradient(circle at 25% 5%,#284d52,transparent 48%),#10252f;color:#e5f2ef}body.night .board-zone{background:#1b303c;border-color:#30434b}body.night .head-pill,body.night .pill,body.night .zoom-btn,body.night .close-btn,body.night .chapter-btn,body.night .jump-form input,body.night .win-actions button,body.night .level-tile{background:#2b4551;color:#e5f4f2;border-color:#3d5b63}body.night .info-card,body.night .board-panel{border-color:#36505b}body.night .board-svg .shaft{stroke:#e4f5f1}body.night .board-svg .arrowhead{fill:#e4f5f1}body.night .dialog{background:#203542}body.night .level-tile.active{background:#e3f5ee;color:#28404a}body.night .level-tile.solved{background:#245b57;color:#bdf8df}body.night .support-card{background:#254840;border-color:#2c6156}body.night .hero-card{background:#0d1e29}body.night .progress{background:#39505a}body.night .win-actions button.primary,body.night .jump-form button{background:#24a69a;color:#fff}
@media(max-width:950px){.layout{grid-template-columns:minmax(0,1fr) 260px;gap:16px}.shell{padding:16px}.hero-card{padding:21px}.hero-card h1{font-size:22px}.info-card{padding:14px}.board-panel{padding:12px}}
@media(max-width:700px){.shell{padding:13px 12px 25px}.site-head{margin-bottom:14px}.brand-icon{width:45px;height:45px;border-radius:14px;font-size:25px}.brand-copy b{font-size:21px}.brand-copy small{font-size:8px;letter-spacing:1.6px}.head-pill{padding:10px 11px;font-size:12px}.layout{grid-template-columns:1fr;gap:14px}.board-panel{padding:10px 10px 8px;border-radius:23px}.board-top{padding:8px 8px 12px}.level-heading{font-size:23px}.board-zone{min-height:0}.board-svg{min-height:0}.side{display:contents}.hero-card{display:none}.side .info-card{order:2}.side .support-card{order:3}.board-panel{order:1}.footer{margin-top:10px}.info-card{padding:13px 16px}.info-card .card-h{margin-bottom:9px}.info-card .compact-desc{margin-top:8px}.board-tip{margin:10px 3px 4px}.board-bottom{padding:10px 4px 0}.zoom-btn{width:31px;height:31px}.support-card{padding:11px 16px}.dialog{border-radius:23px;padding:19px}.level-grid{grid-template-columns:repeat(7,1fr);gap:6px}}
@media(max-width:390px){.head-pill{padding:10px 8px}.site-head{gap:6px}.brand-copy b{font-size:19px}.brand-icon{width:39px;height:39px}.board-tip{font-size:12px}.pill{padding:11px 6px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Dense dots, not touching strokes: every lattice cell is assigned, but lines remain slim. */
.board-svg .shape-background{fill:#f0f5f1}
body.night .board-svg .shape-background{fill:#29413f}
.board-svg .shaft{stroke-width:.17}
.board-svg .arrow:hover .shaft{stroke-width:.20}
.board-svg .arrowhead{opacity:.95}
.board-svg .hitpath{stroke-width:.72}
.zoom-fit{width:43px;font-size:11px;font-weight:900}
.board-zone{touch-action:pan-y}
.board-zone.is-zoomed{touch-action:none}

/* Release 3.6.0 — tutorial-first progression with progressively intertwined boards. */
.version-tag{display:inline-block;font-size:9px;letter-spacing:.3px;font-weight:900;color:#629d95;background:#e0f4ec;padding:2px 6px;border-radius:6px;margin-left:3px}
.footer-version{color:#687781;font-weight:900}
.version-detail{margin-top:18px!important;color:#697d82!important;padding-top:13px;border-top:1px solid #e5eae7}
.version-detail strong{color:var(--teal)}
.board-svg .arrow.unwinding .shaft{stroke:#12a99e!important;stroke-width:.29;filter:drop-shadow(0 0 .15px rgba(24,203,184,.45));transition:none}
.board-svg .arrow.unwinding .arrowhead{fill:#12a99e!important;opacity:1}
.board-svg .arrow.unwinding .hitpath{pointer-events:none}
.board-svg .arrow.unwinding .unwind-tracer{fill:#fffdf6;stroke:#12a99e;stroke-width:.17;pointer-events:none;filter:drop-shadow(0 0 .18px #1ad9c0)}
body.night .version-tag{background:#264d50;color:#a6e4d8}
body.night .version-detail{border-color:#35525d!important}

/* Exiting arrows no longer intercept pointer input for later arrows. */
.board-svg .arrow.unwinding,.board-svg .arrow.unwinding *{pointer-events:none!important}
