:root{font-family:Trebuchet MS,Arial,sans-serif;color:#e5eaf5;background:#101320;font-synthesis:none;font-size:14px;--ink: #e5eaf5;--muted: #92a0b8;--line: #2c354c;--blue: #6ab5ff;--cyan: #68e9ef;--purple: #a995ff;--orange: #ffc76a}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#1b2140,transparent 70%);min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.65}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}::selection{color:#101320;background:var(--cyan)}.site-header,main,footer{width:min(1440px,100%);margin:auto;padding-left:24px;padding-right:24px}.site-header{position:relative;height:64px;display:flex;align-items:center;justify-content:flex-end;gap:16px}.score-links,.account-controls{display:flex;align-items:center;gap:16px;min-width:0}.score-links{flex-shrink:0;margin-right:auto}.score-links .text-button,#account-name{text-decoration:underline;text-underline-offset:3px}.account-controls{margin-left:0;gap:4px}#account-name{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;white-space:nowrap}.account-button .account-label{margin-left:0}.inline-link{color:var(--cyan);text-decoration:underline;text-underline-offset:3px}.account-button.signed-in .account-door{transform:translate(22px) scaleX(-1)}#account-status:empty{display:none}#account-status:not(:empty){position:absolute;top:100%;left:12px;right:12px;z-index:10;background:#111a2b;padding:8px;font-size:12px}.brand-links{display:flex;align-items:center;gap:8px;margin-left:0;flex-shrink:0}.github-link{display:grid;place-items:center;width:44px}.brand{flex-shrink:0;margin-left:auto;font-size:23px;font-weight:900;letter-spacing:-1px;text-decoration:none;display:flex;align-items:center}.brand>span:not(.brand-icon){color:var(--cyan)}.brand-icon{font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif;color:var(--blue);font-size:33px;margin-right:7px}.game-toolbar nav{display:flex;gap:20px;align-items:center}.text-button{border:0;background:none;color:#a4b1cb;padding:8px 0;font-size:11px;font-weight:700;min-height:44px;min-width:44px}.text-button:hover{color:#fff}.text-button span{margin-left:4px}.question-icon{display:inline-grid;place-items:center;width:15px;height:15px;border:1px solid currentColor;border-radius:50%;font-size:10px}.sound-button{color:var(--cyan)}.sound-button[aria-pressed=false]{color:#7d8ba5}footer{display:flex;justify-content:space-between;align-items:center;min-height:44px;font-size:9px;color:#78859f}footer .text-button{font-size:9px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;border-radius:8px;padding:12px 18px;min-height:44px;white-space:nowrap;font-size:12px;font-weight:800;transition:translate .18s,filter .18s,box-shadow .18s}.primary-button{color:#14201b;background:#1669d6;border:1px solid #398cff;box-shadow:0 3px #124a95,0 0 20px #398cff12}.secondary-button{color:#bcc9e0;background:#252e43;border:1px solid #3c4863}.primary-button:hover,.secondary-button:hover{filter:brightness(1.12);translate:0 -2px}.primary-button:active,.secondary-button:active{translate:0 1px}.full-width{width:100%;margin-top:14px}.storage-warning{font-size:12px;border:1px solid #a47b36;background:#423523;padding:12px;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.noscript{position:fixed;bottom:0;left:0;right:0;z-index:200;padding:20px;color:#111;background:#ffc76a;text-align:center}dialog{color:#e5eaf5;background:#1b2235;border:1px solid #455474;border-radius:16px;width:calc(100% - 32px);max-width:520px;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior-y:contain;padding:28px;box-shadow:0 25px 120px #0009,0 0 40px #a995ff10}dialog::backdrop{background:#070b15b8;backdrop-filter:blur(6px)}.dialog-top{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-bottom:20px}#result-dialog{max-width:760px}#personal-bests{display:flex;gap:12px;margin:16px 0}#personal-bests>div{flex:1;min-width:0;padding:10px;border:1px solid #3c4965;border-radius:8px}#personal-bests dt{font-size:12px;color:#a4b1cb}#personal-bests dd{margin:4px 0 0;font-size:22px;font-weight:800;overflow-wrap:anywhere}#personal-bests .new-personal-record{border-color:var(--blue)}#record-message{color:var(--blue);font-weight:800}.solution-section{border-top:1px solid #35425d;padding-top:18px;margin-top:18px}.solution-section h3{font-size:14px;margin:0 0 14px}.solution-section h3 span{font-size:11px;font-weight:400;color:#8391ac;margin-left:8px}#result-route .solution-section{border:0;padding-top:0;margin-top:0}#result-route .solution-section h3 span{color:var(--blue);font-weight:800}#result-route .solution-card{border-color:#75a66b;background:#293f3d}.solution-chain{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px 14px}.solution-chain li{position:relative}.solution-chain li:not(:last-child):after{content:"\2192";position:absolute;right:-12px;top:11px;color:#68e9ef;font-size:12px}.solution-card{width:34px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:5px;border:1px solid #547b94;border-radius:6px;background:linear-gradient(145deg,#344c66,#25364e);box-shadow:0 3px #10192b;font-size:15px;font-weight:800;color:#d7f6fa}.solution-card strong{font-size:23px;color:#d7f6fa;letter-spacing:-.8px}.solution-card small{max-width:100%;font-size:7px;color:#a0bad2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.solution-card span{font-size:8px;color:#a7d8df}.eyebrow{font-size:9px;font-weight:800;color:var(--cyan);letter-spacing:1.5px;margin:0}.close-button{width:44px;height:44px;flex-shrink:0;border:1px solid #3c4965;background:#242d44;border-radius:8px;font-size:26px;color:#bcc9e0}dialog h2{font-size:30px;line-height:1.1;letter-spacing:-1px;margin:0 0 18px;font-weight:900}dialog h2 em{color:var(--purple);font-style:normal}dialog p,.guide{font-size:13px;line-height:1.7;color:#a4b1cb}.guide{padding-left:20px;display:grid;gap:12px}.guide strong,.mode-guide strong{color:#dcf2e1}.mode-guide{border:1px solid #3d4862;background:#252e43;padding:12px 16px;border-radius:8px}.mode-guide p{margin:0;font-size:12px}dialog .fine-print{font-size:10px;color:#8391ac;line-height:1.7}.result-art{font-size:48px;line-height:1;width:84px;height:84px;display:grid;place-items:center;border-radius:20px;color:var(--blue);background:#398cff12;border:1px solid #398cff66;margin-bottom:24px;box-shadow:0 0 32px #398cff12}.result-stats{display:grid;grid-template-columns:repeat(2,1fr);border:1px solid #35425d;border-radius:8px;background:#252e43;padding:20px 0;margin:24px 0}.result-stats>div{text-align:center;border-right:1px solid #35425d}.result-stats>div:last-child{border:0}.result-stats strong{font-size:29px;font-weight:900;display:block;color:var(--blue)}.result-stats span{font-size:8px;letter-spacing:1px;color:#8391ac;display:block;margin-top:5px}#solution{font-size:12px;color:var(--cyan);line-height:2}#solution-wrap{padding:12px 0}.record-section{border-top:1px solid #35425d;padding-top:15px;margin-top:22px}.record-section h3{font-size:18px;margin:0 0 12px}.record-section table{width:100%;border-collapse:collapse;text-align:left;font-size:12px;font-variant-numeric:tabular-nums}.record-section th{color:#8391ac;font-size:8px;letter-spacing:1px}.record-section td,.record-section th{padding:9px 7px}.record-section td{border-top:1px solid #35425d}.record-path{overflow-wrap:anywhere;line-height:1.6}.record-section td:last-child{white-space:nowrap}.record-section th:last-child,.record-section td:last-child{text-align:right}#confetti{position:fixed;inset:0;width:100%;height:100%;z-index:100;pointer-events:none}#daily-list{max-height:40dvh;overflow-y:auto;overflow-wrap:anywhere}#daily-list table{width:100%;table-layout:fixed}#daily-list th:first-child,#daily-list td:first-child{width:18%}#daily-list th:last-child,#daily-list td:last-child{width:28%}.your-rank{color:var(--blue)}.daily-header{display:flex;align-items:center;gap:4px;margin-bottom:18px}.daily-header h2{flex:1;min-width:0;margin:0;font-size:clamp(22px,5vw,30px)}#daily-refresh{display:grid;place-items:center}#profile-form{margin-top:12px}.profile-fields{display:flex;gap:8px;margin-top:6px}.profile-fields input{min-width:0;width:100%;min-height:44px;background:#111a2b;border:1px solid #455474;border-radius:6px;color:inherit;padding:8px;font:inherit}@media(max-width:760px){.site-header,main,footer{padding-left:12px;padding-right:12px}.site-header{height:52px;gap:8px}.brand{font-size:20px}.brand-icon{font-size:27px;margin-right:5px}.game-toolbar nav{gap:12px}.game-toolbar nav .text-button{min-height:44px;font-size:10px}footer{font-size:8px}dialog{padding:22px}dialog h2{font-size:27px}}@media(max-width:360px){.brand{font-size:18px}.game-toolbar nav{gap:9px}.game-toolbar nav .text-button{font-size:9px}}@media(max-width:760px),(pointer:coarse)and (max-height:600px){#solutions .solution-section{margin-top:12px;padding-top:12px}#solutions .solution-section h3{font-size:12px;margin-bottom:8px}#solutions .solution-chain{gap:7px 10px}#solutions .solution-card{width:26px;height:30px;padding:3px;border-radius:4px;font-size:11px;box-shadow:0 2px #10192b}#solutions .solution-chain li:not(:last-child):after{right:-9px;top:8px;font-size:9px}.dialog-top{position:absolute;top:6px;right:6px;margin:0}dialog>h2{padding-right:44px;min-height:32px}.close-button{position:relative;isolation:isolate;padding:0;border:0;background:none;font-size:20px;line-height:1}.close-button:before{content:"";position:absolute;inset:6px;z-index:-1;border:1px solid #3c4965;border-radius:6px;background:#242d44}}.game-shell{overflow:clip;border:1px solid #34415c;border-radius:13px;background:#171d2f;box-shadow:0 14px 60px #0003}.game-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:72px;padding:12px 20px 16px;position:relative;background:#1c2438;border-bottom:1px solid #35415a}#hint-button{min-width:72px}.cards .state-card.hinted,.state-card.hinted{border:2px solid #ffe38b;box-shadow:0 0 0 3px #ffe38b35,0 0 22px #ffe38b40;animation:hint-glow 1.2s ease-in-out infinite alternate}.hint-controls{display:flex;align-items:center;gap:12px}#hint-cost{color:#ffe38b;font-size:10px}@keyframes hint-glow{to{box-shadow:0 0 0 5px #ffe38b25,0 0 30px #ffe38b55}}.trip-stats{display:flex;gap:28px;margin-left:auto}.trip-stats>div{min-width:85px}.stat-label{display:block;font-size:8px;color:#8092ae;letter-spacing:1.5px;font-weight:800;margin-bottom:3px}.trip-stats strong{font-size:28px;font-weight:900;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-1px}.trip-stats small{font-size:11px;font-weight:500;color:#8092ae;letter-spacing:0}#score{display:inline-block;color:var(--blue);transform-origin:left center}.try-challenging{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;margin:16px 0;cursor:pointer}.try-challenging input{appearance:none;flex:0 0 48px;width:48px;height:28px;border-radius:20px;border:2px solid #657692;background:radial-gradient(circle at 12px 50%,var(--ink) 8px,transparent 9px) #26334c;cursor:pointer}.try-challenging input:checked{background:radial-gradient(circle at 32px 50%,#101320 8px,transparent 9px) var(--blue)}.try-challenging input:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.board-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(0,1.6fr)}.section-label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.section-label h2{margin:0;color:#b5c4df;font-size:11px;font-weight:800}.section-label>span{color:#6f84a4;font-size:8px;letter-spacing:.6px}.hand{padding:18px;border-right:1px solid #2e3c56;background:#1a2235}.cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;perspective:900px}.state-card{display:flex;flex-direction:column;justify-content:space-between;text-align:left;min-width:0;height:85px;position:relative;overflow:hidden;border:1px solid #42526e;border-radius:7px;background:linear-gradient(145deg,#303e58,#222d44);padding:7px;box-shadow:0 3px #10192b;transition:border-color .18s,background .18s,translate .18s,box-shadow .18s;isolation:isolate}.state-card:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(125deg,transparent 20%,#c1e4ff09 40%,transparent 60%)}.state-card.coastal{background:linear-gradient(145deg,#244b77,#203958);border-color:#398cff}.cards .state-card.coastal.coastal-intro:before{content:"";position:absolute;inset:-25% 0;pointer-events:none;background:linear-gradient(105deg,transparent 25%,#d5eaff80 50%,transparent 75%);animation:coastal-shine 4.8s .6s infinite both}@keyframes coastal-shine{0%{transform:translate(-150%)}25%,to{transform:translate(150%)}}.state-card:not(.placed):not(:disabled):hover{translate:0 -4px;border-color:var(--cyan);box-shadow:0 3px #10192b,0 0 20px #68e9ef18}.state-card:not(.placed):active{translate:0 1px}.card-top{display:flex;align-items:center;justify-content:space-between;gap:3px;color:#8ca2c3;font-size:5px;letter-spacing:.5px;font-weight:800}.coastal .card-top>span:first-child{color:var(--blue)}.card-points{color:#c6ddf2;font-size:11px;white-space:nowrap;letter-spacing:0}.card-points small{font-size:5px;letter-spacing:0}.state-card>strong{text-align:center;font-size:27px;font-weight:900;letter-spacing:-1px;line-height:1;color:#e6efff}.card-name{color:#9fb0cb;font-size:8px;letter-spacing:-.2px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.state-card.placed{border:1px dashed #3b4a61;background:#171f31;box-shadow:none}.state-card.hard,.state-card.hard:not(.placed):not(:disabled):hover{border-color:#ffd279}.state-card.placed>strong,.state-card.placed .card-name,.state-card.placed .card-top,.state-card.placed .card-points{color:#5f728f}.card-check{display:none;position:absolute;right:7px;bottom:25px;color:var(--blue);font-size:12px}.placed .card-check{display:block}.map-panel{display:flex;flex-direction:column;min-width:0;padding:18px 20px 14px;background:radial-gradient(ellipse at 50% 40%,#202b45,#141c2f 80%)}.map-wrap{position:relative;flex:1;display:flex;align-items:center;justify-content:center;padding:10px 0 70px;min-height:300px;background-image:linear-gradient(#7086b608 1px,transparent 1px),linear-gradient(90deg,#7086b608 1px,transparent 1px);background-size:32px 32px;border-radius:9px;overflow:clip}#map{width:100%;position:relative;z-index:1}#map>svg{width:100%;height:auto;display:block;overflow:visible}.map-state path{fill:#34445f;stroke:#1b2942;stroke-width:1.8;stroke-linejoin:round;fill-rule:evenodd;transition:fill .2s,stroke .2s}.map-state.on-route path{fill:#416faa;stroke:#6ab5ff}.coastline{fill:none;stroke:var(--blue);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;filter:drop-shadow(0 0 2px #398cff70)}.coastline path{vector-effect:non-scaling-stroke}.map-state.sweep-danger path{fill:#62313b;stroke:#92515e;animation:sweep-danger-pulse 1.2s ease-in-out infinite}@keyframes sweep-danger-pulse{0%,to{fill:#62313b;stroke:#92515e}50%{fill:#8b3d49;stroke:#b36b78}}.sweep-layer{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}.sweep-shade{position:absolute;top:0;bottom:0;width:var(--sweep-progress);background:#050914a6}.sweep-layer[data-direction=east] .sweep-shade{left:0}.sweep-layer[data-direction=west] .sweep-shade{right:0}.sweep-line{position:absolute;top:0;bottom:0;width:3px;translate:-50% 0;background:#ff4940;box-shadow:0 0 6px #ff393980}.sweep-line.sweep-entering{box-shadow:0 0 8px #ff5a4a,0 0 20px #ff393980}.sweep-effects{position:absolute;inset:0;overflow:hidden;pointer-events:none}.sweep-spark{position:absolute;width:2px;height:5px;translate:-50% -50%;border-radius:1px;box-shadow:0 0 5px #ff784ac0}.sweep-impact{position:absolute;width:22px;height:10px;translate:-50% -50%;border:2px solid #ffab7a;border-radius:50%;box-shadow:0 0 14px #ff4940b0}#sweep-over{position:absolute;inset:0;z-index:35;display:grid;place-items:center;pointer-events:none;color:#ffb1b8;font-size:clamp(36px,6vw,72px);font-weight:900;line-height:1.1;letter-spacing:.02em;text-align:center;-webkit-text-stroke:2px #000;paint-order:stroke fill;text-shadow:none;padding:12px;background:#0008}#map-chain{position:absolute;inset:0;pointer-events:none;z-index:2}.row-line{position:absolute;overflow:visible;fill:none;stroke:var(--cyan);stroke-width:3;stroke-dasharray:5 4;pointer-events:none}.map-card{position:absolute;translate:-50% -50%;rotate:var(--tilt, 0deg);pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid #96e9eb;border-radius:6px;background:linear-gradient(145deg,#1a364b8c,#11273b73);color:#edffff;box-shadow:0 3px #50828e,0 0 16px #68e9ef25,0 6px 12px #080f2580;padding:4px;transition:left .3s,top .3s,rotate .25s,box-shadow .2s}.map-card strong{font-size:clamp(17px,1.7vw,24px);font-weight:900;line-height:1;letter-spacing:-.8px}.map-card small{margin-top:7px;font-size:6px;letter-spacing:.5px;color:#c5eef0;font-weight:800}.map-card-corner{position:absolute;top:3px;left:4px;font-size:6px;color:#c5eef0;font-weight:800}.map-card.chain-tip{box-shadow:0 3px #50828e,0 0 0 2px #68e9ef60,0 0 25px #68e9ef35,0 6px 12px #080f2580}.map-card:hover:not(:disabled),.map-card:focus-visible{z-index:29!important;rotate:0deg;box-shadow:0 3px #50828e,0 0 0 3px #c3fffd,0 0 30px #68e9ef55}.map-card:disabled{opacity:1}.map-card.hard,.solution-card.hard,#result-route .solution-card.hard{border-color:#ffd279}.bonus-star,.solution-card .bonus-star{position:absolute;top:2px;right:3px;color:#ffd279;font-size:9px;line-height:1;pointer-events:none}.state-card .card-top .bonus-star{position:static;display:inline-block;font-size:8px}.map-card:not(.hard) .bonus-star{display:none}.solution-card{position:relative}.loading #message:before{content:"";display:inline-block;width:12px;height:12px;margin-right:8px;border:2px solid #78859f;border-top-color:var(--cyan);border-radius:50%;vertical-align:-1px;animation:loading-spin .8s linear infinite}@keyframes loading-spin{to{transform:rotate(360deg)}}.map-messages{position:absolute;bottom:8px;left:8px;right:8px;z-index:30;display:grid;justify-items:center;gap:3px;text-align:center;pointer-events:none}.message-wrap{max-width:540px}#message{margin:0;font-size:15px;line-height:1.4;color:#c4d3e9;text-wrap:pretty}.message-wrap.error #message{color:#ffafbb}.game-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}#arena-effects{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden}.flying-card{position:fixed!important;margin:0!important;translate:none!important;rotate:none!important;pointer-events:none!important;z-index:1;box-shadow:0 0 18px #68e9ef55,0 0 42px #a995ff30}.landing-spark{position:absolute;color:var(--cyan);font-size:19px;translate:-50% -50%;text-shadow:0 0 12px #68e9ef90}.landing-spark:nth-child(3n){color:var(--blue)}.landing-spark:nth-child(3n+1){color:var(--purple)}.score-pop{position:absolute;translate:-50% -50%;color:var(--blue);font-size:22px;font-weight:900;font-style:italic;white-space:nowrap;text-shadow:0 2px 0 #182a38,0 0 14px #398cff80;-webkit-text-stroke:.3px #d5eaff}.impact-ring{position:absolute;width:58px;height:58px;translate:-50% -50%;border:2px solid var(--blue);border-radius:50%;box-shadow:0 0 15px #68e9ef60,inset 0 0 12px #68e9ef30}.energy-gem{position:absolute;width:7px;height:7px;background:var(--blue);rotate:45deg;border:1px solid #d5eaff;box-shadow:0 0 12px var(--blue)}.chain-callout{position:absolute;top:16%;left:50%;translate:-50% 0;z-index:35;text-align:center;color:var(--blue);font-size:clamp(15px,2.3vw,30px);font-weight:900;font-style:italic;letter-spacing:-.5px;white-space:nowrap;text-shadow:0 3px 0 #132639,0 0 25px #398cff60;pointer-events:none}.chain-callout small{display:block;font-size:9px;letter-spacing:2px;color:var(--cyan);font-style:normal;margin-top:7px}@media(min-width:1500px){.state-card{height:92px}}@media(max-width:1000px){.board-layout{grid-template-columns:320px minmax(0,1fr)}.hand{padding:14px}.state-card{padding:6px}.card-name{font-size:7px}.card-top{font-size:4px}.state-card>strong{font-size:24px}.map-panel{padding:16px}.map-wrap{min-height:260px}}@media(max-width:760px){.game-toolbar{flex-wrap:wrap;padding:8px;gap:8px}.board-layout{display:flex;flex-direction:column}.map-panel{order:-1;padding:4px 12px 8px;border-bottom:1px solid #35425b}.map-wrap{min-height:0;padding:0 3px 60px}.map-card strong{font-size:19px}.hand{padding:12px;max-height:min(360px,43dvh);overflow-y:auto;overscroll-behavior-y:contain;scrollbar-color:#42526e #1a2235;border-right:0}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.state-card{height:79px;padding:7px}.state-card>strong{font-size:27px}.card-top{font-size:5px}.card-name{font-size:8px}#message{font-size:13px}}@media(pointer:coarse)and (max-width:650px),(pointer:coarse)and (max-height:600px)and (orientation:landscape){body{height:100dvh;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:max(4px,env(safe-area-inset-top)) max(6px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left))}.site-header{display:flex;flex:0 0 44px;height:44px;padding:0 4px;gap:8px}.site-header .brand-links,.account-label{display:none}.score-links{gap:8px}.site-header .text-button{font-size:10px}#account-name{max-width:120px;min-width:0}main{width:100%;flex:1;min-height:0;padding:0;position:relative}.game-shell{height:100%;display:flex;flex-direction:column;border-radius:8px}.game-toolbar{flex:0 0 auto;flex-wrap:nowrap;min-height:52px;gap:8px;padding:4px 8px}.game-toolbar nav,.hint-controls,.game-actions{gap:4px}.game-toolbar button{min-width:44px;min-height:44px;padding:6px 10px;font-size:11px}#hint-button{min-width:44px}.scores-label{display:none}.trip-stats>div{min-width:48px}.trip-stats strong{font-size:22px}.stat-label{font-size:6px;margin-bottom:2px}.board-layout{flex:1;min-height:0;display:grid;grid-template-columns:minmax(298px,36%) minmax(0,1fr)}.hand{min-height:0;max-height:none;padding:6px;overflow-y:auto;overscroll-behavior-y:contain;border-right:1px solid #2e3c56}.section-label{margin-bottom:6px}.section-label h2{font-size:10px}.cards{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.state-card{height:clamp(44px,calc((100dvh - 200px)/4),68px);min-height:44px;padding:4px;border-radius:5px}.state-card>strong{font-size:21px}.card-top{font-size:4px;letter-spacing:0}.card-points{font-size:9px}.card-name{font-size:6px}.card-check{right:3px;bottom:12px;font-size:9px}.map-panel{order:0;min-height:0;padding:6px;border-bottom:0}.map-wrap{min-height:0;padding:0 0 72px}#map{width:min(100%,calc((100dvh - 238px) * 870 / 560));max-height:100%}.map-card strong{font-size:18px}#message{font-size:13px}#hint-cost{font-size:12px}.storage-warning{position:absolute;bottom:0;right:0;z-index:40;margin:0;padding:4px 8px;font-size:10px}dialog{padding:16px}.dialog-top{margin:0}}@media(pointer:coarse)and (max-width:360px)and (orientation:portrait){.game-shell .game-toolbar{gap:2px;padding-inline:2px}}@media(pointer:coarse)and (max-width:650px)and (orientation:portrait){.game-toolbar{gap:4px;padding-inline:4px}.game-toolbar button{font-size:10px;padding-inline:4px}.game-toolbar nav,.hint-controls,.game-actions{gap:2px}.game-actions{margin-left:auto}#sound-button{font-size:0}#sound-button:before{content:"\266a";font-size:22px}#sound-button[aria-pressed=false]:before{text-decoration:line-through}.trip-stats{position:static;margin-left:4px;flex-shrink:0}.board-layout{display:flex;flex-direction:column}.map-panel{order:-1;flex:1 0 max(calc(50dvh - 96px),calc((100vw - 26px) * 560 / 870 + 12px));min-height:120px}.map-wrap{align-items:flex-start;padding-bottom:0}#map{width:100%;max-height:none}.hand{flex:0 1 auto;max-height:none;border-right:0;border-top:1px solid #2e3c56}.cards{grid-template-columns:repeat(6,minmax(0,1fr))}.state-card{height:clamp(44px,calc(8.5dvh - 11px),61px)}}@media(pointer:coarse)and (max-width:650px)and (min-height:700px)and (orientation:portrait){#message{line-height:1.25}}@media(pointer:coarse)and (max-height:600px)and (orientation:landscape)and (max-width:740px){.board-layout{grid-template-columns:250px minmax(0,1fr)}.cards{grid-template-columns:repeat(5,minmax(0,1fr))}.game-toolbar{gap:4px}.game-toolbar button{padding-inline:6px}}.easy .cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.easy .state-card{height:150px;padding:28px 12px;align-items:center;justify-content:center}.easy .card-name{position:relative;z-index:1;width:100%;text-align:center;font-size:22px;font-weight:800;line-height:1.1;color:var(--ink);white-space:normal;overflow-wrap:anywhere;text-overflow:clip;letter-spacing:0}.easy .card-top{z-index:1;position:absolute;inset:8px 8px auto}.card-seal{position:absolute;z-index:0;top:50%;left:50%;width:min(80%,120px);height:calc(100% - 12px);object-fit:contain;transform:translate(-50%,-50%);opacity:.12;pointer-events:none;user-select:none}.state-card>.card-top,.state-card>strong,.state-card>.card-name{z-index:1}.game-shell:not(.easy) .card-seal{width:min(80%,60px);height:calc(100% - 10px);opacity:.1}.easy .card-top,.easy .card-points small{font-size:8px}.easy .card-points{font-size:16px}@media(max-width:760px){.easy .state-card{height:104px;padding:26px 8px}.easy .card-name{font-size:18px}}@media(pointer:coarse)and (max-width:650px)and (orientation:portrait){.easy .map-panel{flex:1 1 0;min-height:150px}.easy .hand{flex:0 1 auto}.easy .state-card{height:clamp(104px,14dvh,125px)}.easy .cards{gap:6px}}@media(pointer:coarse)and (max-height:600px)and (orientation:landscape){.easy .state-card{height:clamp(96px,26dvh,120px);padding:24px 6px}.easy .card-name{font-size:18px}}@media(max-width:360px){.easy .card-name{font-size:16px}}.medium .cards{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:761px)and (pointer:fine){.medium .cards{grid-template-columns:repeat(2,minmax(0,1fr))}}.medium .card-name{font-size:18px}@media(max-width:760px){.medium .card-name{font-size:14px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}:root{color:var(--ink);background:var(--page);color-scheme:dark;--page: #08090b;--ink: #f3f1ed;--muted: #abb8ce;--blue: #6ab5ff;--line: #398cff;--cyan: var(--blue);--button-blue: #1669d6;--purple: #d69ba2;--red: #bc737e;--surface: #111315;--surface-raised: #1c1f23;--surface-soft: #15171a;--card-top: #1b1e23;--card-bottom: #1b1e23;--card-border: var(--line);--coast-top: #15395f;--coast-bottom: #15395f;--coast-border: var(--line);--coast-ink: var(--blue);--placed: #141619;--placed-ink: #8497b4;--map-center: #0c0e11;--map-edge: #0c0e11;--map-fill: #2b3038;--map-stroke: #4b5058;--route-fill: #587da9;--route-stroke: var(--line);--chain-top: rgb(20 23 27 / 80%);--chain-bottom: rgb(20 23 27 / 80%);--chain-ink: #f4f6fb;--gold: #ffd279;--hint-ink: #ffe38b;--error-ink: #f0b0ba;--grid: #8da4c70a;--page-glow: transparent;--shadow: #00000055}:root[data-theme=light]{color-scheme:light;--page: #f6f4ef;--ink: #203653;--muted: #526781;--blue: #1465cc;--line: #2475df;--cyan: var(--blue);--purple: #994b5c;--red: #a85764;--surface: #fffefa;--surface-raised: #edf1f6;--surface-soft: #f5f6f8;--card-top: #fffefa;--card-bottom: #eaf0f7;--coast-top: #e5f0ff;--coast-bottom: #d6e6fa;--placed: #e8edf3;--placed-ink: #5c7089;--map-center: #f7f8fa;--map-edge: #e9eef5;--map-fill: #c6d2e2;--route-fill: #7394bd;--chain-top: rgb(255 254 250 / 85%);--chain-bottom: rgb(226 236 248 / 80%);--chain-ink: #1e3c65;--gold: #946411;--hint-ink: #795413;--error-ink: #943a4c;--grid: #637d9f0b;--page-glow: #b6c6dd30;--shadow: #273f641a}html{color:var(--ink);background:var(--page)}body{background:radial-gradient(ellipse at 50% 0,var(--page-glow),transparent 70%)}.header-controls{display:flex;align-items:center;justify-content:flex-end;min-width:0;gap:4px}.header-controls .account-controls{flex-shrink:0}#difficulty-select{position:relative;width:112px;flex-shrink:0;height:44px;padding:0 4px;font:inherit;font-size:11px;color:var(--blue);background:transparent;border:0}#difficulty-select option{color:var(--ink);background:var(--surface-raised)}.difficulty-picker{display:flex;align-items:center;flex-shrink:0;gap:6px;min-height:44px;color:var(--muted);font-size:11px}.difficulty-box{position:relative;display:flex}.difficulty-box:before{content:"";position:absolute;inset:8px 0;border:1px solid var(--line);border-radius:3px;background:var(--surface-raised);pointer-events:none}.daily-short,.restart-icon{display:none}.theme-button{display:grid;place-items:center;width:44px;height:44px;padding:0}.text-button,dialog p,.guide,dialog .fine-print,.card-top,.card-name,.section-label h2,.section-label>span,.stat-label,.trip-stats small,.solution-section h3 span,#personal-bests dt,.record-section th,.record-section caption,.daily-note,.daily-reset,#daily-status,#profile-status,.fine-print{color:var(--muted)}.text-button:hover,.guide strong,.state-card>strong,.card-points,.map-messages #message,.map-card small,.map-card-corner,.map-card .card-name{color:var(--ink)}.brand>span:not(.brand-icon){color:var(--red)}.game-shell{border-color:var(--line);background:var(--surface);box-shadow:0 14px 60px var(--shadow)}.game-toolbar,.hand,.solution-section,.record-section,#personal-bests>div,.record-section td,.record-section th{border-color:var(--line)}.game-toolbar{background:var(--surface-soft)}.hand,dialog,#account-status:not(:empty){background:var(--surface)}.hand{scrollbar-color:var(--card-border) var(--surface)}.state-card:not(.coastal):not(.placed){background:linear-gradient(145deg,var(--card-top),var(--card-bottom))}.state-card:not(.hard):not(.hinted):not(.coastal):not(.placed){border-color:var(--card-border)}.state-card.coastal{background:linear-gradient(145deg,var(--coast-top),var(--coast-bottom))}.state-card.coastal:not(.hard):not(.hinted){border-color:var(--coast-border)}.coastal .card-top>span:first-child{color:var(--coast-ink)}.state-card.placed{background:var(--placed)}.state-card.placed>strong,.state-card.placed .card-name,.state-card.placed .card-top,.state-card.placed .card-points{color:var(--placed-ink)}.state-card,.solution-card{box-shadow:0 3px 0 var(--shadow)}.easy .card-name{color:var(--ink)}.map-panel{background:radial-gradient(ellipse at 50% 40%,var(--map-center),var(--map-edge) 80%)}.map-wrap{border:0;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px)}.map-state:not(.sweep-danger) path{fill:var(--map-fill);stroke:var(--map-stroke)}.map-state.on-route:not(.sweep-danger) path{fill:var(--route-fill);stroke:var(--map-stroke)}.coastline{stroke:var(--blue);filter:drop-shadow(0 0 2px color-mix(in srgb,var(--blue) 45%,transparent))}.map-card{border-color:var(--route-stroke);background:linear-gradient(145deg,var(--chain-top),var(--chain-bottom));color:var(--chain-ink)}.map-card small,.map-card .card-name{color:var(--chain-ink)}.secondary-button,.close-button,#display-name{color:var(--ink);background:var(--surface-raised);border-color:var(--line)}dialog{color:var(--ink);border-color:var(--line)}dialog::backdrop{background:#111d3280}.solution-card,#result-route .solution-card{color:var(--chain-ink);background:linear-gradient(145deg,var(--chain-top),var(--chain-bottom));border-color:var(--route-stroke)}.solution-card strong,.solution-card small,.solution-card span{color:inherit}.solution-chain li:not(:last-child):after{color:var(--cyan)}.state-card.hard,.state-card.hard:not(.placed):not(:disabled):hover,.map-card.hard,.solution-card.hard,#result-route .solution-card.hard{border-color:var(--gold)}.bonus-star,.solution-card .bonus-star{color:var(--gold)}.cards .state-card.hinted,.state-card.hinted{border-color:var(--hint-ink)}.sound-button[aria-pressed=false]{color:var(--muted)}#hint-cost{color:var(--hint-ink)}.map-messages .error #message{color:var(--error-ink)}:root[data-theme=light] .storage-warning{color:#6d4b16;background:#fff1d6}.try-challenging input:checked{background:radial-gradient(circle at 32px 50%,#fffefa 8px,transparent 9px) var(--button-blue);border-color:var(--line)}:root[data-theme=light] .try-challenging input:not(:checked){background:radial-gradient(circle at 12px 50%,#203653 8px,transparent 9px) #dce4ef;border-color:#8398b4}:root[data-theme=light] .sweep-shade{background:#5063803d}.text-button,.sound-button,.card-points,.card-check,.map-card-corner,#score,#record-message,#result-route .solution-section h3 span,.chain-callout,.score-pop{color:var(--blue)}.primary-button{color:#fff;background:var(--button-blue);border-color:var(--line);box-shadow:0 3px #124a95,0 0 14px #398cff18}.secondary-button,.close-button{color:var(--blue)}.state-card.placed:not(.hard):not(.hinted){border-color:var(--line)}.game-shell,dialog{border-radius:6px}.state-card,.map-card,.solution-card,.primary-button,.secondary-button,.close-button,.map-wrap,#personal-bests>div,#display-name,.storage-warning,.mode-guide,.result-stats,.result-art,#difficulty-select,.try-challenging input{border-radius:3px}:root:not([data-theme=light]) body{background:none}:root:not([data-theme=light]) .map-panel{background:var(--map-edge)}:root:not([data-theme=light]) .map-wrap{background-image:none}:root:not([data-theme=light]) .state-card:after{background:none}:root:not([data-theme=light]) dialog::backdrop{background:#0009}:root:not([data-theme=light]) .state-card:not(.placed):not(.coastal){background:var(--card-top)}:root:not([data-theme=light]) .state-card.coastal:not(.placed){background:var(--coast-top);box-shadow:inset 0 0 0 1px #6ab5ff50,0 3px 0 var(--shadow)}:root:not([data-theme=light]) .map-card,:root:not([data-theme=light]) .solution-card,:root:not([data-theme=light]) #result-route .solution-card{background:var(--chain-top)}@media(max-width:760px),(pointer:coarse)and (max-height:600px)and (orientation:landscape){.game-shell{position:relative}.game-controls{display:flex;align-items:center;gap:2px;flex-shrink:0;min-height:52px;padding:4px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.game-shell .game-toolbar{display:contents}.game-controls .hint-controls,.game-controls nav,.game-controls .game-actions{display:flex;gap:0;flex-shrink:0;margin:0}.game-controls .game-actions{margin-left:auto}.header-controls{flex:1;gap:2px}.site-header{gap:4px}#difficulty-select{width:94px;padding-left:8px;padding-right:2px}.difficulty-label{display:none}#account-name{min-width:44px;max-width:120px;flex-shrink:1}.account-label,.site-header .brand-links{display:none}.game-controls button{min-width:44px;min-height:44px;height:44px;padding:4px;font-size:10px;line-height:1}.game-controls #hint-button{min-width:44px}.game-controls button:hover{translate:none}.game-controls #sound-button{width:44px;font-size:0}#sound-button:before{content:"\266a";font-size:22px}#sound-button[aria-pressed=false]:before{text-decoration:line-through}.game-controls .trip-stats{position:absolute;top:58px;right:10px;z-index:4;margin:0;padding:4px 6px;border-radius:3px;background:var(--chain-top);pointer-events:none}.game-controls .trip-stats>div{min-width:0}.map-card{border-width:1px;padding:3px}.map-card strong{font-size:16px}.map-card small{margin-top:5px}}@media(max-width:360px){.game-controls #new-game{width:44px;font-size:0}.game-controls #new-game .new-game-label{display:none}.game-controls #new-game .restart-icon{display:block;flex-shrink:0}}@media(max-width:400px){.site-header{padding-inline:4px}.site-header .text-button{font-size:10px}.score-links{gap:4px}.score-links .text-button span{margin:0}.daily-full{display:none}.daily-short{display:inline}}
