/* Reading hierarchy: 16px navigation, 18px copy, 22px cards, 26px sections.
   Puzzle glyphs keep their independent, larger sizes. */
html { font-size:18px; }
body { font-size:18px; line-height:1.45; }
.button,button.plain,select { font-size:17px; }
input,textarea { font-size:18px; }
.button,.button.small,select { min-height:44px; padding:8px 12px; border-radius:10px; }
p,small,label { line-height:1.45; }
.eyebrow { font-size:15px; letter-spacing:.08em; }
.subtitle,.status,.board-caption,.clue,.side-note p,footer,.save-note { font-size:17px; }
.status { border-radius:10px; }
.number-pad { grid-template-columns:repeat(5,1fr); }
dialog { max-height:calc(100dvh - 24px); overflow:auto; }
.boost-dialog { padding:20px; border-radius:20px; }
.boost-dialog h2 { font-size:28px; line-height:1.15; }
.boost-dialog>p,.boost-dialog .gentle-help p,.boost-choices small,.boost-dialog .boost-actions .plain,.rewarded-help-preview small { font-size:17px; }
.boost-dialog .boost-owned { font-size:18px; padding:10px 14px; border-radius:12px; }
.boost-dialog .boost-art { width:52px; height:52px; }
.boost-dialog .boost-art svg { width:30px; height:30px; }
.boost-dialog .boost-actions { gap:12px; flex-wrap:wrap; }
.boost-dialog .boost-actions .plain { min-height:48px; }
.boost-choices .button,.rewarded-help-preview .button.primary { font-size:19px; min-height:52px; white-space:normal; }
.feedback-dialog p,.feedback-dialog label,.feedback-dialog small,.email-dialog p,.email-dialog label,.email-dialog .email-preview-note { font-size:17px; }
.feedback-dialog input,.feedback-dialog textarea,.email-dialog input,.email-dialog select { font-size:18px; padding:12px; }
.email-entry small,.newsletter-invitation p { font-size:17px; }
.help-page p,.help-page summary,.help-page .button { font-size:18px; }
.library-intro h1,.garden-intro h1,.help-page h1 { font-size:40px; line-height:1.15; }
.pack-intro h1 { font-size:36px; line-height:1.15; }
.help-page h2 { font-size:26px; line-height:1.2; }

/* The drawer shares the bottom bar's icon vocabulary and soft selected tiles. */
#site-drawer { padding:14px; width:min(420px,calc(100% - 20px)); max-height:calc(100dvh - 20px); border-radius:20px; }
#site-drawer[open] { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:8px; }
#site-drawer .drawer-brand { grid-column:1; grid-row:1; align-self:center; margin:0; }
#site-drawer .drawer-brand img { width:220px; }
#site-drawer .drawer-heading { display:contents; }
#site-drawer .drawer-heading h2 { grid-column:1/-1; grid-row:2; font-size:22px; line-height:1.2; margin:0 0 2px; }
#site-drawer #close-menu { grid-column:2; grid-row:1; align-self:center; min-height:44px; min-width:44px; border-radius:50%; background:#e9efde; }
#site-drawer nav { grid-column:1/-1; gap:7px; margin:0; }
#site-drawer nav a { display:grid; grid-template-columns:40px minmax(0,1fr) 18px; align-items:center; gap:8px; padding:10px; min-height:66px; border:1px solid #cbd5c0; border-radius:12px; background:#fffdf6; }
#site-drawer nav .drawer-icon { display:grid; place-items:center; width:40px; height:40px; margin:0; background:#e8eed9; color:#315b43; border-radius:10px; }
#site-drawer .drawer-icon svg { width:24px; height:24px; }
#site-drawer nav .drawer-copy { margin:0; color:#234b3d; }
#site-drawer .drawer-copy strong { display:block; font:600 19px/1.2 var(--font); }
#site-drawer .drawer-copy small { display:block; margin-top:3px; font:16px/1.3 var(--font); color:#465d4b; }
#site-drawer nav .drawer-arrow { font-size:22px; margin:0; }
#site-drawer nav a[aria-current=page] { background:#e8eedb; border-color:#819975; }
#site-drawer .drawer-newsletter { font-size:19px; padding:10px; border:1px solid #cbd5c0; border-radius:12px; }
#site-drawer .drawer-newsletter span { font-size:17px; }
@media(max-height:600px) {
 #site-drawer .drawer-heading h2 { display:none; }
 #site-drawer .drawer-brand img { width:195px; }
 #site-drawer nav a { padding:8px 10px; }
 #site-drawer .drawer-newsletter span { display:none; }
}
@media(max-height:460px) and (min-width:560px) {
 #site-drawer { width:min(640px,calc(100% - 20px)); }
 #site-drawer nav { grid-template-columns:1fr 1fr; }
}

