/* Pfoten-Advent 1.15 — shared winter storybook palette, drawn art and clear controls. */
:root {
  --snow: #fff5e4; --muted: #cedad9; --gold: #f1d39c;
  --cranberry: #99536c; --cranberry-bright: #b4697e;
  --night: #152938; --glass: #182e3be8; --line: #cfdfd124;
  --ink: #334d50; --ink-soft: #5c7072; --paper: #fff8eb; --paper-shade: #f0e6d5;
  --pine: #416f67; --mint: #d9e8df; --rose: #ad657c;
  --shadow: 0 18px 60px #07142155;
  font-family: "Segoe UI", system-ui, sans-serif;
}
body { background-color: #152a38; }
body.calendar-active { background: radial-gradient(ellipse at 18% 0, #52736b40, transparent 50%), radial-gradient(ellipse at 90% 60%, #945c7620, transparent 40%), #152a38; }
main { width: min(1420px, calc(100% - 40px)); padding-top: 32px; }
button, input, select, textarea { font: inherit; }
button { touch-action: manipulation; }
button:not(:disabled) { transition: background .16s, border-color .16s, box-shadow .16s, transform .16s; }
button:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline: 3px solid #a5d6d8; outline-offset: 3px; }
button:disabled { cursor: default; }
.game-art { display: block; width: 100%; height: 100%; flex: none; overflow: visible; }
.glass { border-color: #b3c8b733; background: linear-gradient(120deg, #223f45f5, #1a2c40ed); box-shadow: 0 12px 34px #0714224d; }
.login-card { position: relative; overflow: hidden; color: var(--ink); background: #fff8eaf5; border: 1px solid #ead7b7; border-radius: 24px; box-shadow: 0 18px 70px #07142166; }
.login-card::after { content: '✦'; position: absolute; top: 20px; right: 22px; width: 88px; height: 88px; background: none; color: #a78660; font: 90px Georgia, serif; opacity: .06; pointer-events: none; }
.login-card h1 { font-size: clamp(2.5rem, 7vw, 3.5rem); color: #385d59; letter-spacing: -.045em; }
.login-card .eyebrow { color: var(--rose); }
.login-card .intro, .login-card label { color: #6a6e70; }
.login-card input { color: #354e51; background: #f1e9db; border-color: #cabfac; box-shadow: inset 0 2px 3px #665f590a; }
.login-card input:focus { border-color: var(--pine); box-shadow: 0 0 0 4px #59867b20; }
.login-card .icon-button { color: #697b79; }
.login-card .error { color: #a24964; }
.cat-seal { width: 80px; height: 80px; padding: 7px; border: 1px solid #dcc7ab; border-radius: 26px; background: #f0e3cf; box-shadow: 0 4px 0 #d8c2a6; transform: rotate(-7deg); }
.primary-button, .copy-button { background: #a15c73; color: #fff9ee; box-shadow: 0 3px 0 #744b5d; border-radius: 12px; }
.primary-button:hover { filter: none; background: #ac647b; }
.quiet-button, .scene-control { background: #ffffff08; border-color: #b9cebc44; color: #e8eee4; border-radius: 11px; }
.quiet-button:hover, .scene-control:hover:not(:disabled) { background: #cfdfd11c; }
.calendar-header { gap: 20px; border-radius: 22px; padding: 27px 30px; align-items: center; }
.calendar-header h1 { font-size: clamp(2.3rem, 4.8vw, 3.8rem); color: #fff1d8; }
.calendar-header .eyebrow { color: #bfceaf; font-size: .72rem; letter-spacing: .17em; }
.calendar-header #welcomeText { margin: 10px 0 0; font-size: .95rem; }
.header-actions .quiet-button { min-height: 43px; padding: 0 14px; font-size: .86rem; }
.farm-overview { border-radius: 18px; background: linear-gradient(110deg, #3b665ef0, #29494c); border-color: #bfd0a74a; }
.farm-overview .primary-button { width: auto; background: #eed2a3; color: #36504e; box-shadow: 0 3px #c0a385; margin-top: 0; }
.farm-overview-art svg { filter: drop-shadow(0 3px 1px #162d3750); }
.scene-toolbar { border-radius: 16px; border-color: #cfdfd126; margin-top: 14px; }
.scene-toolbar strong { color: #efe5cf; font-size: 1.07rem; }
.scene-viewport { border: 2px solid #a3b9a745; box-shadow: 0 14px 32px #06152166; }
.scene-help, .footer-note { color: #a4bab4; font-size: .82rem; }
.door { border-color: #e3cea477; box-shadow: inset 0 1px #fff5ce2a, 0 2px 8px #08141f40; }
.door-opened { box-shadow: 0 0 12px #f8d88865, inset 0 0 12px #ffe0ac22; }
.day-dialog { color: #f8f0de; border: 1px solid #9ab8a66b; border-radius: 23px; background: #1b303b; }
.day-content { padding: clamp(16px, 3vw, 34px); }
.day-kicker { display: inline-flex; padding: 5px 11px; margin: 0; border-radius: 20px; border: 1px solid #a7c2ad45; background: #abc6af12; color: #d4ddc1; font-size: .76rem; letter-spacing: .06em; }
.day-content > h2 { margin: 12px 54px 22px 0; color: #fff1d6; font-size: clamp(1.9rem, 4vw, 3rem); }
.dialog-close { color: #edead9; border-color: #a4bbaf55; background: #223e49; z-index: 20; }
.dialog-close:hover { background: #486664; }
.key-card { max-width: 920px; margin: 26px auto 0; padding: 24px; color: #405955; border: 1px solid #d6b98f; background: #f3e1bd; box-shadow: 0 6px 0 #b5a48840; }
.key-card > strong { display: flex; align-items: center; gap: 10px; color: #536451; font: 700 1.3rem Georgia, serif; }
.key-card > strong .game-art { width: 42px; height: 42px; }
.steam-key { color: #7c5461; background: #fff9e9; padding: 17px; border: 1px dashed #bba68b; }
.key-card .copy-button { min-height: 44px; }
/* A shared paper panel for every minigame, with a distinct illustration at its entrance. */
.game-card { --muted: #667879; --line: #b9c8bc; --gold: #dca96c; --snow: #fff8eb; width: 100%; max-width: 1120px; margin: 18px auto; padding: clamp(15px, 2.3vw, 27px); color: var(--ink); border: 1px solid #d7cebb; border-radius: 22px; background: #fff8eb; box-shadow: 0 8px 0 #dcd0b529, 0 17px 35px #07152240; }
.game-heading { display: flex; align-items: center; gap: 17px; margin: 0 0 20px; }
.game-heading > div:last-child { min-width: 0; }
.game-heading h3, .game-card .game-title { margin: 0 0 7px; color: #3e635e; font: 700 clamp(1.5rem, 2.8vw, 2.15rem) Georgia, serif; line-height: 1.12; letter-spacing: -.02em; }
.game-heading p { margin: 0; color: #607473; font-size: .93rem; line-height: 1.5; }
.game-heading .game-eyebrow { margin-bottom: 5px; font-size: .64rem; letter-spacing: .12em; color: #9b5f73; text-transform: uppercase; font-weight: 800; }
.game-emblem { display: grid; place-items: center; flex: none; width: 78px; height: 78px; padding: 9px; background: #ece3d1; border: 1px solid #d3c4a8; border-radius: 23px; box-shadow: 0 3px #d7c7ad; transform: rotate(-4deg); }
.game-card :is(.snake-stats, .parcours-scoreboard, .shop-info, .nonogram-stats, .bongo-hud, .cave-hud, .cafe-hud, .winter-post-hud, .star-forest-hud, .four-paws-hud) { display: flex; flex-wrap: wrap; gap: 10px 17px; min-height: 49px; align-items: center; margin: 15px 0; padding: 11px 15px; color: #43645d; background: #e5ece0; border: 1px solid #c5d2bc; border-radius: 12px; font-size: .89rem; font-weight: 750; }
.game-card :is(.parcours-status, .shop-status, .escape-status, .nonogram-status, .bongo-status, .cave-status, .cafe-status, .winter-paws-status, .winter-post-status, .star-forest-status, .four-paws-status) { color: #4d6762 !important; background: #f1ebdb; padding: 12px 14px; border: 1px solid #dfd3ba; border-left: 3px solid #b78b63; border-radius: 4px 12px 12px 4px; font-size: .9rem; line-height: 1.5; font-weight: 650; min-height: 3.1em; }
.game-card :is(.hunt-action, .cave-direction, .star-forest-arrow, .winter-paws-size, .winter-post-primary, .winter-post-secondary, .star-forest-interact, .star-forest-tool, .star-forest-next, .four-paws-primary, .four-paws-secondary) { min-height: 44px; color: #fff8e9; background: #47766b; border: 1px solid #3f6a63; border-radius: 10px; box-shadow: 0 3px 0 #2e514c; font-weight: 750; }
.game-card :is(.secondary-hunt-action, .winter-post-secondary, .star-forest-tool, .four-paws-secondary) { color: #45665f; background: #e7ecdf; border-color: #b7c8ae; box-shadow: 0 3px #ced6c3; }
.game-card :is(.hunt-action, .winter-post-primary, .star-forest-next, .four-paws-primary):hover:not(:disabled) { filter: none; background: #548375; transform: translateY(-1px); }
.game-card :is(.secondary-hunt-action, .winter-post-secondary, .star-forest-tool, .four-paws-secondary):hover:not(:disabled) { background: #d9e3d3; }
.game-card :is(.cave-help, .bongo-help, .cafe-help, .star-forest-help, .four-paws-help) { color: #687a75; }
.game-card :is(.cave-sidebar, .winter-post-sidebar, .star-forest-sidebar, .four-paws-sidebar) { padding: 16px; color: #3f5f5c; background: #edf0e3; border: 1px solid #c4cfb9; border-radius: 16px; box-shadow: none; }
.game-card :is(.cave-room-name, .winter-post-story h4, .star-forest-scene h4) { color: #42665f; }
.game-card :is(.winter-post-story p, .star-forest-scene p, .winter-post-guide, .winter-post-guide summary) { color: #5b716c; }
.game-card :is(.winter-post-eyebrow, .star-forest-eyebrow) { color: #a16b79; }
/* Snake: mint snow, a cream tabby body, stitched borders and readable high scores. */
.snake-card { max-width: 780px; }
.snake-board { border: 7px solid #5c8479; outline: 1px solid #9cab92; border-radius: 18px; box-shadow: 0 6px 0 #b9c8b5, inset 0 0 0 3px #ebf1dc; }
.snake-pad { grid-template-columns: repeat(3, 48px); gap: 7px; }
.snake-direction { width: 48px; height: 48px; color: #3e6863; background: #dce8d6; border: 1px solid #a7bda1; box-shadow: 0 3px #c0cdb5; font-size: 1.25rem; }
.snake-ranking { color: #4a6b64; background: #f3eedf; border: 1px solid #e0d4bc; }
.snake-ranking > strong { color: #906475; }
.snake-ranking > p, .snake-ranking-list .snake-ranking-empty { color: #6e7b74; }
.snake-ranking-list { gap: 0; list-style: none; padding: 0; counter-reset: ranking; }
.snake-ranking-list li { counter-increment: ranking; padding: 8px 0; color: #566b62; border-bottom: 1px solid #e6dcc7; }
.snake-ranking-list li::before { content: counter(ranking, decimal-leading-zero); color: #a58971; font-size: .79rem; width: 26px; }
.snake-ranking-list li strong { margin-left: auto; color: #955c71; }
.snake-ranking-list li:first-child { color: #3a6c5b; }
/* Parcours: a little winter board, with individual illustrated special squares. */
.parcours-card { max-width: 860px; }
.parcours-board { gap: 8px; padding: 16px; border: 5px solid #7d9b8c; background: #cadbcf; border-radius: 22px; box-shadow: 0 5px #b3bda2; }
.parcours-tile { min-height: 90px; background: #eff1e3; border: 1px solid #b7cab5; box-shadow: 0 4px #aec3b1, inset 0 1px #fff; border-radius: 13px; }
.parcours-tile:nth-child(6n + 2), .parcours-tile:nth-child(6n + 5) { background: #eadbe1; border-color: #d1b7be; box-shadow: 0 4px #c6aab5; }
.parcours-tile:nth-child(6n + 3) { background: #f3e5c9; border-color: #cfbb91; box-shadow: 0 4px #cab795; }
.parcours-number { color: #64786d; font-size: .75rem; }
.parcours-special { width: 32px; height: 32px; }
.parcours-token { width: 51px; height: 51px; font-size: 1rem; filter: drop-shadow(0 3px 1px #47575455); }
.miez-token { filter: drop-shadow(0 3px 1px #47575455); }
.parcours-token .game-art { width: 100%; height: 100%; }
/* Sorting shop: jars and treats on warm wood shelves. */
.shop-card { max-width: 1000px; }
.shop-card h3:not(.game-title) { color: #587267; font-size: 1rem; }
.shop-stock { gap: 10px; }
.shop-item { padding: 12px; gap: 12px; min-height: 82px; color: #536562; background: #f4eddf; border: 1px solid #d8c7ac; border-radius: 14px; box-shadow: 0 3px #e5d6bf; }
.shop-item-icon { width: 48px; height: 48px; }
.shop-item-selected { color: #4f6450; border: 2px solid #7f9b7e; background: #e4ebd7; box-shadow: 0 0 0 3px #92b49433; }
.shop-shelves { margin-top: 12px; gap: 14px; }
.shop-shelf { position: relative; min-height: 170px; padding: 14px 10px 24px; color: #fbf2dc; border: 5px solid #b49c81; border-bottom-width: 12px; border-radius: 12px; background: linear-gradient(#5a6e64, #708478); box-shadow: inset 0 7px 11px #32474755, 0 4px #c5ad8d; }
.shop-potion { background: linear-gradient(#756782, #9b8a9e); }
.shop-treat { background: linear-gradient(#997566, #b18c74); }
.shop-decor { background: linear-gradient(#54766b, #7b9c82); }
.shop-shelf-icon { width: 54px; height: 54px; }
.shop-shelf-item { display: inline-flex; align-items: center; gap: 4px; padding: 4px 6px; color: #fff6e8; font-size: .71rem; }
.shop-shelf-item .game-art { width: 25px; height: 25px; }
/* Escape: seven objects with original illustrations in a lamplit room. */
.escape-card { max-width: 1000px; }
.escape-inventory { color: #46635d; background: #e3ecde; border-color: #bccdb4; }
.escape-room { position: relative; padding: 22px; gap: 14px; border: 6px solid #bfac8c; border-radius: 18px; background: radial-gradient(ellipse at 50% 20%, #f0e6ce55, transparent 50%), repeating-linear-gradient(90deg, #7d9290 0 40px, #788c8822 40px 42px), #6f8886; box-shadow: inset 0 -14px #796956, 0 5px #d2bda0; }
.escape-object { min-height: 145px; color: #5d6359; background: #f4ecd5; border: 1px solid #c8b28c; border-radius: 12px; box-shadow: 0 4px #687974; }
.escape-object-icon { display: block; width: 77px; height: 77px; }
.escape-object-label { font-size: .8rem; }
.escape-door { background: #e9deca; }
.escape-discovered { border: 2px solid #a2b980; box-shadow: 0 0 0 4px #ccdfab50, 0 4px #6f8b72; }
.escape-lock { background: #f3ead7; border-color: #d9c6a3; }
.escape-lock label { color: #687666; }
/* Nonogram: pencil marks on a little squared-paper notebook. */
.nonogram-card { max-width: 800px; }
.nonogram-board { min-width: 310px; grid-template-columns: 60px repeat(10, minmax(0, 1fr)); border: 6px solid #afbdad; border-radius: 14px; background: #d2dbcc; box-shadow: 0 6px #849b87; }
.nonogram-corner, .nonogram-row-clue, .nonogram-col-clue { color: #5d786b; border-color: #c6d5c3; background: #e6eddb; }
.nonogram-col-clue { min-height: 64px; }
.nonogram-cell { background: #fff9e9; border-color: #ced5c1; color: #9b6979; }
.nonogram-cell.nonogram-filled { background: #b97583; border-color: #a36172; box-shadow: inset 2px 2px 0 #d3a2a7; }
.nonogram-cell.nonogram-crossed { background: #eef1e5; color: #94a399; }
.nonogram-cell.nonogram-strong-left { border-left-color: #879f89; }
.nonogram-cell.nonogram-strong-top { border-top-color: #879f89; }
/* Rhythm stage: a snow village backdrop, piano-like cards and illuminated notes. */
.bongo-stage { min-height: 235px; background: url('/art/winter-village.svg') center bottom / cover; border: 1px solid #b5c2b0; border-radius: 16px; }
.bongo-stage-banner { z-index: 1; color: #f8ead3; background: #6a556c; border: 1px solid #ad839a; border-radius: 7px 7px 22px 22px; font-size: .87rem; box-shadow: 0 4px #2b3c5155; }
.bongo-cat { width: 126px; height: 126px; margin-top: 24px; filter: drop-shadow(0 4px 1px #3c555950); }
.bongo-pad { border-color: #afad93; color: #554954; border-radius: 18px; box-shadow: 0 5px #8f9b85; }
.bongo-rose { background: #d7a6b0; }.bongo-gold { background: #ead49f; }.bongo-mint { background: #afcfb6; }.bongo-lilac { background: #c5b4d1; }
.bongo-notes { background: #edf0e4; padding: 10px; border-radius: 12px; }
.bongo-note { color: #677d70; opacity: .65; }
.bongo-note.bongo-note-current { opacity: 1; border-color: #aa7b76; box-shadow: 0 4px #bc9578; }
.bongo-note.bongo-note-done { opacity: .9; color: #40685b; border-color: #a5b793; }
.bongo-progress { border-color: #a4b9a7; background: #d5e2d2; }
.bongo-marker { color: #a1687d; }.bongo-target { border-color: #a58f68; }
/* Crystal cave: cold cut stone, soft crystalline light and wooden parcel details. */
.cave-board-wrap { border: 6px solid #95b0ad; background: radial-gradient(circle at 20% 12%, #e8d2d850, transparent 50%), #426879; box-shadow: inset 0 0 0 3px #c5d3c1, inset 0 0 30px #1e46557a, 0 5px #6e9694; }
.cave-floor { background: radial-gradient(circle at 25% 22%, #ffffff55 0 1px, transparent 2px), linear-gradient(145deg, #9db9bd, #769da8); border-color: #b9cbca; box-shadow: inset 0 -3px #5d829a44; }
.cave-rock { border-color: #9caabd; background: linear-gradient(135deg, #8a98ad 0 25%, #687d91 26% 68%, #52677e 69%); box-shadow: inset 3px 3px #bdc9d280, inset -3px -5px #3c597c; }
.cave-goal { background: radial-gradient(circle, #ece7cd, #93b6b8 70%); box-shadow: inset 0 0 0 2px #f7eac5; }
.cave-gift { background: #c28c9e; border-color: #96728c; }.cave-gift::before { background: #f2d5a5; }
/* Café: a warm room, paper order tickets and clearly separated ingredient shelves. */
.cafe-stage { border-width: 4px; border-color: #b69382; border-radius: 17px; }
.cafe-counter { background: repeating-linear-gradient(90deg, #a88773 0 24px, #b79a80 25px 48px); border-color: #e4c69c; }
.cafe-garland { border-color: #526f61; background: #718f75; }
.cafe-ticket, .cafe-tray { border-width: 1px; border-color: #d0bb9d; background-color: #fff9ea; }
.cafe-tray { box-shadow: inset 0 0 0 4px #ede0c5; }
.cafe-shelf { background: #e9dfc9; border: 1px solid #caba9b; box-shadow: 0 5px #bfa78b; border-radius: 12px; }
.cafe-item { border-width: 1px; border-color: #d2c2a5; border-radius: 12px; }
.cafe-slot { border-color: #bdb496; background: #ece5d1; }
.cafe-card h4 { color: #786553; }
/* Quilt: stitches and velvet patches, with separate drawings for light and dark cats. */
.winter-paws-header { color: #4d655a; }
.winter-paws-pool { border-color: #bec2a7; box-shadow: 0 3px #d0ccb5; }
.winter-paws-you { color: #81645a; background: #f1ddc2; }.winter-paws-rival { color: #e9eddc; background: #4f6671; }
.winter-paws-turn { color: #97687b; }
.winter-paws-board { border: 7px solid #ebd1ad; outline-color: #b3957d; background: repeating-linear-gradient(45deg, #bf8e9d 0 6px, #c39dab 6px 12px); box-shadow: 0 6px #ccb394, inset 0 3px 7px #75586750; }
.winter-paws-field { background: #bad0be; border: 1px dashed #f7efe2; box-shadow: inset 0 0 8px #789a7950; }
.winter-paws-field:nth-child(12n + 2), .winter-paws-field:nth-child(12n + 4), .winter-paws-field:nth-child(12n + 6), .winter-paws-field:nth-child(12n + 7), .winter-paws-field:nth-child(12n + 9), .winter-paws-field:nth-child(12n + 11) { background: #d3b6c2; box-shadow: inset 0 0 8px #a8799260; }
.winter-paws-kitty .winter-paws-cat, .winter-paws-miez .winter-paws-cat { filter: drop-shadow(0 3px 1px #55726470); }
.winter-paws-size.winter-paws-selected { background: #af748a; border-color: #975b74; }
.winter-paws-claims, .winter-paws-guide { color: #4e6b60; background: #e7edde; border: 1px solid #c3cdb5; }
.winter-paws-guide summary { color: #846174; }
/* Post and forest: snow paper tiles and proper miniature houses and evergreens. */
.winter-post-board { padding: 9px; border: 6px solid #bfa68c; background: #b4c6c0; outline: 1px solid #829c8e; box-shadow: 0 6px #cfb597, inset 0 0 0 3px #fff4da; }
.winter-post-tile { background: #ddeade; border-color: #bfd4c2; border-radius: 5px; }
.winter-post-illustration { width: 88%; height: 88%; max-height: none; background: none; border: 0; border-radius: 0; box-shadow: none; }
.winter-post-place.winter-post-home, .winter-post-place.winter-post-office { background: none; border: 0; box-shadow: none; }
.winter-post-place.winter-post-home { filter: drop-shadow(0 0 6px #f6dd97); }
.winter-post-road-fill, .winter-post-road-center { stroke: #e4ceaa; fill: none; }
.winter-post-road-center { fill: #e4ceaa; stroke: none; }
.star-forest-board-shell { border: 7px solid #7b9b84; background: #cad5bc; box-shadow: inset 0 0 0 3px #e3e8d3, 0 5px #a8b493; }
.star-forest-ground { background: radial-gradient(circle at 27% 17%, #fcf7e1 0 2px, transparent 3px), #d9e5d5; border-color: #c2d4be; }
.star-forest-border { background: radial-gradient(ellipse at 44% 16%, #c5d8c250 0 20%, transparent 21%), #6c9984; border-color: #769e88; }
.star-forest-tree { background: #9cbb9a; }
.star-forest-ice { background: linear-gradient(150deg, #e0ede6, #a0c6d1 65%, #b8d9d6); border-color: #93b1b5; }
.star-forest-friend { filter: drop-shadow(0 3px 1px #42596150); }
.star-forest-exit-mark { color: #fff0cc; background: #ae8a7e; }
/* Four in a row: warm wood supports and soft mint enamel. */
.four-paws-stage { background: #d4e0d0; border: 6px solid #b9a286; box-shadow: inset 0 0 0 3px #f0e7cf, 0 6px #9c846f; }
.four-paws-board { background: #658c80; border-color: #4f796d; box-shadow: inset 0 3px 5px #365c5360, 0 3px #c4d2bc; }
.four-paws-slot { background: #e2ecdf; border-color: #abc7b2; box-shadow: inset 0 3px 6px #51786e50; }
.four-paws-drop { color: #506f62; border-color: #bab69c; background: #f1e4c9; box-shadow: 0 3px #c6bca1; }
.four-paws-cream { border-color: #b6a184; background: #f4e2be; }.four-paws-coal { background: #506874; border-color: #384e60; }
.four-paws-chip svg, .four-paws-coal svg { width: 88%; height: 88%; filter: none; }
.four-paws-human-label { color: #856459; background: #efdbb7; }.four-paws-ai-label { color: #e9eddf; background: #506573; }
.four-paws-turn { color: #936075; }
/* Hidden cats keep their image/coordinates; only the frame, controls and result panel change. */
.cat-hunt-card { border: 1px solid #a9c0a65a; background: #223e45; border-radius: 16px; box-shadow: inset 0 1px #d5e4c522; }
.hunt-intro strong { color: #efddb6; font: 700 1.1rem Georgia, serif; }.hunt-intro span { padding: 7px 12px; border: 1px solid #8bab9277; border-radius: 20px; color: #dce7cc; background: #c9ddbe10; }
.hunt-action { background: #e9cba0; color: #365452; border: 1px solid #ceac82; box-shadow: 0 3px #926f5755; }
.secondary-hunt-action { color: #e1e9dc; background: #325254; border-color: #668d7d; box-shadow: 0 3px #163a3f; }
.fullscreen-hunt-action { color: #234d4c; background: #b9daca; border-color: #88b9a7; box-shadow: 0 3px #6f9d8b; }
.hunt-viewport { border: 2px solid #a6c1a287; border-radius: 13px; }
.hunt-finale { background: #244a48f5; border-color: #efcf91; border-radius: 20px; }
.hunt-game-shell:fullscreen, .hunt-game-shell.hunt-large-mode { background: #17303a; }
/* Farm: bright winter ground, a tactile tool belt, inventory cards and plant meters. */
.winter-farm { display: block; margin: 0; width: 100%; color: #3d5c55; background: #f9f3e4; }
.farm-title h2 { color: #3a685e; }.farm-title p { color: #647970; }.farm-title .eyebrow { color: #a7687b; }
.farm-hud-box { color: #416255; background: #e3ebd9; border: 1px solid #c3cbae; }.farm-hud-box span { color: #5e7665; }.farm-hud-box strong { color: #986a74; }
.farm-progress-meter { height: 7px; background: #c6d2b6; }.farm-progress-meter span { background: #719d7c; }
.farm-field-side, .farm-sidebar { background: #edf0e1; border: 1px solid #c9d1b6; border-radius: 18px; }
.farm-tool, .farm-shop-tab, .farm-mini-button { color: #456b5c; background: #dae5ce; border-color: #b1c2a2; border-radius: 10px; }
.farm-tool[aria-pressed="true"], .farm-shop-tab[aria-pressed="true"] { color: #fff5e4; background: #578273; border-color: #41675c; box-shadow: 0 3px #3e665a; }
.farm-board-hint { color: #6c7d6c; font-size: .82rem; }
.farm-field-scroll { border: 5px solid #90ac8c; background: #d9e5cf; box-shadow: 0 4px #b2c1a2; }
.farm-field { gap: 2px; background: #cee0c5; }
.farm-tile { border-radius: 8px; border-color: #b4ccaa; }
.farm-tile-meadow { background: radial-gradient(ellipse at 15% 13%, #faf5df 0 5%, transparent 6%), radial-gradient(ellipse at 79% 83%, #edf1d5 0 7%, transparent 8%), #bdd2b2; }
.farm-tile-soil { border-color: #c6b59a; background: repeating-linear-gradient(165deg, #9d8067 0 7px, #ac8b71 8px 15px); box-shadow: inset 0 3px 0 #836c5c50; }
.farm-tile-decor { background: #c8dabe; }
.farm-growth { position: absolute; top: 4px; left: 8px; right: 8px; height: 3px; background: #e8d6bb77; border-radius: 4px; overflow: hidden; }.farm-growth span { display: block; height: 100%; background: #dbeac2; }
.farm-tile-tag { left: 3px; right: 3px; bottom: 3px; padding: 2px; color: #4d6251; background: #f7edcbf5; font-size: .63rem; }
.farm-message { color: #886878; padding: 11px; border-radius: 10px; background: #f0e7d4; }
.farm-shop-heading h3 { color: #5e7960; }.farm-shop-heading p { color: #758470; }
.farm-shop-item { color: #4c6655; background: #fff9e9; border: 1px solid #d6d1b3; padding: 9px; margin-bottom: 9px; }.farm-shop-detail small { color: #7b8472; font-size: .74rem; }
.farm-shop-selected { border-color: #779b70; box-shadow: inset 3px 0 #779b70; }
.farm-mini-button { min-height: 40px; }.farm-buy { color: #735c4e; background: #eed7ad; border-color: #cbb592; }
.farm-reward { color: #645f52; background: #efe1c5; border-color: #d6bd91; }.farm-reward strong { color: #976974; }
/* Comfortable small-screen controls without shrinking the game below useful sizes. */
@media (max-width: 850px) {
 .calendar-header { align-items: start; flex-direction: column; }
 .header-actions { width: 100%; }
 .game-card :is(.cave-layout, .winter-post-layout, .star-forest-layout, .four-paws-layout) { grid-template-columns: 1fr; }
 .game-card :is(.cave-sidebar, .winter-post-sidebar, .star-forest-sidebar, .four-paws-sidebar) { max-width: 690px; width: 100%; margin: auto; }
}
@media (max-width: 600px) {
 main { width: calc(100% - 20px); padding-top: 18px; }
 .login-card { padding: 28px; }.calendar-header { padding: 21px; }
 .header-actions { gap: 7px; }.header-actions .quiet-button { flex: 1 1 auto; padding: 0 10px; font-size: .77rem; }
 .scene-toolbar { padding: 11px; gap: 10px; }.scene-toolbar strong { font-size: .93rem; }.scene-toolbar span { font-size: .76rem; }
 .day-dialog { width: calc(100% - 10px); border-radius: 16px; }.day-content { padding: 12px; }
 .game-card { padding: 12px; margin: 12px auto; border-radius: 15px; }
 .game-heading { gap: 11px; margin-bottom: 14px; }.game-heading h3 { font-size: 1.4rem; }.game-heading p { font-size: .8rem; }
 .game-emblem { width: 58px; height: 58px; padding: 6px; border-radius: 17px; }
 .game-card :is(.snake-stats, .parcours-scoreboard, .shop-info, .nonogram-stats, .bongo-hud, .cave-hud, .cafe-hud, .winter-post-hud, .star-forest-hud, .four-paws-hud) { font-size: .78rem; padding: 10px; gap: 7px 12px; }
 .game-card :is(.parcours-status, .shop-status, .escape-status, .nonogram-status, .bongo-status, .cave-status, .cafe-status, .winter-paws-status, .winter-post-status, .star-forest-status, .four-paws-status) { font-size: .82rem; padding: 10px; }
 .parcours-board { padding: 8px; gap: 5px; border-width: 3px; }.parcours-tile { min-height: 61px; padding: 4px; border-radius: 8px; }.parcours-special { width: 22px; height: 22px; }.parcours-token { width: 35px; height: 35px; }
 .shop-stock { grid-template-columns: repeat(2, minmax(0, 1fr)); }.shop-item { gap: 7px; padding: 8px; min-height: 76px; }.shop-item-icon { width: 37px; height: 37px; }.shop-item-name { font-size: .76rem; }
 .shop-shelves { gap: 7px; }.shop-shelf { min-height: 146px; padding: 10px 4px 15px; border-width: 3px; border-bottom-width: 8px; }.shop-shelf-icon { width: 40px; height: 40px; }.shop-shelf-label { font-size: .73rem; }.shop-shelf-item { font-size: .64rem; flex-direction: column; }
 .escape-room { padding: 10px; gap: 7px; border-width: 4px; }.escape-object { min-height: 112px; padding: 6px; }.escape-object-icon { width: 57px; height: 57px; }.escape-object-label { font-size: .71rem; }
 .bongo-pads { grid-template-columns: repeat(2, minmax(0, 1fr)); }.bongo-stage { min-height: 190px; }.bongo-cat { width: 98px; height: 98px; }
 .bongo-pad small { font-size: .75rem; }.bongo-pad { min-height: 100px; padding: 15px 7px; }
 .snake-board { border-width: 4px; }.snake-controls { gap: 8px; flex-wrap: wrap; }.snake-controls > button { flex: 1; }.snake-pad { margin: 4px auto; }
 .winter-farm { padding: 12px; }.farm-hud-box { min-width: 80px; }.farm-hud-progress { min-width: 160px; }
 .farm-overview .primary-button { width: 100%; flex: 1 1 100%; }.farm-overview h2 { font-size: 1.2rem; }
 .hunt-intro { align-items: center; flex-wrap: wrap; gap: 8px; }.hunt-intro strong { font-size: .95rem; }.hunt-intro span { font-size: .77rem; }
 .hunt-controls { gap: 7px; }.hunt-controls button { min-height: 44px; padding-inline: 11px; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; } }

/* A calm, continuous path and a large, readable roll. */
.parcours-board-shell { position: relative; isolation: isolate; }
.parcours-token { transition: left var(--parcours-travel-ms,550ms) cubic-bezier(.4,0,.2,1), top var(--parcours-travel-ms,550ms) cubic-bezier(.4,0,.2,1); will-change: left, top; }
.parcours-swapping .parcours-token { transition-duration: 950ms; }
.parcours-token.token-no-transition { transition: none; }
.parcours-won .kitty-token { animation: none; }
.parcours-dice-overlay { position: absolute; inset: 0; z-index: 8; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 24px; border-radius: 22px; background: #edf2e6d9; backdrop-filter: blur(3px); pointer-events: none; }
.parcours-dice-overlay[hidden] { display: none; }
.parcours-dice-label { padding: 9px 18px; border-radius: 30px; background: #fffaf0; color: #405c51; box-shadow: 0 3px 12px #354d3922; font-weight: 800; font-size: clamp(1rem, 3vw, 1.3rem); }
.parcours-big-die { width: clamp(105px, 23vw, 172px); aspect-ratio: 1; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: 10%; padding: clamp(18px, 4vw, 30px); border-radius: 23%; background: linear-gradient(145deg, #fffdf5, #f0dfc8); border: 3px solid #b69173; box-shadow: 0 8px 0 #aa8367, 0 18px 30px #37524033, inset 0 2px 0 #fff; transform: rotate(0deg); }
.parcours-big-die span { border-radius: 50%; background: #536e60; visibility: hidden; box-shadow: inset 0 2px 2px #263d3544; }
.parcours-big-die span.visible { visibility: visible; }
.parcours-big-die.is-rolling { animation: parcours-slow-roll 1.6s ease-in-out infinite; }
@keyframes parcours-slow-roll { 0% { transform: rotate(-18deg) rotateY(-18deg) scale(.94); } 50% { transform: rotate(18deg) rotateY(18deg) scale(1.02); } 100% { transform: rotate(-18deg) rotateY(-18deg) scale(.94); } }
.parcours-legend { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.parcours-legend > div { display: flex; align-items: center; gap: 10px; padding: 11px; background: #ecebdc; border: 1px solid #d6d5be; border-radius: 12px; font-size: .85rem; color: #486155; line-height: 1.4; }
.parcours-legend .game-art { width: 34px; height: 34px; flex-shrink: 0; }
.parcours-shuffle-note { color: #64776b !important; font-size: .8rem !important; line-height: 1.5; }
@media (max-width: 450px) { .parcours-legend { grid-template-columns: 1fr; gap: 6px; }.parcours-legend > div { padding: 8px 10px; }.parcours-dice-overlay { gap: 18px; } }
@media (prefers-reduced-motion: reduce) { .parcours-big-die.is-rolling { animation: none; }.parcours-token { transition: none; } }

/* The calendar occupies the available screen; the scene fits the remaining space. */
body.calendar-active { height: 100dvh; min-height: 0; overflow: hidden; }
body.calendar-active > main { height: 100dvh; min-height: 0; padding: 12px 0; display: flex; align-items: stretch; }
body.calendar-active .calendar-shell { height: 100%; min-height: 0; display: flex; flex-direction: column; gap: 9px; }
body.calendar-active .calendar-header { flex: 0 0 auto; padding: 13px 20px; gap: 12px; flex-direction: row; }
body.calendar-active .calendar-header h1 { margin: 3px 0; font-size: clamp(1.6rem, 3vw, 2.4rem); }
body.calendar-active .calendar-header .eyebrow { margin: 0; }
body.calendar-active .calendar-header #welcomeText { margin-top: 4px; font-size: .86rem; line-height: 1.35; }
body.calendar-active .header-actions { flex-wrap: wrap; gap: 7px; }
body.calendar-active .farm-overview { flex: 0 0 auto; margin: 0; padding: 9px 16px; gap: 12px; }
body.calendar-active .farm-overview-art svg { width: 46px; height: 46px; }
body.calendar-active .farm-overview h2 { font-size: 1.1rem; }
body.calendar-active .farm-overview p { font-size: .8rem; }
body.calendar-active .farm-overview .primary-button { width: auto; flex: 0 0 auto; padding: 10px 14px; }
body.calendar-active .scene-toolbar { flex: 0 0 auto; margin: 0; padding: 9px 15px; align-items: center; }
body.calendar-active .zoom-controls { flex-direction: row; }
body.calendar-active .scene-viewport { flex: 1 1 0; min-height: 0; max-height: none; margin: 0; overflow: hidden; display: flex; align-items: center; justify-content: center; background: #07121b; }
body.calendar-active .scene-stage { flex: 0 0 auto; min-width: 0; max-width: none; }
body.calendar-active .scene-image { object-fit: contain; }
body.calendar-active .scene-viewport.scene-zoomed { overflow: auto; display: block; }
body.calendar-active .scene-zoomed .scene-stage { margin: 0 auto; }
body.calendar-active .scene-help, body.calendar-active .footer-note { flex: 0 0 auto; margin: 0; text-align: center; font-size: .76rem; line-height: 1.35; }
@media (max-width: 700px) {
 body.calendar-active > main { padding: 8px 0; }
 body.calendar-active .calendar-shell { gap: 7px; }
 body.calendar-active .calendar-header { padding: 10px 12px; flex-wrap: wrap; }
 body.calendar-active .calendar-header > div:first-child { flex: 1 1 160px; }
 body.calendar-active .header-actions { flex: 1 1 auto; justify-content: flex-end; }
 body.calendar-active .quiet-button { padding: 8px 10px; font-size: .75rem; }
 body.calendar-active .farm-overview { flex-wrap: nowrap; padding: 8px 10px; gap: 8px; }
 body.calendar-active .farm-overview-art svg { width: 34px; height: 34px; }
 body.calendar-active .farm-overview .eyebrow { display: none; }
 body.calendar-active .farm-overview h2 { font-size: .93rem; }
 body.calendar-active .farm-overview p { font-size: .7rem; }
 body.calendar-active .farm-overview .primary-button { padding: 9px; font-size: .75rem; margin-left: auto; }
 body.calendar-active .scene-toolbar { padding: 8px 10px; flex-wrap: wrap; gap: 7px; }
 body.calendar-active .scene-toolbar span { max-width: none; }
 body.calendar-active .scene-control { padding: 0 10px; min-height: 38px; }
 body.calendar-active .footer-note { display: none; }
}
@media (max-height: 600px) {
 body.calendar-active .calendar-header #welcomeText, body.calendar-active .calendar-header .eyebrow, body.calendar-active .scene-toolbar span, body.calendar-active .footer-note { display: none; }
 body.calendar-active .calendar-header { padding: 7px 12px; }
 body.calendar-active .calendar-header h1 { font-size: 1.4rem; }
 body.calendar-active .farm-overview { padding: 5px 10px; }
 body.calendar-active .farm-overview .eyebrow { display: none; }
 body.calendar-active .scene-help { display: none; }
}

body.calendar-active .door { width: var(--fit-door-size, 32px); height: var(--fit-door-size, 32px); }
body.calendar-active .door-number { font-size: var(--fit-door-font, 13px); }

.sound-settings { color: #405c51; background: #fff6e5; border: 2px solid #afbea5; border-radius: 24px; padding: 28px; width: min(560px, calc(100vw - 24px)); max-height: 90dvh; overflow: auto; box-shadow: 0 20px 70px #0008; }
.sound-settings::backdrop { background: #07121bbb; backdrop-filter: blur(5px); }
.sound-settings h2 { margin: 0 40px 8px 0; color: #3f6255; font-family: Georgia, serif; }
.sound-settings p { line-height: 1.5; font-size: .9rem; }
.sound-settings .dialog-close { color: #405c51; background: #e5ead8; }
.sound-mixer { display: grid; gap: 16px; margin: 22px 0; }
.sound-mixer label { display: grid; grid-template-columns: 1fr auto; gap: 9px; font-size: .9rem; font-weight: 700; }
.sound-mixer output { color: #677b6a; font-variant-numeric: tabular-nums; }
.sound-mixer input { grid-column: 1 / -1; width: 100%; height: 28px; accent-color: #4c7b68; cursor: pointer; }
.sound-preview-controls { display: flex; flex-wrap: wrap; gap: 8px; }
.sound-settings .hunt-action { color: #405c51; background: #e5ead8; border-color: #b9c8ad; }
.sound-settings a { color: #506d5f; font-size: .8rem; }
.sound-loading-status { color: #6e806b; }
@media (max-width: 450px) { .sound-settings { padding: 22px 18px; } }

/* Long Cat: soft winter linen, warm fur and a continuous illustrated body. */
.snake-board { width: min(100%, 620px); aspect-ratio: 1; border-color: #6c9284; border-radius: 22px; box-shadow: 0 6px #b8c9b3, 0 12px 26px #3758491a; background: #e2eee6; }
.snake-help { color: #617769 !important; font-size: .82rem !important; line-height: 1.5; }
.snake-card .snake-controls { padding: 12px 15px; background: #eee9d9; border: 1px solid #ded6be; border-radius: 14px; }
.snake-card .snake-pad { grid-template-columns: repeat(3, 48px); gap: 8px; }
.snake-card .snake-direction { border-radius: 14px; background: #e2eada; box-shadow: 0 3px #bbceb2, inset 0 1px #fff; }
.snake-card .snake-direction:active { transform: translateY(2px); box-shadow: 0 1px #bbceb2; }
@media (max-width: 600px) { .snake-card .snake-controls { flex-direction: row; align-items: center; padding: 9px; }.snake-card .snake-controls > button { flex: 1; }.snake-card .snake-pad { grid-template-columns: repeat(3, 44px); gap: 6px; }.snake-card .snake-direction { width: 44px; height: 44px; }.snake-board { border-radius: 16px; } }
