:root{--paper:#fbf8f0;--ink:#253f36;--muted:#69796f;--green:#206653;--line:#e1e4d7;--cream:#fffdf7;--peach:#f4ddcc;--sage:#dfe9dd;--lavender:#e4deee;--radius:24px;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-synthesis:none;color:var(--ink);background:var(--paper)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;font-size:16px;line-height:1.7}img,svg{max-width:100%;height:auto}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:var(--green);text-underline-offset:4px}a:hover{color:#114832}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #298772;outline-offset:4px}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3{line-height:1.18;letter-spacing:-.045em}h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500}h1{font-size:clamp(38px,5vw,66px)}h2{font-size:clamp(29px,3.1vw,43px)}h3{font-size:22px;letter-spacing:-.025em}p{margin-bottom:1.15em}ul,ol{padding-left:1.5em}li{margin:.45em 0}strong{font-weight:650}[hidden]{display:none!important}::selection{background:#d4e6d6}
.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:750;text-transform:uppercase;line-height:1.5;color:var(--green);margin-bottom:15px}.button,.nav-play{display:inline-flex;align-items:center;justify-content:center;gap:25px;background:var(--green);color:white;text-decoration:none;border-radius:11px;padding:14px 22px;font-size:14px;font-weight:650;transition:transform .2s,background .2s}.button:hover,.nav-play:hover{color:white;background:#154e3e;transform:translateY(-2px)}.button span{font-size:21px}.text-link,.card-link{font-size:13px;font-weight:650}.skip-link{position:fixed;left:16px;top:-70px;z-index:100;background:var(--green);color:white;padding:10px 20px}.skip-link:focus{top:12px}
.site-header{height:90px;position:sticky;top:0;background:#fbf8f0f5;backdrop-filter:blur(12px);border-bottom:1px solid #ebe9de;z-index:20}.header-inner{max-width:1280px;margin:auto;padding:0 40px;height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;gap:9px;align-items:center;text-decoration:none;color:var(--ink);flex-shrink:0}.brand>span{font-family:Georgia,serif;font-weight:600;font-size:25px;letter-spacing:-.04em}.brand-accent{color:var(--green)}.brand small{display:block;font-family:system-ui,sans-serif;font-size:9px;letter-spacing:.09em;font-weight:400;color:var(--muted);margin-top:-2px}.brand img{width:42px;height:50px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:27px}.site-header nav>a{font-size:12px;text-decoration:none;font-weight:600;white-space:nowrap}.site-header nav>a[aria-current]{position:relative}.site-header nav>a[aria-current]:after{content:"";height:4px;width:4px;background:var(--green);border-radius:50%;position:absolute;bottom:-8px;left:50%}.nav-play{padding:10px 16px;gap:14px}.menu-toggle{display:none;background:none;border:0;padding:8px;font-size:13px}
.home-hero{max-width:1440px;margin:auto;min-height:468px;background:url('/assets/whisker-desk.webp') center right/cover no-repeat;position:relative}.hero-content{max-width:1200px;margin:auto;padding:58px 40px 44px}.hero-content h1{font-size:64px;line-height:1.06;letter-spacing:-.047em;margin-bottom:19px}.hero-content h1 em{color:var(--green);font-weight:500}.hero-content>p:not(.eyebrow){font-size:15px;line-height:1.8;color:#53695d;margin-bottom:24px}.status-dot{display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:100%;background:#7a9e7c;box-shadow:0 0 0 4px #7a9e7c16}.hero-tags{display:flex;gap:18px;font-size:10px;color:#637667;margin-top:20px}.hero-tags span:before{content:'✓';color:#538a70;margin-right:5px}.section-wrap{max-width:1200px;margin:0 auto;padding-left:40px;padding-right:40px}.play-section{padding-top:40px;padding-bottom:50px}.section-kicker{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-kicker .eyebrow{margin:0}.section-kicker>span{font-family:Georgia,serif;font-style:italic;font-size:13px;color:var(--muted)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:30px;align-items:start}.play-aside{padding-top:8px}.rule-card{border:1px solid var(--line);border-radius:var(--radius);padding:28px 27px;background:#f1f4e9}.handwritten{display:block;font:italic 13px Georgia,serif;color:#788f74;margin-bottom:17px}.rule-card h2{font-size:32px;margin-bottom:24px}.rule-card ol{margin:0 0 26px;padding:0;list-style:none}.rule-card li{display:flex;gap:16px;margin:18px 0;align-items:center}.rule-card li>b{font-size:11px;font-weight:500;border:1px solid #cbd9c8;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;flex-shrink:0;color:#738c75}.rule-card li strong{font-size:13px}.rule-card li p{font-size:11px;margin:2px 0 0;color:var(--muted)}.rule-card>a{font-size:12px;font-weight:600}.tiny-note{margin-top:25px;display:flex;gap:17px;align-items:center;padding:10px 6px}.tiny-note img{width:72px;object-fit:contain}.tiny-note strong{font:500 20px Georgia,serif}.tiny-note p{font-size:12px;line-height:1.5;color:var(--muted);margin:6px 0}.tiny-note a{font-size:11px}.practice-note{font-size:11px;color:var(--muted);margin-top:17px;max-width:700px}.loading-note{padding:50px;text-align:center}.guide-section{padding-top:52px;padding-bottom:50px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading>p{max-width:290px;font-size:13px;color:var(--muted);margin:0 0 3px}.section-heading .text-link{white-space:nowrap;padding-bottom:5px}.guide-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.guide-card{display:flex;flex-direction:column;border-radius:var(--radius);padding:28px;text-decoration:none;color:var(--ink);transition:transform .2s,box-shadow .2s}.guide-card:hover,.featured-card:hover,.level-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #2645370c}.peach{background:#f2e1d5}.sage{background:#e3eadc}.lavender{background:#e6e1ed}.card-icon{font-size:30px;line-height:1.2;margin:0 0 24px;color:#51776b}.guide-card .eyebrow{font-size:9px;letter-spacing:.13em}.guide-card h3{font:500 29px Georgia,serif;letter-spacing:-.03em}.guide-card p{font-size:13px;line-height:1.7;color:#637268}.card-link{margin-top:auto;color:var(--green)}.featured-section{padding-top:34px;padding-bottom:60px}.featured-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.featured-card{display:block;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink);padding:19px;transition:transform .2s,box-shadow .2s}.featured-board{max-width:210px;margin:0 auto 17px}.featured-card .eyebrow{font-size:9px;letter-spacing:.1em}.featured-card h3{font-size:19px;line-height:1.3;text-transform:none}.featured-card p{font-size:12px;color:var(--muted);line-height:1.65}.home-faq{display:grid;grid-template-columns:1fr 1.8fr;gap:70px;padding-top:55px;padding-bottom:70px;border-top:1px solid var(--line)}
.game-shell{border:1px solid #dce3d7;border-radius:25px;background:var(--cream);padding:28px 32px 19px;box-shadow:0 8px 30px #38584705}.game-header{display:flex;justify-content:space-between;gap:20px;align-items:start}.game-eyebrow{font-size:9px;letter-spacing:.16em;color:var(--green);font-weight:700;margin-bottom:8px}.game-title{font-size:30px;margin-bottom:4px}.game-subtitle{font-size:11px;color:var(--muted);margin:0}.game-stats{display:flex;gap:20px;flex-shrink:0}.game-stat small{display:block;font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.game-stat strong{font-family:Georgia,serif;font-weight:500;font-size:21px;line-height:1.6;font-variant-numeric:tabular-nums}.game-controls{display:flex;gap:14px;justify-content:space-between;align-items:end;margin:23px 0 16px}.game-field{display:flex;flex-direction:column;font-size:10px;color:var(--muted);line-height:1.4;gap:5px}.game-field select{font-size:12px;border:1px solid #dce1d4;border-radius:7px;padding:7px 28px 7px 9px;background:#fcfcf6;color:var(--ink)}.game-puzzle-switch{display:flex;gap:6px;align-items:center}.game-puzzle-switch span{font-size:11px;min-width:65px;text-align:center}.game-action{border:1px solid #dce2d6;border-radius:8px;background:#fafbf5;padding:8px 12px;font-size:11px;font-weight:600;line-height:1.5;transition:background .18s,transform .18s}.game-action:hover:enabled{background:#e9f0e4;transform:translateY(-1px)}.game-puzzle-switch .game-action{padding:5px 10px}.game-mode-bar{display:flex;gap:4px;background:#f0f3e9;padding:4px;border-radius:10px;margin:10px auto 18px;max-width:430px;justify-content:center}.game-tool{border:0;background:transparent;border-radius:7px;font-size:11px;padding:7px 16px;display:flex;align-items:center;justify-content:center;gap:7px;flex:1;min-height:34px;color:#68766b;white-space:nowrap}.game-tool[aria-pressed=true]{background:var(--cream);color:var(--green);box-shadow:0 2px 7px #46604a10}.game-tool img{width:21px;height:21px;object-fit:contain}.game-board-wrap{max-width:430px;margin:0 auto}.puzzle-board{display:grid;grid-template-columns:repeat(var(--board-size),minmax(0,1fr));border:2px solid #516557;border-radius:10px;overflow:hidden;background:#516557;aspect-ratio:1;user-select:none;touch-action:manipulation}.puzzle-cell{padding:0;background:var(--region-color);border:1px solid #ffffff5c;border-radius:0;position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1;line-height:1;transition:filter .12s,box-shadow .12s;min-width:0;min-height:0}.puzzle-cell:hover{filter:brightness(1.04);box-shadow:inset 0 0 0 2px #4b73534a}.puzzle-cell:focus-visible{outline:none;box-shadow:inset 0 0 0 3px #205f4b;z-index:2}.region-edge-top{border-top-color:#516557;border-top-width:2px}.region-edge-bottom{border-bottom-color:#516557;border-bottom-width:2px}.region-edge-left{border-left-color:#516557;border-left-width:2px}.region-edge-right{border-right-color:#516557;border-right-width:2px}.cell-cat{width:70%;height:78%;object-fit:contain;filter:drop-shadow(0 2px 1px #7c542d16);animation:cat-pop .22s ease-out;pointer-events:none}.cell-x{font-size:clamp(14px,3vw,24px);color:#456055a6;font-weight:400;animation:mark-pop .16s ease-out}.is-conflict{box-shadow:inset 0 0 0 3px #ce654e!important}.is-conflict .cell-cat{animation:cat-shake .25s ease}.is-highlight{box-shadow:inset 0 0 0 4px #2d846c!important;animation:hint-pulse 1.5s ease-in-out infinite}.game-message{min-height:36px;text-align:center;font-size:11px;color:var(--muted);line-height:1.6;margin:16px auto 12px;max-width:440px}.game-toolbar{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.game-hint-button{background:#e6eedb;border-color:#d5e2c8;color:var(--green)}.game-hint{margin:16px 0 6px;padding:15px;background:#eef3e3;border-radius:12px;border:1px solid #dce5cc;font-size:12px}.game-hint p{margin:0 0 10px}.game-hint .game-action{margin-right:6px}.game-shortcuts{font-size:10px;color:#7b8679;text-align:center;margin:16px 0 0;line-height:1.6}.game-dialog{border:1px solid #d9e1cf;border-radius:23px;background:var(--cream);color:var(--ink);max-width:420px;width:calc(100% - 36px);padding:28px;box-shadow:0 30px 100px #112f394d;overflow:hidden}.game-dialog::backdrop{background:#203d346b;backdrop-filter:blur(5px)}.game-complete{text-align:center;position:relative}.game-complete>img{width:100px;height:110px;object-fit:contain;margin:5px auto 17px}.game-complete h3{font:500 30px Georgia,serif}.game-complete>p{font-size:12px}.game-complete .game-action{display:block;margin:10px auto}.game-primary{background:var(--green);color:white;border-color:var(--green)}.game-primary:hover:enabled{background:#154d3c}.game-confetti{position:absolute;inset:0;pointer-events:none}.game-confetti i{position:absolute;width:6px;height:12px;top:-20px;left:calc(var(--i) * 5.5%);background:var(--confetti-color);animation:confetti 2.6s calc(var(--i) * .04s) ease-in infinite}
@keyframes cat-pop{0%{transform:scale(.65) rotate(-8deg);opacity:.2}70%{transform:scale(1.09)}100%{transform:scale(1)}}@keyframes mark-pop{from{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}@keyframes cat-shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}@keyframes hint-pulse{50%{filter:brightness(1.08)}}@keyframes confetti{to{transform:translateY(350px) rotate(340deg);opacity:0}}
.page-wrap{max-width:1200px;margin:auto;padding:30px 40px 70px}.breadcrumbs{display:flex;gap:10px;flex-wrap:wrap;font-size:10px;color:var(--muted);line-height:1.4}.breadcrumbs a{text-decoration:none}.article-header{max-width:950px;padding:45px 0 37px;border-bottom:1px solid var(--line);margin-bottom:40px}.article-header h1{font-size:clamp(36px,4.7vw,59px);margin-bottom:20px}.article-intro{max-width:830px;color:var(--muted);font-size:17px;line-height:1.8}.article-meta{display:flex;gap:22px;flex-wrap:wrap;font-size:10px;color:#859082}.article-meta span+span:before{content:'·';margin-right:20px}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:65px;align-items:start}.article-body{min-width:0}.article-body>section{margin-bottom:47px}.article-body h2{font-size:32px;margin:36px 0 20px}.article-body section:first-child h2{margin-top:0}.article-body h3{margin:24px 0 12px;font-size:20px}.article-body p,.article-body li{font-size:14px;line-height:1.85;color:#526559}.article-body p a,.article-body li a{font-weight:550}.article-body strong{color:var(--ink)}.article-sidebar{position:sticky;top:115px;font-size:11px}.article-sidebar nav{padding-bottom:24px;border-bottom:1px solid var(--line)}.article-sidebar nav a{display:block;text-decoration:none;color:#778478;margin:12px 0;line-height:1.5;transition:color .2s}.article-sidebar nav a:hover{color:var(--green)}.article-sidebar .eyebrow{font-size:9px;margin-top:0}.sidebar-note{margin-top:28px;text-align:center;background:#f1f4e8;border-radius:15px;padding:22px 15px}.sidebar-note img{height:78px;object-fit:contain}.sidebar-note p{font:italic 16px Georgia,serif;margin:8px 0}.sidebar-note a{font-size:10px}.board-figure{max-width:390px;margin:27px auto;line-height:1.5}.board-figure svg{width:100%;display:block}.board-figure figcaption{font-size:11px;color:#7a8679;margin-top:11px;text-align:center}.callout{padding:22px 25px;border-radius:14px;border:1px solid #dde6d0;border-left:4px solid #86a57d;background:#f0f4e7;margin:25px 0}.callout>strong{font-size:14px}.callout p{font-size:13px;line-height:1.75;margin:8px 0 0}.callout.note{background:#f4eee3;border-color:#e5dac2}.callout.warning{background:#fbede4;border-color:#ead2bd}.steps li{padding:4px 0 4px 4px;margin:.65em 0}.mini-links{display:flex;gap:15px;flex-wrap:wrap}.mini-links a{font-size:12px}.method-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.method-grid>div{padding:20px;border-radius:14px;background:#f1f4e9}.method-grid h3{font-size:18px;margin-top:0}.method-grid p{font-size:12px}.method-grid a{font-size:11px}.faq-list details{border-bottom:1px solid var(--line);padding:17px 0}.faq-list summary{font-size:14px;font-weight:550;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;line-height:1.6}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:'＋';font-weight:400;flex-shrink:0;color:#7a8c75}.faq-list details[open] summary:after{content:'−'}.faq-list details>div{padding-top:14px;font-size:13px;color:var(--muted)}.faq-list p{font-size:13px;margin-bottom:7px}.sources{border-top:1px solid var(--line);padding-top:15px;margin-top:35px}.sources h2{font:500 20px Georgia,serif!important}.sources ul{list-style:none;padding:0}.sources li{font-size:11px}.source-note{font-size:11px!important;line-height:1.8!important;color:#7a877a!important;margin-top:15px}.article-cta{padding:27px;background:#e5eddf;border-radius:19px;display:flex;justify-content:space-between;gap:22px;align-items:center;margin:45px 0 10px}.article-cta h2{font-size:26px;margin:0 0 10px}.article-cta .eyebrow{font-size:8px;margin-bottom:10px}.article-cta p{font-size:12px;margin:0;max-width:410px}.article-cta .button{font-size:11px;padding:11px 14px;gap:14px;white-space:nowrap}.article-body table{border-collapse:collapse;width:100%;font-size:12px;margin:25px 0}.article-body th{background:#edf1e5;text-align:left;color:var(--ink)}.article-body th,.article-body td{border-bottom:1px solid var(--line);padding:13px;vertical-align:top}.table-scroll{overflow-x:auto}.app-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px}.app-card{border:1px solid var(--line);padding:24px;border-radius:16px;background:var(--cream)}.app-card h3{margin-top:0}.app-card p{font-size:12px}.app-card a{font-size:13px}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.comparison-grid>div{padding:20px;border:1px solid var(--line);border-radius:16px}.report-form{padding:25px;border-radius:17px;border:1px solid var(--line);background:var(--cream)}.report-form label{display:block;font-size:12px;font-weight:600;margin-bottom:19px}.report-form input,.report-form select,.report-form textarea,.library-tools input{display:block;width:100%;border:1px solid #d6dfd0;border-radius:8px;background:white;padding:12px;font-size:13px;margin-top:7px}.report-form textarea{resize:vertical;min-height:150px}.form-status{margin:15px 0 0!important}.report-form button{border:0}
.walk-summary{display:grid;grid-template-columns:1fr 280px;gap:30px;padding:25px;background:#edf2e5;border-radius:20px;align-items:center}.walk-summary h2{font:500 29px Georgia,serif;margin:0 0 18px}.walk-summary p{font-size:13px}.walk-summary .board-figure{margin:0}.walk-badges{display:flex;gap:7px;flex-wrap:wrap}.walk-badges span{font-size:9px;background:#ffffff9c;padding:5px 10px;border-radius:30px;color:#638168}.source-frames{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}.source-frame{margin:0;background:var(--cream);padding:9px;border:1px solid var(--line);border-radius:15px;overflow:hidden}.source-frame img{display:block;width:100%;height:auto;max-height:450px;object-fit:contain;background:#e9ede1;border-radius:8px}.source-frame figcaption{font-size:10px;color:#788576;padding:10px 2px 2px;line-height:1.6}.source-frame figcaption a{display:block;margin-top:6px}.answer-reveal{border:1px solid #d6e1ce;border-radius:15px;background:var(--cream)}.answer-reveal>summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;padding:20px 23px;list-style:none;font-size:14px;font-weight:600}.answer-reveal>summary::-webkit-details-marker{display:none}.answer-content{display:grid;grid-template-columns:1fr 1fr;gap:23px;padding:0 20px 20px}.answer-content .board-figure{margin:10px 0}.answer-content h3{font-size:18px}.coordinates{padding:0;list-style:none}.coordinates li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding:6px 0;margin:0;font-size:12px}.coordinates span{font-size:10px;color:var(--muted)}.walk-step{border-top:1px solid var(--line);padding-top:28px;margin-top:30px}.walk-step-heading{display:flex;gap:15px;align-items:center}.walk-step-heading h3{margin:0;font-size:20px}.walk-step-heading .eyebrow{font-size:8px;margin-bottom:5px;letter-spacing:.08em}.step-number{font-family:Georgia,serif;font-size:22px;color:#6e9273;background:#edf2e5;border-radius:50%;width:42px;height:42px;flex-shrink:0;display:grid;place-items:center}.walk-step-content{display:grid;grid-template-columns:1fr 245px;gap:26px;margin-top:18px;align-items:center}.walk-step-content p{font-size:13px}.walk-step-content .board-figure{margin:0}.diagram-key{font-size:10px!important;color:#87917e!important;font-style:italic}.step-check{background:#f0f2e8;padding:12px;border-radius:8px}.video-card{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:var(--cream)}.video-load{display:block;width:100%;position:relative;border:0;padding:0;background:#e7ebdd;min-height:230px;overflow:hidden}.video-load img{display:block;width:100%;height:320px;object-fit:contain;background:#e7ebdd}.video-play{position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:65px;height:65px;border-radius:50%;background:#206653eb;color:white;font-size:21px;box-shadow:0 5px 20px #1b423844}.video-load>span:last-child{display:block;padding:13px;font-size:13px;background:#e4ebda;font-weight:600}.video-card>p{font-size:10px!important;margin:0;padding:12px 18px;text-align:center}.video-card iframe{display:block;width:100%;aspect-ratio:16/9;border:0}.level-pagination{display:flex;justify-content:space-between;border-block:1px solid var(--line);padding:20px 0;gap:10px;margin-top:40px;font-size:12px}.level-pagination a{text-decoration:none}.library-tools{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px;gap:20px}.library-tools label{font-size:11px;min-width:230px}.library-tools input{margin-bottom:0;padding:10px 12px}.library-tools p{font-size:11px;margin-bottom:10px}.level-library{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.level-card{display:flex;flex-direction:column;background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:16px;color:var(--ink);text-decoration:none;transition:transform .2s,box-shadow .2s}.level-card-top{display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:.1em;font-weight:650}.level-card-top small{font-size:9px;color:var(--muted);font-weight:400;letter-spacing:0}.level-card svg{margin:12px auto 10px;max-width:195px}.level-card h3{font-size:16px;margin:3px 0 10px}.level-card p{font-size:11px;line-height:1.65}.level-card .card-link{font-size:10px}
.solver-shell{background:var(--cream);border:1px solid var(--line);border-radius:22px;padding:25px;margin-bottom:35px}.solver-header{display:flex;gap:25px;align-items:start;justify-content:space-between}.solver-header h2{font-size:28px!important;margin:0 0 12px!important}.solver-header p{font-size:12px;margin-bottom:0}.solver-header .game-eyebrow{font-size:9px;margin-bottom:8px}.solver-header .game-field{flex-shrink:0}.solver-steps{display:flex;gap:18px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:18px;margin-top:22px;font-size:10px;color:var(--muted)}.solver-steps b{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;background:#e8efdd;color:var(--green);margin-right:5px}.solver-palette{display:flex;gap:7px;flex-wrap:wrap;margin:22px 0}.solver-region{background:var(--region-color);border:2px solid transparent;border-radius:9px;padding:7px 10px;font-size:13px;min-width:42px;line-height:1.2}.solver-region small{display:block;font-size:8px;margin-top:3px;opacity:.7}.solver-region.is-selected{border-color:var(--green);box-shadow:0 0 0 2px #fcfaf5,0 0 0 3px #578770}.solver-tools{max-width:none;margin-bottom:22px}.solver-tools .game-tool{padding:7px 8px;font-size:10px}.solver-workspace{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:24px}.solver-workspace .game-board-wrap{width:100%}.solver-help h3{font:500 21px Georgia,serif;margin:0 0 14px}.solver-help p{font-size:11px}.solver-help .game-action{display:block;width:100%;margin:9px 0}.solver-cell-label{font-size:12px;color:#576b5a8f}.is-unpainted{background:repeating-linear-gradient(45deg,#f9faf5,#f9faf5 6px,#f1f3eb 6px,#f1f3eb 12px)}.is-solution{box-shadow:inset 0 0 0 3px #328466}.solver-actions{display:flex;gap:9px;flex-wrap:wrap;margin:20px 0 16px}.solver-actions .game-primary{padding:11px 17px}.solver-result{padding:14px;border-radius:11px;background:#eff3e6;font-size:12px;color:var(--muted);line-height:1.8}.solver-result[data-kind=success]{background:#e5efdc;color:#326041}.solver-result[data-kind=error]{background:#fae9e0;color:#94513b}.solver-result[data-kind=multiple]{background:#f5edd8;color:#8c713d}
.site-footer{border-top:1px solid var(--line);background:#f0f2e7;padding:48px 40px 23px}.footer-top{max-width:1120px;margin:auto;display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:40px}.footer-brand{font:500 30px Georgia,serif;text-decoration:none;color:var(--ink);letter-spacing:-.05em}.footer-brand span{font-size:18px;margin-left:6px;color:#809771}.footer-top>div>p{font-size:11px;line-height:1.8;color:#788573;margin-top:13px}.footer-top strong{display:block;font-size:11px;margin:6px 0 17px}.footer-top>div>a:not(.footer-brand){display:block;font-size:11px;margin:8px 0;color:#788573;text-decoration:none}.footer-top>div>a:hover{color:var(--green)}.footer-bottom{max-width:1120px;margin:35px auto 0;padding-top:20px;border-top:1px solid #dfe4d6;display:flex;align-items:center;gap:40px;justify-content:space-between;font-size:9px;color:#81907c}.footer-bottom p{max-width:560px;line-height:1.7;margin:0}.footer-bottom>a{white-space:nowrap;text-decoration:none}
@media(min-width:1400px){.home-hero{min-height:490px}.hero-content{padding-top:69px}}@media(max-width:1100px){.header-inner{padding:0 25px}.site-header nav{gap:18px}.play-layout{grid-template-columns:minmax(0,1fr) 265px;gap:20px}.game-shell{padding:25px}.section-wrap,.page-wrap{padding-left:30px;padding-right:30px}.article-layout{gap:35px;grid-template-columns:minmax(0,1fr) 180px}.walk-summary{grid-template-columns:1fr 230px}.walk-step-content{grid-template-columns:1fr 210px}.hero-content h1{font-size:58px}.hero-content{padding-left:40px}.solver-workspace{grid-template-columns:minmax(0,1fr) 175px;gap:18px}}
@media(max-width:850px){.site-header{height:78px}.header-inner{gap:10px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:78px;right:15px;left:15px;background:var(--cream);border:1px solid var(--line);border-radius:15px;box-shadow:0 15px 25px #385e3414;padding:20px;flex-direction:column;align-items:stretch;gap:14px}.site-header nav.is-open{display:flex}.site-header nav>a{font-size:14px;padding:5px 9px}.site-header nav>a[aria-current]:after{left:0;bottom:12px}.site-header nav .nav-play{padding:12px}.hero-content{padding:38px 30px}.home-hero{min-height:410px}.hero-content h1{font-size:49px}.hero-content>p:not(.eyebrow){font-size:13px}.hero-content .eyebrow{font-size:9px}.hero-tags{font-size:9px;gap:10px}.play-layout{grid-template-columns:1fr}.play-aside{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:center}.rule-card{padding:23px}.rule-card h2{font-size:27px}.rule-card ol{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.rule-card li{gap:8px;margin:0;align-items:start}.rule-card li>b{width:23px;height:23px;font-size:9px}.rule-card li strong{font-size:11px}.rule-card li p{font-size:10px}.rule-card .handwritten{font-size:11px}.tiny-note{flex-direction:column;text-align:center;margin-top:0}.tiny-note img{width:100px}.tiny-note strong{font-size:23px}.section-heading{gap:25px}.section-heading>p{max-width:240px;font-size:12px}.guide-card{padding:23px}.guide-card h3{font-size:25px}.guide-card p{font-size:12px}.article-layout{display:block}.article-sidebar{display:none}.article-header{padding-top:35px}.article-header h1{font-size:46px}.article-intro{font-size:15px}.article-body{max-width:760px}.level-library{grid-template-columns:repeat(3,minmax(0,1fr))}.home-faq{gap:35px;grid-template-columns:1fr 1.5fr}.footer-top{gap:25px;grid-template-columns:1.5fr 1fr 1fr 1fr}.footer-bottom{gap:20px}.walk-summary{grid-template-columns:1fr 260px}.walk-step-content{grid-template-columns:1fr 260px}.game-shell{max-width:700px;margin:auto}.game-board-wrap{max-width:430px}.game-controls{max-width:570px}.practice-note{max-width:none}.game-title{font-size:34px}.solver-workspace{grid-template-columns:minmax(0,1fr) 220px}}
@media(max-width:600px){body{font-size:14px}.header-inner{padding:0 20px}.brand>span{font-size:24px}.brand img{width:36px;height:43px}.home-hero{min-height:625px;background-size:auto 275px;background-position:right bottom;background-color:#fff8e8}.hero-content{padding:30px 24px;position:relative;z-index:1}.hero-content h1{font-size:47px;margin-bottom:15px}.hero-content .eyebrow{font-size:8px;margin-bottom:15px}.hero-content>p:not(.eyebrow){font-size:12px;margin-bottom:18px;line-height:1.6}.hero-content .button{padding:11px 17px;font-size:12px;gap:20px}.hero-tags{font-size:8px;gap:10px;flex-wrap:wrap;max-width:230px;margin-top:15px}.section-wrap,.page-wrap{padding-left:20px;padding-right:20px}.play-section{padding-top:27px;padding-bottom:33px}.section-kicker{margin-bottom:15px}.section-kicker>span{display:none}.section-kicker .eyebrow{font-size:9px}.game-shell{padding:20px 15px 16px;border-radius:20px}.game-title{font-size:25px}.game-eyebrow{font-size:8px}.game-header{gap:10px}.game-stats{gap:13px}.game-stat strong{font-size:19px}.game-stat small{font-size:8px}.game-subtitle{font-size:9px}.game-controls{gap:6px;flex-wrap:wrap;margin:18px 0 14px}.game-field{font-size:8px}.game-field select{font-size:10px;padding:7px 17px 7px 7px}.game-puzzle-switch{gap:2px}.game-puzzle-switch span{font-size:9px;min-width:50px}.game-puzzle-switch .game-action{padding:5px 8px}.game-controls>.game-action{padding:7px 8px;font-size:9px}.game-mode-bar{margin-bottom:14px}.game-tool{font-size:10px;padding:6px 11px;gap:5px;min-height:32px}.game-action{font-size:10px;padding:7px 10px}.game-toolbar{gap:6px}.game-message{font-size:10px;margin:13px 0 11px;min-height:32px}.game-shortcuts{font-size:9px;margin-top:12px}.puzzle-board{border-radius:8px}.cell-x{font-size:21px}.game-hint{font-size:11px}.game-hint .game-action{font-size:10px}.play-aside{grid-template-columns:1fr;gap:10px;padding-top:0}.rule-card{padding:23px}.rule-card h2{font-size:27px;margin-bottom:18px}.rule-card h2 br{display:none}.rule-card ol{gap:18px 20px}.rule-card li strong{font-size:12px}.rule-card li p{font-size:10px}.rule-card .handwritten{font-size:12px}.tiny-note{flex-direction:row;gap:17px;text-align:left;padding:14px 20px}.tiny-note img{width:68px}.tiny-note strong{font-size:20px}.tiny-note p{font-size:11px}.tiny-note a{font-size:10px}.practice-note{font-size:9px}.guide-section{padding-top:32px;padding-bottom:33px}.section-heading{display:block;margin-bottom:22px}.section-heading h2{font-size:31px}.section-heading>p{max-width:none;margin-top:17px;font-size:12px}.section-heading .text-link{display:block;margin-top:13px;font-size:11px}.guide-cards{grid-template-columns:1fr;gap:13px}.guide-card{padding:25px;position:relative}.guide-card .card-icon{position:absolute;right:25px;top:25px}.guide-card h3{font-size:28px;margin-bottom:12px}.guide-card p{max-width:260px;font-size:12px}.guide-card .eyebrow{margin-top:5px;font-size:8px}.guide-card .card-link{font-size:12px;margin-top:6px}.featured-grid{grid-template-columns:1fr;gap:15px}.featured-card{display:grid;grid-template-columns:100px 1fr;gap:17px;padding:19px;align-items:center}.featured-board{margin:0}.featured-card h3{font-size:17px;margin-bottom:10px}.featured-card .eyebrow{font-size:8px;margin-bottom:8px}.featured-card p{font-size:11px}.featured-card .card-link{font-size:10px}.featured-section{padding-top:16px;padding-bottom:35px}.home-faq{display:block;padding-top:35px;padding-bottom:40px}.home-faq h2{font-size:30px;margin-bottom:15px}.home-faq h2 br{display:none}.faq-list summary{font-size:13px}.faq-list details>div{font-size:12px}.page-wrap{padding-top:20px;padding-bottom:45px}.article-header{padding:30px 0 25px;margin-bottom:27px}.article-header .eyebrow{font-size:9px}.article-header h1{font-size:38px;line-height:1.15}.article-intro{font-size:13px;line-height:1.75}.article-meta{gap:9px;font-size:8px}.article-meta span+span:before{margin-right:9px}.breadcrumbs{font-size:9px;gap:7px}.article-body h2{font-size:27px;margin:29px 0 17px}.article-body h3{font-size:19px}.article-body p,.article-body li{font-size:13px;line-height:1.85}.article-body>section{margin-bottom:33px}.callout{padding:18px 20px;margin:20px 0}.callout>strong{font-size:13px}.callout p{font-size:12px}.board-figure{max-width:330px;margin:24px auto}.board-figure figcaption{font-size:10px}.article-cta{display:block;padding:25px}.article-cta h2{font-size:26px}.article-cta p{font-size:12px}.article-cta .button{margin-top:20px}.method-grid,.app-cards,.comparison-grid{grid-template-columns:1fr;gap:13px}.method-grid p{font-size:12px}.method-grid h3{margin-top:0}.article-body table{font-size:10px;display:block;overflow-x:auto;white-space:normal}.article-body th,.article-body td{padding:9px;min-width:90px}.walk-summary{display:block;padding:22px}.walk-summary h2{font-size:25px}.walk-summary .eyebrow{font-size:8px}.walk-summary .board-figure{max-width:265px;margin:22px auto 0}.walk-summary p{font-size:12px}.walk-badges span{font-size:8px}.source-frames{gap:10px;grid-template-columns:1fr}.source-frame{display:grid;grid-template-columns:125px 1fr;gap:13px;align-items:center;padding:11px;border-radius:13px}.source-frame figcaption{font-size:10px;padding:0}.source-frame img{max-height:225px}.answer-reveal>summary{font-size:13px;padding:17px}.answer-content{display:block;padding:0 18px 18px}.answer-content .board-figure{max-width:290px;margin:10px auto 20px}.coordinates li{font-size:12px}.answer-content>div>p{font-size:12px}.walk-step{padding-top:22px;margin-top:25px}.walk-step-heading{gap:12px}.walk-step-heading h3{font-size:18px;line-height:1.35}.step-number{width:35px;height:35px;font-size:19px}.walk-step-content{display:block;margin-top:17px}.walk-step-content .board-figure{max-width:295px;margin:20px auto 0}.walk-step-content p{font-size:12px}.walk-step-heading .eyebrow{font-size:7px}.video-load img{height:290px}.level-pagination{font-size:10px;gap:7px;padding:16px 0}.library-tools{gap:15px;align-items:center}.library-tools label{min-width:0;flex:1}.library-tools p{font-size:9px;margin-bottom:0}.library-tools input{font-size:12px}.level-library{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.level-card{padding:12px;border-radius:14px}.level-card-top{font-size:8px}.level-card-top small{font-size:8px}.level-card svg{margin:10px auto}.level-card h3{font-size:14px;margin-bottom:8px}.level-card p{font-size:10px;line-height:1.65}.level-card .card-link{font-size:9px}.solver-shell{padding:18px 13px;border-radius:18px}.solver-header{display:block}.solver-header h2{font-size:25px!important}.solver-header .game-field{margin:18px 0 0;max-width:120px}.solver-header p{font-size:11px}.solver-steps{gap:10px;font-size:8px;padding-top:15px}.solver-steps b{width:18px;height:18px;margin-right:3px}.solver-palette{gap:6px;margin:18px 0}.solver-region{min-width:33px;padding:6px 8px;font-size:11px}.solver-tools{flex-wrap:wrap;gap:3px}.solver-tools .game-tool{font-size:9px;padding:7px 5px;min-width:45%;flex-basis:45%}.solver-workspace{display:block}.solver-help{margin-top:22px}.solver-help h3{font-size:20px}.solver-help p{font-size:11px}.solver-help .game-action{display:inline-block;width:auto;font-size:9px;margin:4px 4px 4px 0}.solver-result{font-size:11px}.solver-actions .game-action{font-size:10px}.solver-actions .game-primary{padding:10px 14px}.solver-cell-label{font-size:10px}.site-footer{padding:35px 24px 20px}.footer-top{grid-template-columns:1fr 1fr;gap:23px 28px}.footer-top>div:first-child{grid-column:1/-1}.footer-brand{font-size:28px}.footer-top>div>p{font-size:10px;margin-bottom:2px}.footer-top strong{font-size:10px;margin-top:0;margin-bottom:12px}.footer-top>div>a:not(.footer-brand){font-size:10px;margin:7px 0}.footer-bottom{display:block;margin-top:25px;font-size:8px}.footer-bottom>p{margin:11px 0}.footer-bottom>a{font-size:9px}.report-form{padding:20px}.report-form input,.report-form select,.report-form textarea{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.solver-result[data-kind=incomplete]{background:#f5edd8;color:#8c713d}

/* The playable board is the homepage's first action on every screen. */
.play-intro{display:flex;justify-content:space-between;gap:25px;align-items:center;padding-top:25px;padding-bottom:20px}.play-intro .eyebrow{margin-bottom:9px;font-size:9px}.play-intro h1{font-size:40px;margin-bottom:0}.play-intro h1 em{color:var(--green);font-weight:500}.play-intro>p{font-size:12px;color:var(--muted);margin:12px 0 0;line-height:1.7}.home-page .play-section{padding-top:0}.home-page .section-kicker{display:none}.play-illustration{display:block;width:100%;height:155px;object-fit:cover;border-radius:20px;margin-bottom:15px}.home-page .game-shell{padding-top:22px}.home-page .game-title{font-size:28px}.home-page .game-controls{margin-top:18px}.home-page .play-aside{padding-top:0}.home-page .rule-card{padding:23px}.home-page .rule-card h2{font-size:28px;margin-bottom:18px}.home-page .rule-card li{margin:13px 0}.home-page .rule-card ol{margin-bottom:18px}.home-page .tiny-note{margin-top:13px}
@media(max-width:850px){.play-intro h1{font-size:34px}.play-intro>p{max-width:220px}.play-illustration{display:none}.home-page .play-aside{margin-top:8px}.home-page .game-title{font-size:28px}}
@media(max-width:600px){.site-header{height:65px}.site-header nav{top:65px}.brand>span{font-size:22px}.brand img{width:31px;height:37px}.brand small{font-size:8px}.play-intro{display:block;padding-top:17px;padding-bottom:14px}.play-intro .eyebrow{font-size:7px;margin-bottom:6px}.play-intro h1{font-size:28px;line-height:1.16;letter-spacing:-.04em}.play-intro>p{font-size:10px;margin:7px 0 0;max-width:none;line-height:1.6}.play-intro>p br{display:none}.home-page .game-shell{padding:15px 13px 13px}.home-page .game-title{font-size:21px;white-space:nowrap;margin-bottom:3px}.home-page .game-eyebrow{font-size:7px;margin-bottom:5px}.home-page .game-controls{margin-top:13px;margin-bottom:10px}.home-page .game-mode-bar{margin-top:7px;margin-bottom:11px}.home-page .game-header{gap:7px}.home-page .game-stats{gap:11px}.home-page .game-stat strong{font-size:18px}.home-page .game-stat small{font-size:7px}.home-page .game-message{margin-top:10px;margin-bottom:10px;min-height:30px}.home-page .game-shortcuts{margin-top:11px;font-size:8px}.home-page .practice-note{font-size:9px;margin-top:13px}.home-page .play-aside{margin-top:12px}}
.home-page .game-board-wrap{max-width:380px}.step-reader-tools{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px;background:#edf2e5;border-radius:12px;margin:23px 0}.step-reader-nav{display:flex;gap:12px;align-items:center}.step-reader-count{font-size:11px;color:var(--muted)}
@media(max-width:600px){.step-reader-tools{padding:11px;gap:9px;flex-wrap:wrap}.step-reader-tools .game-action{font-size:10px}.step-reader-nav{gap:8px}.step-reader-count{font-size:10px}}
@media(max-height:740px) and (max-width:600px){.home-page .site-header{height:55px}.home-page .site-header nav{top:55px}.play-intro{padding-top:12px;padding-bottom:10px}.play-intro .eyebrow,.play-intro>p{display:none}.play-intro h1{font-size:25px}.home-page .game-shell{padding-top:11px}.home-page .game-eyebrow{display:none}.home-page .game-controls{margin-top:10px}.home-page .game-board-wrap{max-width:290px}.home-page .game-shortcuts{display:none}}
.catalog-controls{display:flex;gap:12px;align-items:end;padding:18px;background:#edf2e5;border-radius:13px}.catalog-controls label{font-size:10px;color:var(--muted);flex:1}.catalog-controls label:first-child{flex:2}.catalog-controls input,.catalog-controls select{display:block;width:100%;font-size:12px;border:1px solid #d4deca;background:var(--cream);border-radius:7px;margin-top:6px;padding:9px 11px}.catalog-controls button{margin-bottom:1px}.catalog-result{font-size:11px!important;margin:13px 0 20px!important}.catalog-range{border:1px solid var(--line);border-radius:13px;background:var(--cream);margin:12px 0;overflow:hidden}.catalog-range>summary{padding:16px 20px;display:flex;justify-content:space-between;list-style:none;font-size:14px;font-weight:600;cursor:pointer}.catalog-range>summary:before{content:'＋';margin-right:11px;color:#6e8c74}.catalog-range[open]>summary:before{content:'−'}.catalog-range>summary>span{margin-left:auto;font-size:10px;color:var(--muted);font-weight:400}.catalog-list{list-style:none;padding:0 17px;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.catalog-item{display:flex;align-items:center;gap:11px;border-top:1px solid #edf0e5;padding:12px 0;margin:0!important}.catalog-number{width:30px;flex-shrink:0;font-size:11px;color:#819576}.catalog-item>div{flex:1}.catalog-item strong{font-size:11px;font-weight:550}.catalog-item small{display:block;font-size:9px;line-height:1.5;color:#83927e}.catalog-item>a{font-size:10px;white-space:nowrap;text-decoration:none}.catalog-guide{font-weight:650}.requested-guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.requested-guides>a{display:block;border-radius:14px;background:#e9efe0;padding:22px;text-decoration:none}.requested-guides h3{font-size:18px!important;margin-top:0!important}.requested-guides .eyebrow{font-size:8px!important}.requested-guides p{font-size:11px!important}.requested-guides .card-link{font-size:10px}
@media(max-width:600px){.catalog-controls{padding:14px;gap:8px;flex-wrap:wrap}.catalog-controls label:first-child{flex-basis:100%}.catalog-controls label{font-size:9px}.catalog-controls input,.catalog-controls select{font-size:11px}.catalog-controls select{padding:8px 9px}.catalog-range>summary{font-size:12px;padding:13px 15px}.catalog-list{grid-template-columns:1fr;padding:0 14px}.catalog-item{gap:9px;padding:11px 0}.catalog-item strong{font-size:11px}.catalog-item small{font-size:9px}.catalog-item>a{font-size:10px}.catalog-number{width:29px}.requested-guides{grid-template-columns:1fr}}
.single-source-frame{display:block}.single-source-frame .source-frame{max-width:370px;margin:0 auto}.single-source-frame .source-frame img{max-height:none}@media(max-width:600px){.single-source-frame .source-frame{grid-template-columns:1fr;max-width:290px}.single-source-frame .source-frame figcaption{padding:8px 3px 2px}}
.walk-jump-links{display:flex;gap:8px 15px;flex-wrap:wrap;margin-top:20px}.walk-jump-links a{font-size:10px;font-weight:600}.key-deduction{display:grid;grid-template-columns:1fr 270px;gap:25px;align-items:center;border-top:1px solid var(--line);padding-top:23px;margin-top:25px}.key-deduction h3{font-size:20px}.key-deduction .board-figure{margin:0}.key-deduction a{font-size:11px}.player-question{padding:17px 20px;background:#eef3e6;border-radius:11px}@media(max-width:600px){.key-deduction{display:block;padding-top:17px;margin-top:20px}.key-deduction .board-figure{max-width:285px;margin:20px auto 0}.walk-jump-links a{font-size:9px}.walk-jump-links{margin-top:16px}}
.catalog-video{padding:0;border:0;background:none;color:var(--green);font-size:10px;white-space:nowrap;font-weight:550}.catalog-video:hover{text-decoration:underline;text-underline-offset:4px}.catalog-video-dialog{border:1px solid var(--line);border-radius:19px;padding:20px;background:var(--cream);color:var(--ink);width:min(840px,calc(100% - 32px));max-height:90dvh;box-shadow:0 25px 100px #1a3e3245}.catalog-video-dialog::backdrop,.source-image-dialog::backdrop{background:#18392aab;backdrop-filter:blur(5px)}.media-dialog-header{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:15px}.media-dialog-header h2{font-size:26px;margin:0}.media-close{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;background:var(--cream);font-size:22px;line-height:1;flex-shrink:0}.catalog-player iframe{display:block;width:100%;aspect-ratio:16/9;border:0;border-radius:10px}.media-source{font-size:10px;color:var(--muted);text-align:center;margin:15px 0 2px}.source-image-open{padding:0;border:0;background:none;display:block;width:100%;cursor:zoom-in}.source-image-dialog{padding:20px;border:1px solid var(--line);border-radius:15px;background:var(--cream);color:var(--ink);width:auto;max-width:calc(100% - 30px);max-height:94dvh;text-align:center;overflow:auto}.source-image-dialog>img{display:block;max-height:calc(90dvh - 75px);max-width:100%;width:auto;object-fit:contain;margin:auto}.source-image-dialog>.media-close{position:absolute;right:10px;top:10px;z-index:1}.source-image-dialog>p{font-size:9px;max-width:450px;line-height:1.6;margin:12px auto 0}@media(max-width:600px){.catalog-video-dialog{padding:15px;border-radius:15px}.media-dialog-header h2{font-size:22px}.catalog-video{font-size:10px}.source-image-dialog{padding:13px}}
/* Compact challenge controls keep the board in the first viewport. */
.game-play-modes{display:flex;gap:4px;background:#edf1e4;border-radius:10px;padding:4px;margin:14px 0 8px}.game-play-modes button{flex:1;border:0;background:none;border-radius:7px;padding:8px 9px;color:var(--muted);font-size:11px;font-weight:600;white-space:nowrap}.game-play-modes button[aria-pressed=true]{color:var(--green);background:var(--cream);box-shadow:0 1px 5px #31483112}.journey-progress{display:flex;gap:12px;align-items:center;justify-content:space-between;font-size:10px;color:var(--muted);margin:8px 0}.journey-progress progress{width:110px;height:5px;accent-color:var(--green);border-radius:5px}.challenge-shell .game-controls{margin-top:9px;margin-bottom:9px;gap:8px}.challenge-shell .game-level-button{min-width:105px}.challenge-shell .game-controls .game-action{font-size:10px;padding:7px 9px}.challenge-shell .game-social-tools{display:flex;justify-content:center;gap:16px;margin-top:15px}.game-social-tools button{border:0;background:none;color:var(--green);padding:4px 0;font-size:10px;text-decoration:underline;text-underline-offset:3px}.game-social-tools button:disabled{opacity:.45;cursor:default;text-decoration:none}.game-map-dialog,.game-records-dialog{max-width:640px;width:calc(100% - 30px);max-height:85dvh;overflow:auto}.game-map-dialog h2,.game-records-dialog h2,.game-share-dialog h2,.game-options-dialog h2{font:500 25px Georgia,serif;margin:0}.game-map-note,.game-options-note{font-size:11px;line-height:1.7;color:var(--muted)}.journey-chapter{margin:24px 0}.journey-chapter h3{font:500 20px Georgia,serif;margin:0 0 7px}.journey-chapter>p{font-size:11px;line-height:1.7;color:var(--muted);margin:0 0 13px}.journey-level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.journey-level{border:1px solid var(--line);border-radius:10px;background:#f4f2e9;color:var(--ink);padding:10px 4px}.journey-level strong{display:block;font-size:18px;margin-bottom:3px}.journey-level small{font-size:8px;color:var(--muted)}.journey-level.is-cleared{background:#e8efdc;border-color:#cdddbd}.journey-level.is-skipped{border-style:dashed;background:#f8eace}.journey-level.is-current{outline:2px solid var(--green);outline-offset:1px}.personal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0}.personal-summary span{padding:12px 8px;background:#edf2e4;border-radius:10px;text-align:center;font-size:9px;color:var(--muted)}.personal-summary strong{font-size:23px;color:var(--green);display:block;margin-bottom:3px}.game-records-dialog h3{font:500 20px Georgia,serif}.personal-record-list{padding:0;list-style:none}.personal-record-list li{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.personal-record-list strong{font-size:12px;display:block}.personal-record-list small{display:block;font-size:10px;color:var(--muted);margin-top:4px}.personal-record-list b{font-size:14px;white-space:nowrap}.skipped-links{display:flex;flex-wrap:wrap;gap:7px}.game-share-dialog,.game-options-dialog{max-height:85dvh;overflow:auto}.game-share-dialog label{display:block;font-size:10px;margin:15px 0 7px}.game-share-dialog textarea{width:100%;font:11px/1.6 monospace;color:var(--ink);background:#f0f2e7;border:1px solid var(--line);border-radius:10px;padding:10px;resize:vertical;overflow-wrap:anywhere}.game-share-dialog>p,.game-options-dialog>p{font-size:12px;line-height:1.8}.game-share-dialog .game-toolbar{margin-top:12px}.game-options-dialog .game-field{margin:15px 0}.game-options-dialog .game-primary{margin-top:10px}.challenge-shell [hidden]{display:none!important}
@media(max-width:600px){.home-page .challenge-shell .game-title{font-size:20px}.home-page .challenge-shell .game-subtitle{font-size:9px;line-height:1.3;max-width:230px}.game-play-modes{margin-top:10px;padding:3px;gap:3px}.game-play-modes button{font-size:9px;padding:7px 4px}.journey-progress{font-size:8px;margin:6px 0}.journey-progress progress{width:80px}.home-page .challenge-shell .game-controls{margin-top:7px;margin-bottom:7px;gap:5px;justify-content:space-between}.challenge-shell .game-controls .game-action{font-size:9px;padding:6px 7px}.challenge-shell .game-level-button{min-width:92px}.challenge-shell .game-puzzle-switch{gap:4px}.home-page .challenge-shell .game-mode-bar{margin-top:5px;margin-bottom:8px}.challenge-shell .game-social-tools{gap:13px;margin-top:11px}.game-social-tools button{font-size:9px}.game-map-dialog,.game-records-dialog,.game-options-dialog,.game-share-dialog{padding:20px 15px}.journey-level-grid{gap:6px}.journey-level strong{font-size:16px}.journey-level small{font-size:7px}.game-map-dialog h2,.game-records-dialog h2,.game-options-dialog h2,.game-share-dialog h2{font-size:22px}.game-time-options span{font-size:8px}}
@media(max-height:740px) and (max-width:600px){.home-page .challenge-shell .game-board-wrap{max-width:265px}.game-play-modes{margin-top:7px}.game-play-modes button{padding-top:5px;padding-bottom:5px}.home-page .challenge-shell .game-title{font-size:18px}.home-page .challenge-shell .game-subtitle{font-size:8px}.home-page .challenge-shell .game-mode-bar{margin-bottom:6px}.home-page .challenge-shell .game-controls{margin-top:6px;margin-bottom:6px}}

/* The journey map presents one chapter at a time, including large campaigns. */
.game-map-tools{display:flex;gap:15px;align-items:end;margin:15px 0}.game-map-tools>label{flex:1;min-width:0}.game-map-tools select{max-width:100%;width:100%}.game-map-tools form{display:flex;gap:7px;align-items:end}.game-map-tools input{width:105px;border:1px solid var(--line);background:var(--cream);border-radius:7px;padding:7px 9px;font-size:12px}.game-map-tools .game-action{white-space:nowrap}.game-map-tools~.journey-chapter{margin-top:12px}
@media(max-width:600px){.game-map-tools{display:block}.game-map-tools form{margin-top:12px}.game-map-tools select{font-size:11px}.game-map-tools input{width:125px}}

/* A puzzle companion and finite, presentation-only celebrations. */
.game-feedback{display:flex;align-items:center;gap:11px;min-width:0}
.game-feedback-text{flex:1;min-width:0}
.game-joy-bubble{display:block;color:var(--green);font-size:11px;line-height:1.45;margin:-5px 0 10px;font-weight:600}
.game-joy-bubble[hidden]{display:none}
.has-cat-reaction .cell-cat{animation:whisker-land .38s ease-out both;transform-origin:50% 90%}
.game-victory-badge{display:inline-block;background:#edf3e7;color:var(--green);font-size:12px;font-weight:700;border-radius:30px;padding:7px 15px;margin:0 0 12px}
.game-winner-cat{display:block;margin:0 auto 12px;transform-origin:50% 85%}
.game-winner-cat.is-celebrating{animation:whisker-victory .6s ease-in-out 3}
.game-confetti{overflow:hidden;z-index:2}
.game-confetti i{top:-12px;left:var(--piece-x);width:7px;height:11px;border-radius:2px;opacity:0;animation:whisker-fall 2.2s var(--piece-delay) ease-out both}
.game-confetti i:nth-child(3n){border-radius:50%;width:8px;height:8px}
@keyframes whisker-nod{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-5px) rotate(-7deg)}70%{transform:translateY(-2px) rotate(5deg)}}
@keyframes whisker-wiggle{0%,100%{transform:rotate(0)}25%{transform:rotate(-8deg)}75%{transform:rotate(8deg)}}
@keyframes whisker-land{0%{transform:translateY(-7px) scale(.7)}65%{transform:translateY(1px) scale(1.12)}100%{transform:translateY(0) scale(1)}}
@keyframes whisker-heart{0%{transform:translateY(4px) scale(.6)}50%{transform:translateY(-5px) scale(1.2)}100%{transform:translateY(-10px) scale(1)}}
@keyframes whisker-victory{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-12px) rotate(-7deg)}70%{transform:translateY(-4px) rotate(7deg)}}
@keyframes whisker-fall{0%{opacity:1;transform:translate(0,0) rotate(0)}70%{opacity:1}100%{opacity:0;transform:translate(var(--piece-drift),340px) rotate(var(--piece-turn))}}
@media(max-width:600px){.game-feedback{gap:8px}.game-joy-bubble{font-size:10px}.game-victory-badge{font-size:11px}}

/* Historical clears remain earned even while replaying the board. */
.journey-map-legend{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 15px;font-size:10px;line-height:1.5}
.journey-map-legend span{padding:4px 8px;border-radius:6px}.legend-cleared{background:#fff0bf;color:#78521b}.legend-practiced{background:#e3eee9;color:#2e6655}
.journey-level{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100px;padding:10px 4px;gap:4px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.journey-level:hover{transform:translateY(-2px);box-shadow:0 4px 10px #30463516}.journey-level:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.journey-status-art{display:grid;place-items:center;height:35px;width:40px;pointer-events:none}
.journey-medal{width:32px;height:35px;filter:drop-shadow(0 2px 1px #9a682524)}
.journey-level strong{margin:0;font-size:20px;line-height:1.2}
.journey-level .journey-status-label{font-size:9px;line-height:1.25;font-weight:600}
.journey-level.is-cleared{background:linear-gradient(145deg,#fff8dc,#f7e4ab);border:2px solid #c69c48;box-shadow:inset 0 0 0 2px #fff9e8;color:#70501c}
.journey-level.is-cleared .journey-status-label{border:1px solid #ba8b35;border-radius:3px;padding:2px 4px;color:#765119;text-transform:uppercase;font-weight:800;letter-spacing:.02em;transform:rotate(-4deg)}
.journey-no-hints{font-size:7px;line-height:1.1;color:#866322;letter-spacing:.06em;font-weight:700}
.journey-level.is-practiced{background:#e8f0ed;border:2px solid #84ac9c;box-shadow:inset 0 0 0 2px #f3f8f5}
.journey-practice-seal{display:grid;place-items:center;width:28px;height:28px;border:2px double #4b826d;border-radius:50%;color:#39715c;font-size:19px;font-weight:800;transform:rotate(-10deg)}
.journey-level.is-practiced .journey-status-label{color:#39715c}
.journey-ready-mark{color:#b9bfb0;font-size:24px}.journey-level.is-skipped .journey-ready-mark{color:#af8d48}
.game-level-button.has-clear-medal{background:#fff0bf;border-color:#c69c48;color:#70501c;font-weight:700}
.game-label-compact{display:none}
/* Compact the top controls as a single row on small screens, including Level 1000. */
@media(max-width:600px){
 .home-page .challenge-shell .game-play-modes{gap:2px;padding:3px;margin:7px 0 5px}
 .home-page .challenge-shell .game-play-modes button{min-width:0;font-size:9px;line-height:1.35;padding:7px 3px;white-space:nowrap}
 .home-page .challenge-shell .journey-progress{gap:7px;margin:5px 0;font-size:8px;line-height:1.4;white-space:nowrap}
 .home-page .challenge-shell .journey-progress progress{flex:0 1 65px;min-width:30px;height:4px}
 .home-page .challenge-shell .game-controls{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:4px;margin:6px 0;flex-wrap:nowrap}
 .home-page .challenge-shell .game-controls .game-action{min-width:0;min-height:31px;padding:5px 5px;font-size:9px;line-height:1.35;white-space:nowrap;border-radius:8px}
 .home-page .challenge-shell .game-puzzle-switch{display:flex;gap:3px;min-width:0;width:100%}
 .home-page .challenge-shell .game-puzzle-switch>.game-action{flex:0 0 24px;padding-left:3px;padding-right:3px}
 .home-page .challenge-shell .game-puzzle-switch>.game-level-button{flex:1 1 auto;min-width:0;font-size:9px;font-variant-numeric:tabular-nums}
 .home-page .challenge-shell .game-label-full,.home-page .challenge-shell .game-label-prefix{display:none}
 .home-page .challenge-shell .game-label-compact{display:inline}
 .home-page .challenge-shell .game-time-options{font-variant-numeric:tabular-nums}
 .home-page .challenge-shell .game-time-options span{font-size:8px}
 .home-page .challenge-shell .game-controls[data-mode="practice"]{grid-template-columns:82px minmax(0,1fr) auto}
 .home-page .challenge-shell .game-field{grid-column:auto;display:flex;align-items:center;gap:0;min-width:0}
 .home-page .challenge-shell .game-difficulty-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .home-page .challenge-shell .game-field select{width:82px;min-width:0;min-height:31px;font-size:9px;padding:5px 13px 5px 3px}
}
@media(max-width:600px){.journey-level{min-height:95px;padding:8px 3px;gap:3px}.journey-level strong{font-size:18px}.journey-level .journey-status-label{font-size:8px}.journey-level.is-cleared .journey-status-label{padding:2px 3px}.journey-map-legend{font-size:9px}}