/* The edition stays compact by removing tiny decorative previews, not readable copy. */
.daily-edition .eyebrow,.edition-heading>span { font-size:16px; }
.edition-title h1 { font-size:clamp(30px,3.5vw,44px); line-height:1.12; }
.edition-title p { font-size:18px; }
.daily-edition .begin-journey { font-size:19px; min-height:52px; }
.edition-reward,.path-list-heading a { font-size:16px; }
.edition-reward { flex-wrap:wrap; gap:8px; }
.stop-copy strong { font-size:19px; line-height:1.2; }
.stop-copy small,.stop-number,.daily-discover small { font-size:16px; color:#465c49; }
.daily-stop { min-height:72px; }
.daily-discover strong { font-size:24px; }
.library-type,.library-refine>summary,.compact-resume>summary,.library-count,.library-detail,.library-action,.library-kind,.library-pace,.library-summary,.library-progress,.compact-resume>summary span { font-size:17px; }
.library-type span { font-size:16px; }
.library-card h2 { font-size:22px; line-height:1.2; }
.library-kind,.library-detail { font-size:16px; }
.library-search input { font-size:18px; }
.pack-families a,.pack-card strong,.pack-card .pack-scene>span,.pack-intro-action p,.pack-quickstart p:not(.eyebrow) { font-size:17px; }
.pack-card h2 { font-size:22px; line-height:1.2; min-height:0; }
.pack-card p,.pack-intro-copy p,.garden-intro p:not(.eyebrow) { font-size:18px; }
.passport-compact-identity>span,.passport-compact .passport-cover-stats,.passport-focus>p,.focus-meter,.badge-keep span,.mission-top,.mission-card p,.boost-guide-grid span { font-size:17px; }
.passport-compact .level-medal small { font-size:15px; }
.passport-compact .passport-cover-stats strong { font-size:22px; }
.badge-keep strong { font-size:20px; line-height:1.2; }
.journey-complete p.completion-label,.journey-complete .win-reward>p,.journey-complete .completion-options .plain,.journey-complete .completion-options a,.win-reward>a,.win-mission,.next-label small { font-size:17px; }
.journey-complete h2 { font-size:30px; line-height:1.15; }
.journey-complete .win-stars { font-size:22px; }
.journey-complete .next-puzzle-card { min-height:64px; padding:12px; }
.journey-complete .next-label strong { font-size:19px; }
.passport-cover .eyebrow,.passport-focus .eyebrow { font-size:16px; }
.focus-heading>span,.badge-shelf .section-heading a,.passport-focus small { font-size:17px; }
.focus-meter strong,.mission-play small,.win-mission>span,.win-mission>strong { font-size:17px; }
.passport-compact .level-medal small,.boost-dialog .eyebrow,.email-dialog .eyebrow,.clue-columns h2 { font-size:16px; }
.cross-pan-note { display:none; }

/* Put the five playable stops before rewards and discovery. */
.daily-edition.daily-play-header { padding:12px 16px; border-radius:16px; margin-bottom:12px; }
.daily-play-header .edition-title { margin:8px 0 0; gap:8px 12px; flex-wrap:wrap; }
.daily-play-header .edition-title h1 { font-size:28px; line-height:1.15; margin:0; min-width:0; flex:1 1 6em; }
.daily-play-header .begin-journey { width:auto; flex:none; min-height:44px; font-size:18px; padding:8px 12px; gap:10px; }
.daily-play-header .begin-journey span { margin:0; }
.daily-path-footer { max-width:760px; margin:12px auto 0; }
.daily-path-footer .edition-reward { margin:0; color:var(--ink); }
.daily-path-footer .edition-reward a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; min-height:44px; }
.daily-all-puzzles { display:flex; align-items:center; width:fit-content; min-height:44px; font-size:17px; }

