@font-face{font-family:Inter;src:url(/fonts/Inter-Regular.ttf) format("truetype");font-weight:400 600;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Bold.ttf) format("truetype");font-weight:700 900;font-display:swap}:root{font-family:Inter,Arial,sans-serif;color:#405366;background:#faf9f5;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:300px;background:#faf9f5}button{font:inherit;cursor:pointer}button:focus-visible,[role=button]:focus-visible{outline:3px solid #7891ab;outline-offset:3px}#app{min-height:100dvh}.home-screen{min-height:100dvh;display:grid;place-items:center;padding:30px 22px;background:#faf9f5}.home-inner{text-align:center;max-width:500px;width:100%}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.21em;color:#7891ab}.hero-icon{display:block;width:154px;height:154px;padding:0;margin:17px auto 20px;border:0;border-radius:28px;background:#fff;overflow:hidden;box-shadow:0 10px 28px #40536616}.hero-icon img{display:block;width:100%;height:100%;object-fit:cover}.hero-icon:hover{box-shadow:0 13px 30px #4053662b}.hero-title{font:700 clamp(43px,10vw,68px)/1 Arial,Helvetica,sans-serif;letter-spacing:.19em;color:#405366;margin:0 0 10px}.brand-subtitle{font-size:11px;letter-spacing:.33em;color:#7891ab;font-weight:700}.hero-copy{font-size:16px;color:#64788b;margin:24px 0 36px}.home-actions{display:grid;gap:12px}.primary-button,.secondary-button{width:100%;border-radius:16px;min-height:57px;padding:14px 22px;font-weight:700;border:1px solid transparent;display:flex;align-items:center;justify-content:center;position:relative}.primary-button{background:#7891ab;color:#fff;box-shadow:0 7px 16px #4053662e}.primary-button:hover{background:#657f99}.primary-button span{position:absolute;right:22px;font-size:21px;font-weight:400}.secondary-button{color:#405366;border-color:#d8dee5;background:#fff}.secondary-button:hover{background:#f5f8fa}:where(.primary-button,.secondary-button):disabled{opacity:.6;cursor:wait}.home-summary{display:flex;align-items:center;justify-content:center;gap:30px;margin:46px 0 28px}.home-summary>div:not(.summary-divider){display:flex;flex-direction:column;min-width:92px}.summary-number{font:700 31px Arial,Helvetica,sans-serif;color:#405366}.summary-number small{font:500 15px Inter,Arial,sans-serif;color:#8b929d}.summary-label{font-size:10px;letter-spacing:.14em;color:#7891ab;font-weight:700;margin-top:5px}.summary-divider,.metric-divider{height:38px;width:1px;background:#d8dee5}.home-links{display:flex;gap:13px;justify-content:center;align-items:center;color:#8b929d;margin-top:8px}.home-links button{border:0;background:none;color:#64788b;font-size:13px;padding:8px}.content-screen{max-width:680px;margin:0 auto;padding:20px 22px 60px;min-height:100dvh}.topbar{display:flex;align-items:center;justify-content:space-between;height:56px}.icon-button{border:1px solid #e1e5e9;border-radius:50%;background:#fffefa;color:#405366;width:44px;height:44px;display:grid;place-items:center;font-size:22px}.brand-small{font-size:10px;letter-spacing:.2em;font-weight:700;color:#7891ab}.page-title{font:700 clamp(35px,7vw,48px) Arial,Helvetica,sans-serif;letter-spacing:-.04em;margin:36px 0 8px;color:#405366}.subtitle{margin:0 0 30px;color:#8b929d;line-height:1.55}.level-list{display:grid;gap:12px}.level-card{width:100%;border:1px solid #d8dee5;background:#fff;box-shadow:0 4px 12px #4053660d;border-radius:19px;display:flex;gap:18px;align-items:center;text-align:left;padding:17px;color:#405366}.level-card:not(:disabled):hover{border-color:#7891ab;transform:translateY(-2px)}.level-card.locked{opacity:.55;cursor:not-allowed}.level-number{font:700 30px Arial,Helvetica,sans-serif;color:#7891ab;width:42px}.level-info{flex:1;display:grid;gap:5px}.level-info strong{font-size:16px}.level-info small{font-size:12px;color:#8b929d}.level-end{font-size:22px;color:#7891ab}.settings-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px;background:#fff;border:1px solid #d8dee5;border-radius:18px;margin-bottom:12px}.settings-card>div{display:grid;gap:5px}.settings-card strong{font-size:15px}.settings-card small,.settings-value{font-size:12px;color:#8b929d}.toggle{width:54px;height:30px;border-radius:20px;border:0;background:#d8dee5;padding:4px;text-align:left;flex:0 0 auto}.toggle span{display:block;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #40536622;transition:transform .2s}.toggle.on{background:#7891ab}.toggle.on span{transform:translate(24px)}.text-danger{margin:22px 0 0;padding:12px 0;border:0;background:none;color:#d64b42;text-decoration:underline}.fineprint{font-size:12px;color:#8b929d;line-height:1.5}.settings-screen{min-height:100dvh;display:grid;place-items:center;padding:16px;background:#faf9f5}.settings-panel{width:min(92vw,520px);aspect-ratio:800/1280;position:relative;display:flex;flex-direction:column;align-items:center;padding:clamp(35px,7vw,54px) clamp(25px,6vw,48px) 30px;background:#fff url(/ui/settings/modal-frame-tall-blank.png) center/100% 100% no-repeat;color:#405366}.settings-panel h1{font:700 clamp(24px,5vw,36px)/1 Arial,Helvetica,sans-serif;letter-spacing:.28em;margin:38px 0 6px;padding-left:.28em}.settings-ornament{color:#d8dee5;font-size:25px;line-height:1;margin-bottom:20px}.settings-close{position:absolute;right:clamp(21px,5vw,42px);top:clamp(20px,5vw,36px);width:50px;height:50px;padding:0;border:0;background:transparent}.settings-close img{width:100%;height:100%;object-fit:contain}.settings-rows{width:100%;display:grid;gap:8px}.settings-art-row{width:100%;aspect-ratio:660/112;min-height:54px;padding:4px 14px;display:flex;align-items:center;gap:14px;border:0;background:transparent url(/ui/settings/row-blank.png) center/100% 100% no-repeat;color:#405366;text-align:left}.settings-row-icon{width:42px;height:42px;flex:0 0 auto;object-fit:contain}.settings-art-row span{flex:1;font-size:clamp(13px,2.6vw,18px);font-weight:600}.settings-row-toggle{width:clamp(64px,16vw,84px);height:auto;object-fit:contain}.settings-actions{display:flex;width:100%;gap:10px;margin-top:20px}.settings-actions button{flex:1;min-height:45px;border:1px solid #d8dee5;border-radius:12px;background:#fff;color:#405366;font-weight:700}.settings-panel .text-danger{margin:10px 0 0;font-size:12px}.settings-panel .fineprint{text-align:center;margin:7px 0 0;max-width:360px;font-size:10px}@media(max-width:430px){.settings-panel{padding:35px 27px 28px}.settings-panel h1{margin-top:35px}.settings-ornament{margin-bottom:14px}.settings-rows{gap:6px}.settings-art-row{padding:3px 11px;gap:8px}.settings-row-icon{width:35px;height:35px}}.help-step{display:flex;gap:22px;padding:21px 0;border-bottom:1px solid #d8dee5}.help-step>span{font:700 23px Arial,Helvetica,sans-serif;color:#7891ab}.help-step strong{font-size:16px}.help-step p{color:#8b929d;line-height:1.55;font-size:14px;margin:7px 0 0}.help-play{margin-top:34px}.game-screen{max-width:520px;margin:0 auto;min-height:100dvh;padding:10px 18px 18px;display:flex;flex-direction:column}.game-header{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:56px}.game-heading{text-align:center}.game-heading h1{font:700 20px Arial,Helvetica,sans-serif;margin:3px 0 0}.game-heading .eyebrow{font-size:9px}.game-metrics{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 10px}.heart-pill,.score-pill,.timer-pill{font-size:17px;font-weight:700}.heart-pill{color:#d64b42}.heart-pill b{color:#405366;margin-left:4px}.heart-pill small,.score-pill small{font-size:11px;color:#8b929d}.score-pill small{letter-spacing:.1em;margin-left:4px}.timer-pill{font-variant-numeric:tabular-nums;color:#405366}.game-metrics .metric-divider{height:21px}.minor-control{background:transparent;border:1px solid #d8dee5;border-radius:12px;color:#64788b;font-size:11px;padding:5px 8px}.board-wrap{width:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:0;position:relative}.board-kicker{font-size:10px;letter-spacing:.18em;color:#7891ab;font-weight:700;margin:0 0 8px}.board.mobile-board{width:min(100%,calc(71dvh * var(--board-ratio)));height:auto;max-width:680px;border:0;border-radius:0;background:#fff;box-shadow:none;overflow:hidden;position:relative;touch-action:none}.board.mobile-board svg{width:100%;height:100%;display:block;overflow:hidden;transform-origin:center center}.board-progress{font-size:12px;color:#8b929d;margin:12px 0 4px}.board-zoom{display:flex;gap:6px;margin-top:7px}.board-zoom button{width:25px;height:25px;border:1px solid #d8dee5;border-radius:8px;background:#fff;color:#405366;font-size:17px;line-height:1}.game-footer{display:flex;justify-content:space-around;gap:3px;width:100%;margin-top:8px}.tool-button{display:grid;justify-items:center;gap:2px;min-width:66px;position:relative;background:none;border:0;color:#596b7c;padding:3px}.tool-button>span{display:grid;place-items:center;width:58px;height:58px;background:transparent;border:0;box-shadow:none;position:relative}.tool-button img{width:100%;height:100%;object-fit:contain;display:block}.tool-badge{position:absolute;right:-2px;top:0;min-width:18px;height:18px;padding:1px 3px;border-radius:12px;background:#d64b42;color:#fff;font:700 11px/16px Arial,sans-serif;text-align:center}.tool-button small{font-size:10px;font-weight:700;letter-spacing:.08em;color:#596b7c}.notice{text-align:center;color:#8b929d;font-size:12px;min-height:30px;margin:4px 0 0}.modal-backdrop{position:fixed;inset:0;background:#2021237a;display:grid;place-items:center;padding:20px;z-index:5}.modal{width:min(100%,380px);background:#fff;border:1px solid #d8dee5;border-radius:28px;padding:29px;text-align:center;box-shadow:0 25px 70px #20212355}.modal-symbol{font:42px Arial,sans-serif;color:#7891ab}.modal h2{font:700 32px Arial,Helvetica,sans-serif;margin:9px 0;color:#405366}.modal p{color:#8b929d;line-height:1.5;font-size:14px;margin:0 0 27px}.modal .secondary-button{margin-top:10px}.completion-stars{font-size:29px;letter-spacing:5px;color:#7891ab;margin:-7px 0 13px}.completion-score{font-size:13px;color:#8b929d;margin-bottom:24px}.completion-score strong{color:#405366;margin-left:5px}@media(max-height:700px){.game-screen{padding-top:5px}.game-metrics{margin:6px 0}.board.mobile-board{width:min(100%,calc(60dvh * var(--board-ratio)))}.board-kicker{margin:0 0 5px}.board-progress{margin:5px 0}.notice{margin:4px 0 0}}@media(max-width:380px){.game-screen{padding-left:10px;padding-right:10px}.game-footer{gap:1px}.hero-title{font-size:48px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.board.mobile-board{width:min(100%,calc(72dvh * var(--board-ratio)));height:auto;max-width:680px;border:0;border-radius:0;background:#fff;box-shadow:none;overflow:hidden;touch-action:manipulation}.board.mobile-board svg{width:100%;height:100%;overflow:hidden}.board.mobile-board .board-dot{fill:#8b929d;opacity:.34}.board.mobile-board .board-obstacle{fill:#405366}.board.mobile-board .board-path-guide{fill:none;stroke:#2f7145;stroke-width:2.64;stroke-linecap:round;stroke-linejoin:round;opacity:.18}.board.mobile-board .board-arrow{color:#405366;cursor:pointer;filter:drop-shadow(0 2px 1px #40536624);outline:none}.board.mobile-board .board-arrow.color-mode{color:var(--arrow-color, #405366)}.board.mobile-board .board-arrow-stem{fill:none;stroke:currentColor;stroke-width:5.28;stroke-linecap:round;stroke-linejoin:round}.board.mobile-board .board-arrow-head{fill:currentColor;stroke:currentColor;stroke-width:.7;stroke-linejoin:round}.board.mobile-board .board-arrow-hit{fill:none;stroke:transparent;stroke-width:17.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:stroke}.board.mobile-board .board-arrow.hinted{color:#7891ab;filter:drop-shadow(0 0 6px #bba165);animation:board-hint-breathe 1.4s ease-in-out infinite}.board.mobile-board .board-arrow.blocked{color:#ff3d45}.board.mobile-board .board-arrow:focus,.board.mobile-board .board-arrow:focus-visible{outline:none!important}.board.mobile-board .board-arrow:focus-visible{filter:drop-shadow(0 0 5px #7891ab)}@keyframes board-hint-breathe{50%{opacity:.72}}@media(prefers-reduced-motion:reduce){.board.mobile-board .board-arrow.hinted{animation:none}}.reduced-motion .board.mobile-board .board-arrow.hinted{animation:none}