@media(max-width:759px) {
 body:not(.in-puzzle-journey) main { padding:14px 16px calc(76px + env(safe-area-inset-bottom)); }
 #mobile-navigation { height:auto; min-height:54px; padding:4px 12px calc(4px + env(safe-area-inset-bottom)); }
 #mobile-navigation a { flex-direction:row; min-width:0; min-height:44px; font-size:16px; line-height:1.2; gap:5px; padding:4px 2px; border-radius:10px; }
 #mobile-navigation a span { overflow-wrap:anywhere; }
 #mobile-navigation a svg { width:20px; height:20px; flex:none; }
 .daily-edition { padding:16px; }
 .edition-title { margin:12px 0; }
 .edition-title h1 { font-size:30px; margin-bottom:6px; }
 .edition-title p { font-size:17px; line-height:1.4; }
 .edition-sun svg { width:38px; height:38px; }
 .daily-play-header .edition-title h1 { font-size:24px; }
 .path-list-heading h2 { font-size:24px; }
 .daily-stop { grid-template-columns:22px 40px minmax(0,1fr) 18px; gap:9px; padding:9px 12px; min-height:72px; }
 .daily-stop .stop-preview { display:none; }
 .stop-game-icon { width:40px; height:40px; border-radius:10px; }
 .stop-game-icon svg { width:25px; height:25px; }
 .library-grid,.pack-grid { grid-template-columns:1fr; gap:12px; }
 .library-card { display:grid; grid-template-columns:84px minmax(0,1fr); align-items:stretch; }
 .library-card .card-picture { width:84px; height:100%; min-height:132px; border:0; }
 .library-card .library-card-copy { padding:12px; }
 .library-card .library-pace { font-size:16px; padding:4px 8px; }
 .library-type { font-size:16px; min-height:44px; }
 .library-intro h1,.garden-intro h1,.help-page h1,.pack-intro h1 { font-size:28px; line-height:1.15; }
 .help-page h2 { font-size:24px; }
 .library-count { margin:8px 0; }
 .pack-card { display:grid; grid-template-columns:86px minmax(0,1fr); }
 .pack-card .pack-scene { padding:10px 6px; }
 .pack-card .pack-scene .garden-badge { width:60px; height:67px; }
 .pack-card .pack-scene>span { font-size:16px; white-space:normal; }
 .pack-card>div:last-child { padding:12px; }
 .pack-card .pack-game-types svg { width:20px; height:20px; }
 .pack-quickstart { grid-template-columns:44px minmax(0,1fr); padding:14px; gap:8px; }
 .pack-quickstart>.garden-badge { width:46px; height:51px; }
 .pack-quickstart strong { font-size:22px; line-height:1.2; }
 .pack-quickstart .button { grid-column:1/-1; min-height:44px; font-size:17px; }
 .pack-quickstart .button:after { content:none; }
 .pack-intro { padding:18px; grid-template-columns:minmax(0,1fr) 64px; }
 .passport-compact { padding:16px; grid-template-columns:60px minmax(0,1fr); }
 .passport-compact>.level-medal { width:56px; height:56px; }
 .passport-compact h1 { font-size:26px; line-height:1.15; }
 .passport-focus { padding:14px; }
 .passport-focus h2 { font-size:24px; line-height:1.2; margin:8px 0 6px; }
 .passport-focus .button { font-size:17px; min-height:46px; }
 .badge-collection { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .badge-keep { padding:16px 10px; }
 .badge-keep .garden-badge { width:76px; height:84px; }
 .badge-shelf .section-heading h2 { font-size:24px; }
 .email-entry small { font-size:17px; }
 .email-entry .button { font-size:17px; }

 /* A quiet header leaves the available height to the puzzle. */
 body.in-puzzle-journey .masthead { height:52px!important; min-height:52px!important; padding:2px 10px; }
 #top-path .top-path-label { display:none; }
 #top-path .top-stop { width:40px; flex-basis:40px; min-height:44px; }
 #top-path .top-stop>span { width:29px; height:29px; font-size:17px; }
 body.in-puzzle-journey main { padding:0 12px 12px; min-height:0; }
 body.in-puzzle-journey .game-play { padding:0; }
 body.in-puzzle-journey .game-heading { padding:4px 0 6px; margin:0; gap:6px; }
 body.in-puzzle-journey .game-heading h1 { font-size:23px; line-height:1.15; letter-spacing:-.035em; }
 .game-heading .game-title-icon,.game-heading .boost-chip>svg { display:none!important; }
 .game-heading #use-boost { padding:6px 9px!important; min-height:44px!important; border-radius:10px; }
 .game-heading #use-boost .boost-chip-label,.game-heading #use-boost strong { font-size:17px; }
 .game-heading .play-tools>summary { font-size:17px; min-height:44px!important; padding:7px 9px; border-radius:10px; }
 .play-tools>div { min-width:min(300px,calc(100vw - 24px)); padding:12px; gap:8px; }
 .play-tools .button,.play-tools .plain { font-size:18px; min-height:48px; }
 .play-instruction { min-height:0; margin:6px 0; line-height:1.35; }
 .play-instruction>span,.boost-intro { font-size:16px; color:#40573f; }
 .boost-intro { margin:2px 0; }
 body[data-view=cross] .play-instruction { display:none; }
 .search-live { font-size:17px; margin:6px 0; }
 .search-live strong,.search-live .search-count { font-size:17px; }
 .search-keepsakes { display:none!important; }
 body[data-view=search] .board-wrap>.word-list { margin:5px 0 8px; gap:6px; }
 body[data-view=search] .board-wrap>.word-list li,body[data-view=search] .board-wrap>.word-list li.bank-extra { font-size:17px; min-height:40px; padding:7px 10px; letter-spacing:0; border-radius:10px; }
 body:not(.review-game-ads)[data-view=search] .search-grid { width:100%; max-width:100%!important; padding:4px; gap:1px; }
 .search-cell { font:600 20px/1 var(--font); color:#234b3d; }
 .search-visible-tools { margin:8px 0 0; gap:8px; }
 .search-visible-tools .button { font-size:17px; min-height:48px; }
 body[data-view=search] .search-board-scroll { max-height:max(210px,calc(100svh - 300px)); overflow:auto; overscroll-behavior:contain; }
 body[data-view=search] .search-board-scroll.large { max-height:max(210px,calc(100svh - 300px)); }
 body[data-view=search] .search-board-scroll.large .search-grid { max-width:none!important; }
 .search-board-scroll.large .search-cell { font-size:24px; }
 body[data-view=sudoku] .sudoku-grid { max-width:min(100%,max(280px,calc(100svh - 330px))); }
 .sudoku-cell { font:600 28px/1 var(--font); }
 .sudoku-notes { font-size:12px; }
 .sudoku-tools { margin:8px auto; gap:8px; }
 .sudoku-tools .button { min-height:46px; font-size:18px; }
 .number-pad { grid-template-columns:repeat(5,1fr); gap:6px; margin-top:6px; }
 .number-pad button { min-height:48px; padding:5px; font-size:26px; font-weight:600; border-radius:10px; border-color:#a5b499; }
 .number-pad #erase { font-size:18px; }
 .cross-board-viewport { overflow:auto; max-height:max(205px,calc(100svh - 345px)); padding:3px; overscroll-behavior:contain; }
 body[data-view=cross].cross-touch-keyboard .cross-grid { width:100%; max-width:none!important; min-width:318px; }
 .cross-cell input { font-size:20px; padding-top:5px; line-height:1; }
 .cross-cell small { font:11px/1 var(--font); left:1px; }
 body[data-view=cross] .current-clue { font-size:18px; line-height:1.3; padding:8px 12px; margin:6px 0; min-height:58px; border-radius:10px; }
 body.cross-touch-keyboard .cross-keyboard { gap:5px; margin:7px auto 0; }
 .cross-keyboard button,.cross-keyboard [data-key] { min-height:44px; font-size:20px; font-weight:600; border-radius:7px; }
 body[data-view=cross] .cross-visible-tools { margin:8px 0 0; gap:8px; }
 body[data-view=cross] .cross-visible-tools .button { min-height:46px; font-size:17px; padding:8px 10px; }
 body[data-view=cross].cross-touch-keyboard:not(.puzzle-finished) .play-layout { display:block; height:calc(100svh - 130px - env(safe-area-inset-bottom)); min-height:430px; }
 body[data-view=cross].cross-touch-keyboard .board-wrap { display:flex; flex-direction:column; height:100%; }
 body[data-view=cross].cross-touch-keyboard .cross-board-viewport { flex:1 1 auto; min-height:150px; max-height:none; }
 body[data-view=cross].cross-touch-keyboard .board-wrap>:not(.cross-board-viewport) { flex-shrink:0; }
 body.cross-touch-keyboard .cross-keyboard { width:100%; }
 body.review-game-ads[data-view=cross].cross-touch-keyboard:not(.puzzle-finished) .play-layout { height:calc(100svh - 204px - env(safe-area-inset-bottom)); }
 body.review-game-ads.cross-touch-keyboard .cross-pan-note { display:block; font-size:16px; text-align:center; margin:3px 0; }
 .scramble-wrap { padding:16px 12px!important; border-radius:18px; }
 .scramble-counter { font-size:18px; }
 .scramble-clue { font-size:23px; line-height:1.35; }
 .scramble-letters button { min-width:42px; min-height:52px; font-size:29px; border-radius:10px; }
 .answer-form input { font-size:26px; min-height:54px; }
 .answer-actions .button,.scramble-extra .button,.scramble-extra .plain { min-height:48px; font-size:18px; }
 .maze-view-controls,.maze-view-controls .button { font-size:18px; }
 .maze-view-controls { margin:6px 0; }
 body[data-view=maze] .maze-viewport { height:min(360px,max(185px,calc(100svh - 360px))); border-radius:12px; }
 .maze-pad { grid-template-columns:repeat(3,60px); grid-template-rows:repeat(2,48px); gap:6px; margin:8px 0; }
 .maze-pad button { font-size:28px; border-radius:10px; border-color:#a5b499; }
 .maze-help .button,.maze-help .plain { font-size:18px; min-height:48px; }
 .journey-complete { padding:12px 4px; }
 .journey-complete h2 { font-size:30px; margin:10px auto 16px; }
 .completion-emblem { width:58px; height:58px; margin:8px auto 18px; border-radius:20px; }
 .completion-emblem svg { width:32px; height:32px; }
 .journey-complete .completion-label { line-height:1.4; }
 .journey-complete .win-reward { padding:14px; border-radius:14px; }
 .journey-complete .completion-options { flex-wrap:wrap; gap:12px; }
}
@media(max-width:759px) and (max-height:700px) {
 /* A short screen cannot accommodate an anchor without compromising readable play. */
 body.review-game-ads .game-ad-dock { display:none; }
 body.review-game-ads { --game-ad-space:0px; }
 body.review-game-ads[data-view=search] .search-grid { max-width:100%!important; }
 body.review-game-ads[data-view=sudoku] .sudoku-grid { max-width:min(100%,max(280px,calc(100svh - 330px))); }
 body.review-game-ads[data-view=maze] .maze-viewport { height:min(360px,max(185px,calc(100svh - 360px))); }
 body.review-game-ads[data-view=cross].cross-touch-keyboard:not(.puzzle-finished) .play-layout { height:calc(100svh - 130px - env(safe-area-inset-bottom)); }
 .boost-intro { display:none; }
 body[data-view=sudoku] .play-instruction { margin:4px 0; }
 .scramble-wrap { padding:10px!important; margin:8px auto; }
 .scramble-wrap .scramble-clue { margin:10px 0; }
 .scramble-wrap .scramble-letters { margin:12px 0; }
 .cross-board-viewport { max-height:max(160px,calc(100svh - 440px)); }
 body.cross-touch-keyboard .cross-pan-note { display:block; font-size:16px; text-align:center; margin:3px 0; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
