@font-face{font-family:"Balsamiq Sans";src:url("assets/fonts/balsamiq-sans-regular.woff") format("woff");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Balsamiq Sans";src:url("assets/fonts/balsamiq-sans-bold.woff") format("woff");font-style:normal;font-weight:700;font-display:swap}
:root{--ink:#12232c;--sky:#68c9ef;--paper:#f6fdff;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{font-family:"Balsamiq Sans",Arial,Helvetica,sans-serif;background:var(--ink);color:var(--paper)}[hidden]{display:none!important}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:disabled{cursor:wait;opacity:.5}button:focus-visible,input:focus-visible{outline:3px solid var(--sky);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.app{position:fixed;inset:0;width:100%;height:100dvh;display:flex;justify-content:center;background:radial-gradient(ellipse at center,#22495b,#0a151e)}.game{position:relative;width:100%;max-width:600px;height:100%;isolation:isolate;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}canvas{display:block;width:100%;height:100%;touch-action:none}
.rotate-screen{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:#101b25}.rotate-screen img{width:66px;height:66px;object-fit:contain}.rotate-screen h2{font-size:25px;margin:15px 0 8px}.rotate-screen p{font-size:16px;color:#bfeaff;margin:0}
@media(min-aspect-ratio:3/4){.game{width:min(100%,60dvh)}}
.hud{position:absolute;z-index:3;left:max(10px,env(safe-area-inset-left,0px));top:calc(var(--safe-top) + 10px);display:flex;flex-direction:column;gap:6px;pointer-events:none}.hud-item{display:flex;align-items:center;gap:7px;width:98px;min-height:38px;padding:3px 8px 3px 5px;border:2px solid var(--ink);border-radius:14px;background:#f6fdffed;color:var(--ink);box-shadow:0 2px 0 #12232c38}.hud-item img{width:29px;height:30px;object-fit:contain;flex-shrink:0}.hud-item strong{font-size:17px;font-weight:900;font-variant-numeric:tabular-nums;white-space:nowrap}.hud-item small{font-size:13px;font-weight:700}.hud-item.inactive{background:#f6fdffb8}.hud-item.inactive img{opacity:.5}
.game-actions{position:absolute;z-index:13;right:max(10px,env(safe-area-inset-right,0px));top:calc(var(--safe-top) + 10px);display:flex;gap:6px}.icon-button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:2px solid var(--ink);border-radius:13px;background:#f6fdffeb;color:var(--ink);font-size:23px;font-weight:900;box-shadow:0 2px 0 #12232c38}.icon-button:active{transform:translateY(2px)}
.overlay{position:absolute;inset:0;z-index:9;touch-action:manipulation}.studio-screen,.start-screen{background:radial-gradient(ellipse at 50% 30%,#1a4355,#101b25 80%)}.studio-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:calc(var(--safe-top) + 20px) 22px calc(var(--safe-bottom) + 20px);overflow-y:auto}.studio-logo{width:min(430px,88vw);max-height:34dvh;object-fit:contain;flex-shrink:0}.entry-form{display:grid;gap:12px;width:min(280px,100%)}.entry-form label{font-size:16px;font-weight:700;text-align:center;color:#d7eff8}.entry-form input{width:100%;min-height:48px;border:2px solid #68c9ef88;border-radius:14px;background:#0b1b25;color:#fff;padding:10px 16px;text-align:center;font-size:20px;letter-spacing:3px;user-select:text;-webkit-user-select:text;touch-action:auto}.entry-form input[aria-invalid=true]{border-color:#ff9797}.entry-form p{font-size:14px;line-height:1.4;text-align:center;color:#ffb8b8;margin:0}.primary{min-height:48px;padding:12px 22px;border:2px solid var(--ink);border-bottom-width:4px;border-radius:15px;background:var(--sky);color:var(--ink);font-size:16px;font-weight:900;box-shadow:0 4px 0 #07172066}.primary:active{transform:translateY(2px)}
.start-brand{position:absolute;top:calc(var(--safe-top) + 7dvh);left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;width:min(380px,82vw);pointer-events:none}.start-logo{width:min(310px,72vw);height:18dvh;max-height:155px;object-fit:contain}.start-brand h1{margin:0;width:min(245px,62vw);line-height:1}.start-brand h1 img{width:100%;max-height:8dvh;object-fit:contain;display:block}.paw-start{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:144px;height:144px;border:0;border-radius:50%;background:none;padding:8px;filter:drop-shadow(0 5px 14px #68c9ef44)}.paw-start img{width:100%;height:100%;object-fit:contain;pointer-events:none}.paw-start:active:enabled{transform:translate(-50%,-50%) scale(.95)}
.speech-bubble{position:absolute;background:#f6fdff;color:var(--ink);border:2px solid var(--ink);border-radius:16px;box-shadow:0 3px 0 #12232c55;pointer-events:none}.speech-bubble:after{content:'';position:absolute;bottom:-7px;left:18px;width:12px;height:12px;background:inherit;border-bottom:2px solid var(--ink);border-left:2px solid var(--ink);transform:rotate(-45deg);border-radius:0 0 0 3px}.corner-bubble{z-index:4;right:max(10px,env(safe-area-inset-right,0px));top:calc(var(--safe-top) + 56px);width:min(224px,calc(100% - 122px));padding:12px 13px;font-size:19px;line-height:1.25;font-weight:700;text-align:left;overflow-wrap:break-word}.toast #speech-detail{display:block;font-size:15px;line-height:1.3;font-weight:400;margin-top:7px}.toast.warning{background:#e8f9ff}
.finale-panel h2{font-size:19px;line-height:1.15;margin:0 0 7px}.finale-panel p{font-size:14px;line-height:1.35;margin:0 0 6px;color:#33586a}.finale-panel #hits{font-size:13px;font-weight:800;color:#145e7b;letter-spacing:.5px}.roll-panel{position:absolute;inset:0;pointer-events:none;z-index:3;text-align:center}.roll-panel>strong{position:absolute;top:calc(var(--safe-top) + 154px);left:0;width:100%;font-size:clamp(80px,18vw,110px);font-weight:950;letter-spacing:-3px;color:#fff;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}.roll-panel small{font-size:.27em;letter-spacing:0}
.paused{z-index:12;display:grid;place-items:center;text-align:center;background:#12232ce8;backdrop-filter:blur(8px);padding:24px}.paused h2{font-size:54px;margin:0 0 28px}
@media(max-width:420px){.hud{left:max(8px,env(safe-area-inset-left,0px));gap:5px}.hud-item{width:94px;min-height:35px;padding:2px 6px 2px 4px;gap:5px}.hud-item img{width:27px;height:28px}.hud-item strong{font-size:16px}.hud-item small{font-size:12px}.game-actions{right:max(8px,env(safe-area-inset-right,0px));gap:4px}.icon-button{width:35px;height:35px;font-size:21px}.corner-bubble{right:max(8px,env(safe-area-inset-right,0px));top:calc(var(--safe-top) + 54px)}}
@media(max-height:580px){.studio-screen{gap:12px;padding-block:12px}.studio-logo{max-height:30dvh}.entry-form{gap:7px}.entry-form input{min-height:42px;padding:6px}.entry-form .primary{min-height:42px;padding:8px}.start-brand{top:3dvh;gap:3px}.start-logo{height:16dvh}.start-brand h1 img{max-height:7dvh}.paw-start{width:100px;height:100px}.roll-panel>strong{top:calc(var(--safe-top) + 138px);font-size:68px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Help keeps a fixed corner hit target; it never pushes the HUD sideways. */
.game-actions{padding-right:44px;max-width:calc(100% - 120px);flex-wrap:wrap;justify-content:flex-end}
.game-actions .help-button{position:absolute;right:0;top:0;background:#b8efff}
.game:has(#den-home:not([hidden])) .game-actions{max-width:180px}
.game:has(#den-home:not([hidden])) .corner-bubble{top:calc(var(--safe-top) + 103px)}
.help-dialog{width:min(420px,calc(100vw - 24px));padding:0;border:3px solid #72d6f4;border-radius:26px;background:#eafaff;color:#143747;box-shadow:0 16px 50px #0006;overflow:hidden;touch-action:pan-y}
.help-dialog[open]{display:flex;flex-direction:column}
.help-dialog::backdrop{background:#04131dd9}
.help-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px 4px;flex:none}
.help-heading>span{font-size:12px;letter-spacing:.08em;font-weight:700;color:#326c80}
.help-heading .icon-button{width:42px;height:42px;flex:none;background:#fff}
.help-content{overflow-y:auto;overscroll-behavior:contain;min-height:0;padding:0 20px 8px;scrollbar-width:thin;touch-action:pan-y}
.help-step{margin:3px 0 6px;text-align:center;font-size:13px;font-weight:700;color:#32778e}
.help-content h2{font-size:26px;line-height:1.1;margin:0 0 12px;text-align:center;outline:none}
.help-cat-scene{position:relative;height:156px;background:#beeefe;border:2px solid #8cd7ed;border-radius:19px;overflow:hidden}
.help-cat-scene>img{position:absolute;height:148px;width:148px;object-fit:contain;bottom:0;left:calc(50% - 100px)}
.help-cat-scene>span{position:absolute;top:12px;left:15px;font-size:16px;font-weight:700;color:#23617a}
.help-gesture{position:absolute;bottom:26px;left:60%;display:flex;align-items:center;gap:7px;color:#1b6b86;font-size:28px}
.help-gesture img{height:45px;width:45px;object-fit:contain;animation:help-steer 3s ease-in-out infinite}
.help-controls{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px;font-size:16px;line-height:1.3}
.help-note{padding:10px 12px;border-radius:12px;background:#fff5d8;color:#634812;font-size:15px;line-height:1.35;margin:10px 0 0}
.help-items{display:grid;gap:10px;margin-top:14px}
.help-items>div{display:flex;align-items:center;gap:14px}
.help-items>div>img,.help-item-pair{width:66px;height:54px;flex:none;object-fit:contain}
.help-item-pair{display:flex;align-items:center;gap:1px}
.help-item-pair img{width:32px;height:50px;object-fit:contain}
.help-items p{margin:0;font-size:15px;line-height:1.3}
.help-items b,.help-items p>span{display:block}
.help-items b{font-size:17px;margin-bottom:2px}
.help-sense{display:flex;align-items:center;gap:12px;padding:12px 0 0;margin:12px 0 0;border-top:1px solid #91cbdf;font-size:15px;line-height:1.35}
.help-sense img{height:38px;width:38px;object-fit:contain;flex:none}
.help-finale-scene{display:flex;align-items:flex-end;justify-content:center;height:172px;background:#beeefe;border:2px solid #8cd7ed;border-radius:19px}
.help-finale-scene>[data-help-cat]{width:155px;height:165px;object-fit:contain}
.help-finale-scene>.help-yarn{width:110px;height:110px;object-fit:contain;margin-bottom:12px}
.help-main-copy{text-align:center;font-size:17px;line-height:1.35;margin:15px 0}
.help-fish{display:flex;gap:18px;justify-content:center;margin:19px 0}
.help-fish img{width:58px;height:40px;object-fit:contain}
.help-footer{padding:10px 20px 16px;flex:none;background:#eafaff;border-top:1px solid #c7e7f1}
.help-navigation{display:flex;gap:10px}.help-navigation button{min-height:48px;flex:1}
.help-navigation .secondary{color:#21566d;border:2px solid #86c9df;font-weight:700}
.help-skip{display:block;margin:9px auto 0;border:0;padding:8px 14px;background:transparent;color:#336378;font-size:12px;min-height:36px}
@keyframes help-steer{0%,100%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
@media(max-width:420px){.game-actions{padding-right:39px}.game:has(#den-home:not([hidden])) .game-actions{max-width:155px}.help-content{padding-inline:16px}.help-content h2{font-size:24px}.help-footer{padding-inline:16px}}
@media(max-height:650px){.help-cat-scene{height:112px}.help-cat-scene>img{height:110px;width:110px;left:calc(50% - 72px)}.help-finale-scene{height:118px}.help-finale-scene>[data-help-cat]{height:115px;width:115px}.help-finale-scene>.help-yarn{height:85px;width:85px}.help-content h2{font-size:22px;margin-bottom:9px}.help-items{gap:7px}.help-items>div>img,.help-item-pair{height:42px}.help-item-pair img{height:40px}.help-controls{gap:6px;margin:10px 0}.help-fish{margin:12px 0}.help-heading{padding-top:8px}.help-footer{padding-block:8px}.help-main-copy{margin:10px 0}}
@media(prefers-reduced-motion:reduce){.help-gesture img{animation:none}}

.feedback-button{background:#f0e6ff;color:#4c356b}
.feedback-button svg,.help-key-feedback svg{width:23px;height:23px}
.den-hint{position:absolute;z-index:14;width:min(244px,calc(100% - 24px));display:flex;align-items:flex-start;border:2px solid #17384b;border-radius:17px;background:#f3fcff;color:#163b50;box-shadow:0 4px 0 #123b5355}
.den-hint::before{content:'';position:absolute;top:-7px;left:var(--hint-arrow,50%);width:12px;height:12px;background:inherit;border-top:2px solid #17384b;border-left:2px solid #17384b;transform:translateX(-50%) rotate(45deg)}
.den-hint-action{flex:1;min-width:0;text-align:left;padding:13px 0 13px 14px;border:0;background:transparent;color:inherit}
.den-hint-action strong{display:block;font-size:17px;line-height:1.2}.den-hint-action span{display:block;margin-top:5px;font-size:14px;line-height:1.25}
.den-hint-close{flex:none;width:36px;min-height:42px;padding:7px 5px;border:0;border-radius:14px;background:transparent;color:#507487;font-size:23px}
.help-icon-list{display:grid;gap:12px;margin:15px 0 8px}
.help-icon-list>div{display:flex;align-items:center;gap:13px}
.help-key-icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border:2px solid #173747;border-radius:12px;background:#f7fdff;color:#163747;font-size:25px;font-weight:700}
.help-key-icon img{width:30px;height:30px;object-fit:contain}
.help-key-gold{background:#fff0bd;color:#8b6414}.help-key-exit{border-color:#8d2636;background:#fff0f1}.help-key-exit img{filter:hue-rotate(155deg) saturate(1.8)}
.help-key-feedback{background:#f0e6ff;color:#4c356b}
.help-icon-list p{margin:0;font-size:15px;line-height:1.3}.help-icon-list p>b{display:block;font-size:17px;margin-bottom:2px}
.help-stat-example{width:79px;min-height:39px;flex:none;display:flex;align-items:center;justify-content:center;gap:4px;padding:4px;border:2px solid #173747;border-radius:12px;background:#f7fdff;color:#163747}
.help-stat-example img{height:29px;width:27px;object-fit:contain}.help-stat-example b{font-size:13px;white-space:nowrap}
.size-stats-row{display:flex;align-items:stretch;gap:5px}
.super-stat{position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;width:38px;min-height:38px;flex:none;border:2px solid #78520d;border-radius:11px;background:#fff9e9;color:#573809;box-shadow:0 2px 0 #12232c38}
.super-fill{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#ffa923,#ffe875);transform:scaleY(var(--super-fill,0));transform-origin:bottom;transition:transform .18s ease-out}
.super-stat strong{font-size:24px;line-height:1;text-shadow:0 1px 0 #fff8}
@media(max-width:420px){.super-stat{width:35px;min-height:35px}}
@media(prefers-reduced-motion:reduce){.super-fill{transition:none}}
.feedback-panel{width:min(400px,calc(100vw - 24px));padding:20px;border:2px solid #86d7f1;border-radius:24px;background:#0c293d;color:#f0fcff;overflow:auto;touch-action:pan-y}
.feedback-panel::backdrop{background:#04131dd9}
.feedback-heading{display:flex;align-items:center;gap:12px;justify-content:space-between}.feedback-heading h2{margin:0;font-size:25px;line-height:1.15;outline:none}.feedback-heading .icon-button{width:42px;height:42px;flex:none}
.feedback-intro{font-size:16px;line-height:1.4;color:#cfeaf4;margin:16px 0 18px}
#feedback-form{display:grid;gap:8px}#feedback-form label{font-size:16px;font-weight:700}
#feedback-text{width:100%;min-height:130px;max-height:35dvh;resize:vertical;border:2px solid #7acbe4;border-radius:13px;background:#f2fcff;color:#14394b;padding:12px;font:inherit;font-size:17px;line-height:1.4;user-select:text;-webkit-user-select:text;touch-action:pan-y pinch-zoom}
#feedback-text:focus-visible{outline:3px solid #72d6f4;outline-offset:3px}
#feedback-count{text-align:right;color:#c2e9f6;font-size:14px;font-variant-numeric:tabular-nums}#feedback-send{width:100%;margin-top:5px}
.feedback-status{font-size:15px;line-height:1.4;margin:14px 0 0;color:#ffe0a1}.feedback-status:empty{display:none}
@media(max-height:650px){.help-icon-list{gap:10px;margin-top:11px}.help-icon-list p{font-size:14px}.help-icon-list p>b{font-size:16px}.feedback-panel{padding:16px}.feedback-intro{margin-block:12px}#feedback-text{min-height:100px}}

/* The podium shares the den artwork and registered cat portraits. */
#ranking-panel{width:min(460px,calc(100vw - 24px));height:min(790px,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px));padding:14px 16px 0;overflow:hidden}
#ranking-panel[open]{display:flex;flex-direction:column}
#ranking-panel .ranking-heading{position:static;margin:0;padding:0 0 13px;flex:none;gap:8px}
#ranking-panel .ranking-heading h2{font-size:25px;flex:1;line-height:1.1}
#ranking-panel .ranking-heading .icon-button{height:42px;width:42px;flex:none}
#ranking-account-open{min-height:42px;padding:8px 12px}
.ranking-board{display:flex;flex-direction:column;min-height:0;flex:1}
.ranking-tabs{display:flex;gap:6px;flex:none}
.ranking-tabs button{flex:1;min-height:46px;border:2px solid #60bcdb;border-radius:13px;background:#133f55;color:#dbf6ff;font-weight:700;font-size:16px;padding:7px 9px}
.ranking-tabs button[aria-pressed=true]{background:#72d8f4;color:#0b3146;border-color:#c7f5ff;box-shadow:0 3px 0 #052234}
#ranking-panel .ranking-level-field{display:grid;gap:6px;font-size:14px;color:#d5eff8;margin:13px 0 0}
.ranking-level-field select{width:100%;min-height:44px;border:1px solid #74cde6;border-radius:10px;background:#184458;color:#f0fcff;font:inherit;padding:8px}
.ranking-rule{font-size:14px;line-height:1.35;color:#c6e2ed;margin:14px 0 7px;flex:none}
.ranking-results{overflow:auto;min-height:0;flex:1;overscroll-behavior:contain;padding-bottom:10px;scrollbar-width:thin;touch-action:pan-y}
.ranking-podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;align-items:end;padding:14px 0 9px}
.ranking-podium:empty{display:none}
.podium-card{min-width:0;position:relative;text-align:center;background:#1a4c63;border:1px solid #83c5d8;border-radius:18px;padding-bottom:11px;overflow:hidden;grid-row:1}
.podium-place-1{grid-column:2;border:2px solid #ffda7b;background:#735322}
.podium-place-2{grid-column:1;background:#455b70}
.podium-place-3{grid-column:3;background:#71482e;border-color:#d49b6d}
.podium-scene{height:115px;position:relative;overflow:hidden}
.podium-place-1 .podium-scene{height:141px}
.podium-bed{width:100%;height:100%;object-fit:cover;object-position:50% 64%;position:absolute;inset:0;opacity:.9}
.podium-scene .ranking-cat{position:absolute;inset:auto 0 36px;margin:auto;width:100%;height:79px;object-fit:contain;filter:drop-shadow(0 2px 2px #091d3370)}
.podium-place-1 .ranking-cat{height:98px;bottom:38px}
.podium-medal{position:relative;margin:-17px auto 4px;display:flex;align-items:center;justify-content:center;gap:3px;width:53px;height:34px;border:2px solid #fff4b9;border-radius:20px;background:#f5c965;color:#4f3912;box-shadow:0 2px 0 #06162455}
.podium-medal img{width:22px;height:24px;object-fit:contain;filter:grayscale(1) sepia(1) saturate(3)}
.podium-place-2 .podium-medal{background:#dfebf1;border-color:#f8ffff;color:#364758}.podium-place-2 .podium-medal img{filter:grayscale(1)}
.podium-place-3 .podium-medal{background:#dfab7d;border-color:#ffe0c0;color:#57331e}
.podium-name{display:block;font-size:14px;line-height:1.2;overflow-wrap:anywhere;padding:0 3px;min-height:34px;color:#fff8e5}
.ranking-score{display:flex;align-items:center;justify-content:center;gap:5px;color:#ffde8a;font-size:19px;white-space:nowrap}
.ranking-score img{height:20px;width:25px;object-fit:contain;flex:none}
.podium-card .ranking-score{font-size:18px;gap:3px}
#ranking-panel .ranking-list{margin:4px 0;list-style:none}
#ranking-panel .ranking-row{display:grid;grid-template-columns:23px 35px minmax(0,1fr) auto;gap:7px;padding:12px 4px;min-height:64px}
#ranking-panel .ranking-row .ranking-cat{width:35px;height:43px;object-fit:contain}
#ranking-panel .ranking-player>b{font-size:16px;color:#eafaff;overflow-wrap:anywhere}
#ranking-panel .ranking-player small{font-size:12px;color:#b5d7e6}
#ranking-panel .ranking-position{font-size:14px}
.ranking-row .ranking-score{font-size:17px}
.ranking-footer{padding:10px 0 13px;flex:none;border-top:1px solid #6295a9;background:#0c293d}
#ranking-panel .my-rank{display:flex;gap:9px;align-items:center;margin:0;padding:10px;background:#205a72;border:1px solid #83d9f1;border-radius:13px;font-size:15px;color:#edfaff;min-height:64px}
.my-rank>.ranking-cat{width:40px;height:47px;object-fit:contain}.my-rank>span{flex:1}.my-rank b,.my-rank small{display:block}.my-rank small{font-size:14px;color:#c3e7f1;margin-top:3px}
.ranking-footer>.secondary{display:block;width:100%;min-height:42px;padding:8px;margin-top:8px}
.ranking-pending{font-size:14px;line-height:1.3;color:#ffe0a1;margin:8px 1px 0}
.ranking-results #account-status{font-size:15px;line-height:1.4;text-align:center;margin:15px 5px}
.ranking-rules{font-size:14px;line-height:1.4;color:#c1dfe9;margin:14px 2px 4px}
.ranking-rules summary{min-height:40px;padding:10px 0;cursor:pointer}
.ranking-account{min-height:0;overflow-y:auto;padding:0 0 18px;touch-action:pan-y}
.ranking-account>.account-banner{margin-top:14px}
#ranking-account-back{min-height:44px;width:100%}
@media(max-width:360px){#ranking-panel{padding-inline:12px}.ranking-tabs button{font-size:15px;padding-inline:5px}.ranking-podium{gap:5px}.podium-scene{height:93px}.podium-place-1 .podium-scene{height:120px}.podium-scene .ranking-cat{height:63px;bottom:27px}.podium-place-1 .ranking-cat{height:88px;bottom:29px}.podium-card .ranking-score{font-size:15px;gap:2px}.podium-card .ranking-score img{width:21px}#ranking-panel .ranking-heading h2{font-size:22px}#ranking-panel .ranking-row{grid-template-columns:20px 28px minmax(0,1fr) auto;gap:5px}#ranking-panel .ranking-row .ranking-cat{width:28px}.ranking-score{font-size:17px}.ranking-rule{font-size:14px}}

.power-panel{position:absolute;z-index:3;top:calc(var(--safe-top) + 10px);left:max(10px,env(safe-area-inset-left,0px));width:98px;padding:8px 4px;border:2px solid var(--ink);border-radius:14px;background:#f6fdffed;box-shadow:0 2px 0 #12232c38;text-align:center;pointer-events:none;color:var(--ink)}.power-panel>span{display:block;font-size:12px;letter-spacing:.5px;font-weight:900}.power-panel strong{display:block;font-size:42px;font-weight:950;line-height:1.05;color:#145e7b}
@media(max-width:420px){.power-panel{left:max(8px,env(safe-area-inset-left,0px));width:94px}}

/* Artwork is fixed-ratio; every label, result and hit target is live HTML. */
.result{display:flex;justify-content:center;align-items:center;padding:calc(var(--safe-top) + 8px) 0 calc(var(--safe-bottom) + 8px);background:#071c2e;overflow-y:auto;touch-action:pan-y}
.result-card{position:relative;flex:none;width:min(100%,max(320px,calc((100dvh - var(--safe-top) - var(--safe-bottom) - 16px)*.5628)));aspect-ratio:941/1672;margin:auto;container-type:inline-size;text-align:center}
.result-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.result-brand{position:absolute;top:1.3%;left:12%;width:76%;color:#e0f9ff;text-shadow:0 1px 3px #071c2e;font-size:max(12px,3.2cqw);font-weight:700}
.result h2{position:absolute;left:18%;top:5.2%;width:64%;margin:0;color:#082538;font-size:clamp(20px,5.9cqw,30px);line-height:1.1;font-weight:900}
.fish-rewards{position:absolute;top:38.7%;left:11.9%;width:76.4%;height:13.5%;display:flex;justify-content:space-between}
.fish-reward{position:relative;width:30%;height:100%;border-radius:50%;background:#061424ad;-webkit-backdrop-filter:grayscale(1) brightness(.35);backdrop-filter:grayscale(1) brightness(.35)}
.fish-reward.earned{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 0 12px #ffd67533}
.fish-reward strong{position:absolute;bottom:3%;left:0;width:100%;font-size:max(12px,3.4cqw);color:#b5c1c9;text-shadow:0 2px 3px #061424;font-variant-numeric:tabular-nums}
.fish-reward.earned strong{color:#ffe1a1}
.result-summary{position:absolute;top:54.4%;left:14.5%;width:71%;height:16.5%;display:flex;flex-direction:column;justify-content:space-between;gap:2px}
.eyebrow{font-size:max(12px,3cqw);font-weight:800;line-height:1.1;letter-spacing:.04em;color:#d4f4ff}
.result-score-row{display:flex;align-items:center;justify-content:center;gap:7cqw}
.result-distance{font-size:max(27px,8cqw);font-weight:900;color:#fff3bc;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}
.result-distance small{font-size:max(12px,3.4cqw);font-weight:700;color:#d4ecf4}
.result .fish-total{font-size:max(12px,3cqw);line-height:1.1;color:#d4ecf4;margin:0}
.fish-total strong{display:block;color:#ffd678;font-size:max(17px,4.6cqw);margin-top:2px}
.result-stats{display:flex;justify-content:space-around;gap:6px;line-height:1.1}
.result-stats strong{display:block;font-size:max(16px,4.6cqw);font-variant-numeric:tabular-nums}
.result-stats span{display:block;font-size:max(12px,3cqw);color:#bed9e6;margin-top:2px}
.result-footer{display:flex;justify-content:space-between;align-items:center;gap:4px;color:#c9e6f1;font-size:max(12px,3cqw);line-height:1.1}
.fish-bank{display:flex;align-items:center;gap:4px}.fish-bank img{width:6cqw;height:4cqw;object-fit:contain}.fish-bank strong{color:#ffda81}.result .best{margin:0;font-size:inherit;white-space:nowrap}
.result-button{position:absolute;left:10.5%;width:79%;height:7.7%;padding:2px 14px;border:0;border-radius:999px;background:transparent;font-size:max(20px,5.4cqw);line-height:1.1;font-weight:900;letter-spacing:.035em}
.result-next{top:73.5%;color:#06334a}.result-again{top:82.7%;color:#e6faff;text-shadow:0 2px 3px #061424}.result-button:active{background:#ffffff1c}.result-button:focus-visible{outline-color:#fff4c0;outline-offset:-6px}
.result .save-notice{position:absolute;top:91%;left:13%;width:74%;margin:0;padding:5px;background:#071c2eee;border-radius:10px;font-size:12px;line-height:1.2;color:#ffdaa1}
.audio-settings{width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow-y:auto;padding:22px;border:2px solid #68c9ef;border-radius:24px;background:#0c293d;color:#f6fdff;box-shadow:0 18px 70px #0009;touch-action:pan-y}
.audio-settings::backdrop{background:#04131dc7;backdrop-filter:blur(6px)}.audio-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.audio-heading h2{font-size:26px;margin:0}.audio-settings label{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:16px}.audio-switch{padding-bottom:20px;border-bottom:1px solid #ffffff24;margin-bottom:22px}.audio-switch input{width:24px;height:24px;accent-color:#68c9ef}.audio-settings output{color:#99e5ff;min-width:3em;text-align:right;font-variant-numeric:tabular-nums}.audio-settings input[type=range]{display:block;width:100%;height:36px;margin:4px 0 18px;accent-color:#68c9ef;touch-action:pan-x}.audio-settings p{font-size:14px;line-height:1.4;color:#ffdaa1}

.version-label{position:absolute;bottom:calc(var(--safe-bottom) + 14px);left:0;width:100%;text-align:center;font-size:13px;color:#9ec8d9;pointer-events:none}.thread-stat{background:#fff2cbed}.thread-stat strong{font-size:15px}.power-panel #finale-bonus{display:block;font-size:12px;font-weight:700;margin-top:5px}

.hud .fish-stat{min-height:27px;padding-block:1px;background:#fff0bdeb;border-color:#604712}
.hud .fish-stat img{width:24px;height:21px}.hud .fish-stat strong{font-size:14px;color:#654510}

.ranking-button{color:#8b6414;background:#fff0bd}
.journey-screen{overflow:hidden;background:#143d53}.journey-art{position:absolute;width:100%;height:100%;object-fit:cover;animation:journey-drift 9s ease-in-out infinite alternate;pointer-events:none}.journey-shade{position:absolute;inset:0;background:linear-gradient(#09263d99,transparent 26%,transparent 51%,#08263cbd)}.journey-heading{position:absolute;top:calc(var(--safe-top) + 18px);left:17%;width:66%;text-align:center}.journey-heading img{max-width:230px;width:100%;height:58px;object-fit:contain}.journey-heading p{margin:8px 0;color:#fff;font-size:18px;font-weight:800;text-shadow:0 2px 4px #153646}.journey-trail{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.journey-node{position:absolute;display:grid;place-items:center;transform:translate(-50%,-50%);width:58px;height:58px;border:4px solid #e8faff;border-radius:50%;background:#21799b;color:white;font-size:26px;box-shadow:0 5px 0 #12485e,0 6px 18px #0a2e4960}.journey-done{left:48%;top:58%;background:#dda83e;border-color:#fff2ba;color:#493418}.journey-current{left:57%;top:37%;width:74px;height:74px;background:#65cff0;color:#123849;box-shadow:0 5px 0 #125775,0 0 0 8px #def8ff5c;animation:node-glow 2s ease-in-out infinite alternate}.journey-future{left:30%;top:22%;width:42px;height:42px;font-size:19px;opacity:.7}.journey-earned{position:absolute;top:50%;left:calc(100% + 12px);transform:translateY(-50%);display:flex;gap:3px}.journey-earned img{width:22px;height:18px;object-fit:contain}.journey-earned img.unearned{filter:grayscale(1);opacity:.35}.journey-cat{position:absolute;width:130px;height:130px;transform:translate(-50%,-96%);pointer-events:none}.journey-challenge{position:absolute;left:7%;width:86%;bottom:calc(var(--safe-bottom) + 15px);padding:15px 18px;border:2px solid #bcefff;border-radius:24px;background:#0c2a3deb;color:#effcff;text-align:center;box-shadow:0 8px 24px #0b2a4b66}.journey-challenge h2{font-size:28px;line-height:1.1;margin:4px 0}.journey-challenge p{font-size:14px;line-height:1.3;margin:7px 0}.journey-challenge .journey-eyebrow{font-size:12px;font-weight:800;letter-spacing:.1em;color:#bde8f8}.journey-challenge #journey-distance{font-size:20px;font-weight:800}.journey-challenge .primary{width:100%;margin-top:5px}.journey-goals{display:flex;justify-content:center;gap:12px;margin:8px 0}.journey-goals img{width:29px;height:22px;object-fit:contain;filter:drop-shadow(0 2px 3px #e9a94355)}
@keyframes journey-drift{from{transform:scale(1.02) translateY(0)}to{transform:scale(1.06) translateY(-.8%)}}@keyframes node-glow{to{box-shadow:0 5px 0 #125775,0 0 0 13px #def8ff22}}
@media(max-height:700px){.journey-challenge{padding:10px 15px;bottom:10px}.journey-challenge h2{font-size:24px}.journey-challenge p{margin:4px 0}.journey-heading img{height:42px}.journey-goals{margin:5px 0}}
@media(prefers-reduced-motion:reduce){.journey-art,.journey-current{animation:none}}
.ranking-panel{width:min(430px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;margin:auto;border:2px solid var(--sky);border-radius:24px;padding:20px;background:#0c293d;color:var(--paper);touch-action:pan-y}
.ranking-panel::backdrop{background:#04131de0}.ranking-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:20px}.ranking-heading h2{display:flex;align-items:center;gap:9px;font-size:23px;margin:0}.ranking-heading img{width:34px;height:24px}.sign-in{display:block;text-align:center;text-decoration:none}.ranking-panel label{font-size:14px}.nickname-row{display:flex;gap:6px;margin-top:8px}.nickname-row input{width:0;min-width:0;flex:1;border:1px solid #85c1d7;border-radius:12px;background:#071c2e;color:white;padding:10px;font-size:16px;user-select:text;touch-action:auto}.nickname-row .primary{padding:8px 12px;font-size:14px}.sign-out{display:inline-block;color:#b5dceb;margin-top:12px;font-size:14px}.ranking-explainer,#account-status{font-size:14px;line-height:1.45;color:#bdd9e5}.my-rank{font-size:15px;color:#ffdb85;font-weight:700}.ranking-columns{display:flex;justify-content:space-between;color:#abc9d7;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.ranking-list{list-style:none;padding:0;margin:8px 0}.ranking-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:12px 4px;border-bottom:1px solid #ffffff1c;font-size:15px}.ranking-row b{font-size:14px;color:#b5d5e2}.ranking-row strong{color:#ffdb85}.ranking-row small{display:block;font-size:12px;margin-top:4px;color:#aac9d7}.ranking-row.is-you{background:#225773;border-radius:10px;padding-inline:8px}.secondary{border:1px solid #80bcd6;border-radius:12px;background:transparent;color:#daf4ff;padding:11px 16px;font-size:14px}.retry-save{position:absolute;left:25%;width:50%;top:96%;border:1px solid #ffdb85;border-radius:10px;background:#193f51;color:#ffdb85;padding:10px;font-size:13px;z-index:2}

/* The two real comic weights avoid synthetic heavy outlines on Polish accents. */
body{font-synthesis:none}strong,b,h1,h2,h3,button,.hud-item strong{font-weight:700}

/* The approved den artwork anchors progress to the cabinet below Andrzej. */
.start-screen{container-type:inline-size;background:#2c8db8}
.den-scene{position:absolute;left:50%;top:50%;width:max(100%,56.28dvh);aspect-ratio:941/1672;transform:translate(-50%,-50%)}
.den-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.den-cat{position:absolute;left:50%;top:34%;width:36%;height:20.3%;transform:translateX(-50%);object-fit:contain;transform-origin:center bottom;filter:drop-shadow(0 4px 4px #09233145);animation:den-breathe 4.5s ease-in-out infinite}
.start-screen .start-brand{top:6.5%;width:64%;max-width:270px;gap:5px;padding:10px 12px;background:#000;border:2px solid #82d7f1;border-radius:22px;box-shadow:0 4px 0 #12232c44}
.start-screen .start-logo{width:100%;height:12dvh;max-height:112px}
.start-screen .start-brand h1{width:84%}.start-screen .start-brand h1 img{max-height:6dvh}
.den-progress{position:absolute;left:50%;top:62%;transform:translateX(-50%);width:min(78%,calc(100cqw - 24px));display:grid;grid-template-columns:1fr 1fr;gap:0;padding:13px 9px;border:2px solid #b6efff;border-radius:18px;background:#102f43f5;box-shadow:0 4px 0 #102c3c55;color:#f6fdff;text-align:center}
.den-progress>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:0;padding-inline:5px}.den-progress>div+div{border-left:1px solid #aedff543}
.den-progress>div>span{font-size:14px;line-height:1.2;color:#ccebf5}.den-progress strong{font-size:clamp(20px,5.8cqw,27px);line-height:1.15}.den-progress small{font-size:14px;color:#ccebf5}
.den-wallet strong{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%;color:#ffe195;font-variant-numeric:tabular-nums}.den-wallet img{width:30px;height:24px;object-fit:contain}.den-wallet .long-number{font-size:14px}
.den-status{position:absolute;left:50%;top:26%;transform:translateX(-50%);width:min(76%,calc(100cqw - 32px));margin:0;padding:8px;border-radius:10px;background:#102f43ef;color:#ffe195;font-size:14px;line-height:1.25;text-align:center}
.start-screen .paw-start{top:88%;width:clamp(76px,23cqw,116px);height:clamp(76px,23cqw,116px);padding:6px;background:#effaffd9;border:2px solid #12232c;box-shadow:0 4px 0 #12232c55;filter:none}
.start-screen .version-label{bottom:calc(var(--safe-bottom) + 7px);color:#102f43;text-shadow:0 1px 1px #ffffffa0;font-size:12px}
.icon-button img{width:24px;height:24px;object-fit:contain;pointer-events:none}
.icon-button.exit-round{border-color:#8d2636;background:#fff0f1}.exit-round img{filter:hue-rotate(155deg) saturate(1.8)}
.exit-dialog h2{font-size:25px;line-height:1.2;margin:0}.exit-dialog .exit-actions{display:grid;gap:10px;margin-top:20px}.exit-actions .exit-confirm{background:#d84459;color:white;border-color:#792334}
@keyframes den-breathe{50%{transform:translateX(-50%) scaleY(1.012)}}
@media(prefers-reduced-motion:reduce){.den-cat{animation:none}}

/* Koci dom 3.01: live text remains separate from the illustrated screens. */
.start-screen .start-brand{background:#000;border-color:#9dedff;top:6%;padding:8px 12px}
.start-screen .start-brand h1{width:auto;font-size:clamp(22px,5cqw,32px);color:#f4fdff;text-align:center;margin:0}
.start-screen .start-logo{height:10dvh;max-height:100px}
.den-progress{top:59%;padding:10px 7px}.den-progress strong{font-size:clamp(17px,4.5cqw,24px)}
.den-nav{position:absolute;left:9%;top:73%;width:82%;display:grid;grid-template-columns:1fr 1fr;gap:7px}
.den-nav button{border:2px solid #a0eaff;border-radius:13px;background:#0d334beF;color:#f5fdff;min-height:42px;padding:8px;font-size:14px;box-shadow:0 3px 0 #09263866}
.den-nav button:active{background:#246585}
.start-screen .paw-start{top:91%;width:82px;height:82px;padding:6px 8px 21px}
.paw-start span{position:absolute;bottom:7px;color:#07344a;font-size:16px;font-weight:700}
.den-decoration{position:absolute;top:47%;left:70%;width:12%;height:7%;object-fit:contain;filter:drop-shadow(0 3px 2px #103c5550)}
.result-brand{top:3.8%;font-size:max(16px,4.3cqw);color:#0b3852;text-shadow:none}
.result h2{top:7.5%;font-size:clamp(20px,5.5cqw,30px)}
.fish-rewards{top:39%;left:12%;width:76%;height:12.8%}
.fish-reward{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;display:grid;place-items:center}
.fish-reward img{width:75%;height:62%;object-fit:contain;filter:grayscale(1);opacity:.22;transform:translateY(-4%)}
.fish-reward.earned img{filter:drop-shadow(0 2px 5px #f5b83a88);opacity:1}
.result-summary{top:55.5%;left:14%;width:72%;height:15.3%}
.result-next{top:73.5%}.result-again{top:82.7%}
.journey-heading{top:calc(var(--safe-top) + 25px);left:8%;width:auto;text-align:left;text-shadow:0 2px 4px #073044}
.journey-heading strong{display:block;font-size:26px}.journey-heading span{font-size:18px}
.journey-art{animation:none;object-position:center top}
.journey-cat{left:50%;top:42%;width:120px;height:120px}
.journey-challenge{max-height:61%;overflow:auto;touch-action:pan-y;bottom:calc(var(--safe-bottom) + 12px);padding:14px 18px;background:#08293ef2}
.journey-challenge h2{font-size:29px}.journey-challenge p{font-size:15px}
.journey-challenge .primary{display:flex;align-items:center;justify-content:center;gap:9px;font-size:19px}
.journey-challenge .primary img{width:32px;height:32px;object-fit:contain}
.field-guide{margin:10px 0;border-block:1px solid #76bdce4d;padding:9px 0;text-align:left;font-size:15px}
.field-guide summary{cursor:pointer;min-height:30px;display:flex;align-items:center;justify-content:center;color:#c9f4ff}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.guide-grid>div{display:flex;gap:7px;align-items:center;min-width:0}.guide-grid img{width:40px;height:45px;object-fit:contain;flex:none}
.guide-grid span{font-size:13px;line-height:1.3}.guide-grid b{display:block;font-size:14px;color:#ffde90}
.guide-controls{font-size:14px!important;line-height:1.45!important;color:#d1eaf4}
.guide-toggle{font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;margin:10px 0}.guide-toggle input{width:20px;height:20px;accent-color:#5dd5f6}
.game-dialog,.map-panel,.coffee-panel{padding:22px;border:2px solid #67d6f4;border-radius:24px;background:#0b2b41;color:#f3fcff;width:min(440px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;touch-action:pan-y}
dialog::backdrop{background:#021825da}.game-dialog p{font-size:16px;line-height:1.45;color:#c6e2ee}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-heading h2{font-size:25px;margin:0}.panel-close{position:absolute;right:12px;top:12px;z-index:3}
.map-panel{padding:0;width:min(500px,calc(100vw - 20px));height:min(840px,calc(100dvh - 20px));overflow:hidden}.map-art{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.map-title{position:absolute;top:20px;left:20px;color:#082c44;text-shadow:0 1px 3px #fff}.map-title h2{font-size:32px;margin:0}.map-title p{font-size:14px;margin:4px 0}
.map-stages{position:absolute;left:5%;width:90%;bottom:18px;background:#08293ef2;border:2px solid #96e8fc;border-radius:20px;padding:10px 12px}.map-place h3{font-size:18px;margin:8px 0}.map-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.map-buttons button{min-height:49px;border:2px solid #70cfea;border-radius:12px;background:#164761;color:#fff;font-size:18px;padding:4px}.map-buttons button:disabled{cursor:default;opacity:.42}.map-buttons button.current{background:#69dbf3;color:#092f46}.map-buttons small{display:block;font-size:12px;color:#ffe494;line-height:1.4}.map-buttons button.current small{color:#654a15}
.collection-items{display:grid;grid-template-columns:1fr 1fr;gap:12px}.collection-item{padding:14px 8px;border:1px solid #3c7995;border-radius:17px;text-align:center;background:#123c55}.collection-item img{display:block;width:78px;height:72px;object-fit:contain;margin:auto auto 10px}.collection-item.locked img{filter:grayscale(1);opacity:.25}.collection-item strong{font-size:15px}.collection-item span{display:block;font-size:13px;margin-top:5px;color:#b4d6e5}
.shop-wallet{display:flex;align-items:center;gap:10px;color:#ffe494!important}.shop-wallet img{width:38px;height:27px}.shop-wallet strong{font-size:26px}.shop-item{display:grid;grid-template-columns:66px 1fr;gap:12px;padding:15px 0;border-bottom:1px solid #4385a04d}.shop-item>img{width:66px;height:72px;object-fit:contain}.shop-item h3{font-size:18px;margin:0}.shop-item p{font-size:14px;margin:6px 0}.shop-item button{font-size:14px;min-height:42px;padding:8px 13px}
.coffee-panel{position:relative;padding:0;width:min(500px,calc(100vw - 20px));height:min(850px,calc(100dvh - 20px));overflow:hidden}.coffee-panel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.coffee-panel h2{position:absolute;top:7%;left:7%;font-size:28px;max-width:70%;text-shadow:0 2px 4px #092c41}.coffee-story{position:absolute;bottom:3%;left:6%;width:88%;padding:16px 18px;background:#0b2b41eF;border:1px solid #8ae2f7;border-radius:18px}.coffee-story summary{font-size:17px;cursor:pointer}.coffee-story p{font-size:14px;line-height:1.45;color:#cbe8f3}.coffee-story>p{margin-bottom:0}
@media(max-height:670px){.den-nav{top:73%;gap:5px}.den-nav button{min-height:35px;padding:5px;font-size:13px}.start-screen .paw-start{width:70px;height:70px}.den-progress{top:58%;padding:7px}.den-progress>div>span{font-size:12px}.journey-heading{top:16px}.journey-challenge{max-height:66%;padding:10px 13px}.journey-challenge #journey-description{display:none}.journey-cat{top:36%;height:95px;width:95px}.field-guide{margin:6px 0;padding:5px 0}}

/* Accounts share the den's illustration; credentials remain selectable live text. */
.account-banner{height:145px;position:relative;overflow:hidden;border-radius:20px;margin:8px 0 16px;background:#caeef8}.account-banner img{width:100%;height:100%;object-fit:cover;object-position:center 36%}.account-banner strong{position:absolute;bottom:0;left:0;right:0;padding:12px;background:linear-gradient(transparent,#153845e8);color:white;text-align:center;font-size:20px}
.auth-tabs{display:flex;gap:5px;margin-bottom:15px}.auth-tabs button{flex:1;font:inherit;padding:9px 4px;border:1px solid #b3d7e1;border-radius:12px;background:#f2fafc;color:#214858;font-size:14px}.auth-tabs button[aria-pressed=true]{background:#17495e;color:white}.auth-form{display:grid;gap:8px}.auth-form label{display:grid;gap:5px;font-weight:bold}.auth-form input{width:100%;padding:11px 13px;border:2px solid #c5e5ed;border-radius:12px;font:16px Balsamiq Sans;background:white;color:#15313d}.auth-form small{font-size:12px;color:#c3dee9;margin-bottom:6px}.auth-form .primary{margin-top:6px}#auth-status{font-size:14px;color:#c3eaf5}.credentials{color:#17394b;background:#eaf9fc;border:1px solid #addde7;border-radius:16px;padding:14px;margin-bottom:15px}.credentials p{font-size:13px}.credentials code{display:block;overflow-wrap:anywhere;user-select:text;margin-bottom:15px;font-size:15px}.credentials img{display:block;width:100%;height:auto;margin-top:12px}.credentials img[hidden]{display:none}#legacy-login{font-size:13px;margin:16px 0}#legacy-login a{display:block;margin-top:12px}.auth-form [hidden]{display:none}

.map-buttons small img{width:12px;height:10px;object-fit:contain}.map-buttons small img.unearned{opacity:.25;filter:grayscale(1)}
/* Keep the start action reachable while the field guide is expanded. */
.journey-challenge{display:flex;flex-direction:column;overflow:hidden}.field-guide{flex:1;min-height:0;overflow:auto;touch-action:pan-y}.journey-challenge>p,.journey-challenge>h2,.journey-goals,.guide-toggle,#journey-start{flex-shrink:0}

.journey-challenge:has(.field-guide[open]){max-height:83%}.journey-challenge:has(.field-guide[open]) #journey-description{font-size:13px}

/* 3.02: one safe-area frame and consistent den margins. */
html,body,dialog,.journey-screen,.journey-art,.game-dialog,.ranking-panel,.field-guide,.journey-challenge{touch-action:pan-y pinch-zoom}
canvas,#game{touch-action:none}.overlay{touch-action:manipulation}
dialog{margin:auto!important;max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px)!important}
.map-panel,.coffee-panel{height:min(840px,calc(100dvh - var(--safe-top) - var(--safe-bottom) - 28px))}
.panel-close{top:14px;right:14px;width:42px;height:42px}.ranking-heading,.dialog-heading{position:sticky;top:-1px;background:#0c293df5;z-index:3;padding-block:5px}
.start-screen .start-brand{background:none;border:0;box-shadow:none;padding:0;top:7%;width:58%;max-width:280px}
.start-screen .start-logo{height:auto;max-height:16dvh;width:100%;filter:drop-shadow(0 2px 2px #ffffff70)}
.start-screen .start-brand h1{font-size:clamp(19px,5cqw,27px);color:#113d52;text-shadow:0 1px 0 #e5fbff}
.den-nameplate{position:absolute;top:28%;left:50%;width:48%;transform:translateX(-50%);display:grid;place-items:center;pointer-events:none}
.den-nameplate img{display:block;width:100%;grid-area:1/1}.den-nameplate span{grid-area:1/1;color:#174252;font-size:clamp(14px,4.4cqw,24px);font-weight:bold;padding-top:2%;max-width:72%;overflow-wrap:anywhere;text-align:center}
.den-progress,.den-nav{left:50%;transform:translateX(-50%);width:min(88%,calc(100cqw - 28px))}.den-progress{top:60%;min-height:82px}.den-nav{top:74%;gap:8px}
.den-adventure{border:0;background:transparent;color:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:3px;font:inherit;border-radius:9px}.den-adventure>span{font-size:13px;color:#ccebf5}.den-wallet{border-left:1px solid #aedff543}.den-progress small{font-size:12px}#den-pending{font-size:11px;color:#ffe195}
.den-decoration{width:9%;height:5.1%;transform:translate(-50%,-50%)}
.version-label,.start-screen .version-label{left:14px;bottom:calc(var(--safe-bottom) + 9px);width:auto;text-align:left;font-size:11px}
.start-screen .paw-start{top:91%;width:86px;height:86px}.paw-start span{bottom:6px}.den-nav button{min-height:44px}
.card-actions{display:grid;grid-template-columns:1fr;gap:9px}.card-actions button{padding:10px;font-size:16px}.credentials img{user-select:auto;-webkit-user-select:auto;touch-action:manipulation;-webkit-touch-callout:default}
.map-title{top:16px;left:16px;max-width:72%;padding:8px 12px;border-radius:15px;background:#edfcffe8}.map-title h2{font-size:26px}.map-title p{font-size:12px}
.map-route,.map-stages{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none}.map-route{pointer-events:none}.map-stages{pointer-events:none}
.map-stop{position:absolute;transform:translate(-50%,-50%);width:40px;height:40px;border:3px solid #edfcff;border-radius:50%;background:#174f68;color:white;font-size:19px;box-shadow:0 3px 0 #0a2d42;pointer-events:auto}
.map-stop.current{background:#63d4ef;color:#103c53;box-shadow:0 0 0 5px #d2f8ff80,0 3px 0 #0a2d42}.map-stop.completed{background:#efc34c;color:#4a3612}.map-stop:disabled{opacity:.55;cursor:default}
.map-stop small{position:absolute;top:34px;left:50%;transform:translateX(-50%);display:flex;gap:1px;background:#123448dd;border-radius:8px;padding:2px 3px}.map-stop img{width:12px;height:10px}.map-stop .unearned{opacity:.25;filter:grayscale(1)}
.map-cat{position:absolute;width:78px;height:78px;transform:translate(-50%,-108%);pointer-events:none;z-index:2}
.map-continue{position:absolute;left:5%;width:90%;top:108px;z-index:3;font-size:16px}.map-art{object-fit:fill}
.level-loading{position:fixed;inset:0;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:#10364bed;color:#dffaff;font-size:25px}.level-loading img{width:78px;height:78px;object-fit:contain;animation:loading-paw 1s ease-in-out infinite}
@keyframes loading-paw{50%{transform:translateY(-12px);opacity:.6}}
.hud-item.expiring img{animation:sense-pulse .75s ease-in-out infinite}@keyframes sense-pulse{50%{opacity:.4;transform:scale(.9)}}
@media(prefers-reduced-motion:reduce){.level-loading img,.hud-item.expiring img{animation:none}}
@media(max-height:670px){.den-nav{top:74%;gap:6px}.den-nav button{min-height:36px;font-size:12px}.den-progress{top:60%;min-height:69px;padding:7px}.den-progress strong{font-size:17px}.den-nameplate{top:27%;width:43%}.map-stop{width:35px;height:35px;font-size:16px}.map-cat{width:65px;height:65px}.map-stop small{top:29px}}

.start-screen .start-brand{top:7%;width:62%}.start-screen .start-logo{height:12dvh;max-height:120px;width:100%;object-fit:contain}.den-nameplate{top:22%;width:43%}
@media(max-height:670px){.den-nameplate{top:22%;width:42%}}

.den-nameplate span{font-size:clamp(12px,3.5cqw,20px);white-space:nowrap;overflow-wrap:normal}

/* Each cat travels with its own bed; navigation and the player's progress stay fixed. */
.cat-picker{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline-offset:-5px}
.cat-picker.dragging{cursor:grabbing}.den-track{display:flex;width:100%;height:100%;transition:transform .28s ease-out;will-change:transform}
.dragging .den-track{transition:none}.den-slide{position:relative;flex:0 0 100%;min-width:0;height:100%;overflow:hidden}
.den-slide .den-art{height:100%;width:100%}.den-slide .den-cat{touch-action:inherit;pointer-events:none}
.den-slide[aria-hidden=true] .den-cat{animation-play-state:paused}
.den-nameplate{top:21.5%;width:38%}
.cat-caption{position:absolute;left:23%;top:30.5%;width:54%;text-align:center;color:#123f52;pointer-events:none;line-height:1.15;text-shadow:0 1px 1px #f1fdff;display:flex;flex-direction:column;align-items:center;gap:3px}
.cat-caption strong{font-size:clamp(20px,5cqw,29px)}.cat-caption span{font-size:clamp(14px,3.4cqw,17px)}
.cat-picker[data-cat=undiscovered]~.cat-caption{left:15%;width:70%;justify-content:center}.cat-picker[data-cat=undiscovered]~.cat-caption strong{white-space:nowrap}.cat-picker[data-cat=undiscovered]~.cat-caption #cat-detail{display:none}
#cat-retry{pointer-events:auto;border:1px solid #174656;border-radius:9px;color:#123f52;background:#edfbff;font-size:14px;padding:6px 10px}
.cat-arrow{position:absolute;top:43%;width:44px;height:48px;border:2px solid #184353;border-bottom-width:4px;border-radius:16px;background:#edfaffeb;color:#123f52;font-size:38px;line-height:1;display:grid;place-items:center;box-shadow:0 3px 0 #15374333;touch-action:manipulation}
.cat-prev{left:max(7%,calc((100% - 100cqw)/2 + 14px))}.cat-next{right:max(7%,calc((100% - 100cqw)/2 + 14px))}.cat-arrow:disabled{cursor:default;opacity:.32}.cat-arrow:active:enabled{transform:translateY(2px)}
.cat-dots{position:absolute;top:55.4%;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:1px}
.cat-dots button{width:32px;height:32px;padding:0;border:0;background:none;display:grid;place-items:center;cursor:pointer}
.cat-dots button:after{content:'';width:9px;height:9px;border:2px solid #173f51;border-radius:50%;background:#e4f7ff;box-shadow:0 1px 1px #ffffff80}
.cat-dots button[aria-pressed=true]:after{background:#36c6f3;transform:scale(1.3)}
.den-locked .mystery-cat{filter:brightness(0) opacity(.62);animation:none}
.cat-padlock{position:absolute;left:50%;top:42%;transform:translateX(-50%);display:grid;place-items:center;width:clamp(48px,13cqw,70px);height:clamp(48px,13cqw,70px);border:3px solid #143d4d;border-radius:50%;color:#143d4d;background:#fff0b9;box-shadow:0 3px 0 #143d4d55}
.cat-padlock svg{width:54%;height:54%}#den-decorations{pointer-events:none}
.den-adventure:disabled{cursor:default;opacity:.55}
.guide-grid span[data-cat-copy]{display:block}
@media(max-height:670px){
 .start-screen .start-logo{height:10dvh;max-height:68px}.start-screen .start-brand h1{font-size:18px}
 .cat-caption{top:30.5%;flex-direction:row;justify-content:center;align-items:baseline;gap:7px}.cat-caption strong{font-size:20px}.cat-caption span{font-size:14px}.cat-dots{top:55.1%}
 .den-progress{top:59%;min-height:63px;padding:5px}.den-adventure{gap:2px}.den-progress strong{font-size:16px}
 .den-nav{top:73%;gap:5px}.start-screen .paw-start{top:93.5%;width:64px;height:64px;padding:4px 5px 17px}.start-screen .paw-start span{font-size:14px;bottom:4px}
}
@media(prefers-reduced-motion:reduce){.den-track{transition:none}}

@media(max-height:650px){
 #ranking-panel{padding-top:10px}#ranking-panel .ranking-heading{padding-bottom:9px}#ranking-panel .ranking-heading h2{font-size:20px;white-space:nowrap}
 #ranking-account-open{padding-inline:8px}#ranking-rule{display:none}#ranking-panel .ranking-level-field{margin-top:8px;gap:3px}
 .ranking-results{margin-top:8px}.ranking-podium{padding-top:6px}.podium-scene{height:78px}.podium-place-1 .podium-scene{height:92px}.podium-scene .ranking-cat{height:58px;bottom:14px}.podium-place-1 .ranking-cat{height:72px;bottom:16px}
 .ranking-footer{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:6px;padding-block:8px}#ranking-panel .my-rank{padding:6px;min-height:58px;gap:6px}.my-rank>.ranking-cat{width:29px;height:39px}.my-rank b{font-size:14px}.my-rank small{font-size:13px}.my-rank .ranking-score{font-size:15px;gap:2px}.my-rank .ranking-score img{width:20px}
 .ranking-footer>.secondary{grid-column:2;grid-row:1;margin:0;align-self:stretch;font-size:0;padding:0}.ranking-footer>.secondary::after{content:'↻';font-size:27px}.ranking-pending{grid-column:1/-1;margin:0;font-size:13px}
}

/* Limited keepsake and gifts share the den's cyan ink and warm gold. */
.share-fish{border:1px solid #84d9ef;border-radius:10px;padding:4px 10px;background:#d6f3ff;color:#16384a;font-weight:700;font-size:13px;min-height:28px;white-space:nowrap}
.den-wallet .share-fish{margin-top:2px}.den-wallet{gap:2px}.shop-wallet{display:flex;align-items:center;gap:10px}
.collar-tile{width:100%;display:flex;align-items:center;gap:12px;text-align:left;color:#ffecb8;background:linear-gradient(120deg,#123f58,#192c41);border:2px solid #d3ac5c;border-radius:19px;padding:12px;margin:8px 0 18px}.collar-tile>img{width:100px;height:110px;object-fit:contain}.collar-tile>span{display:grid;gap:5px}.collar-tile small{font-size:11px;color:#c7a968}.collar-tile strong{font-size:19px;line-height:1.1}.collar-tile span span{font-size:13px}.collar-tile b{font-size:13px;color:#8cdefb}
.collar-panel{width:min(440px,calc(100vw - 24px));background:radial-gradient(ellipse at 50% 25%,#1e5670,#0c263a 65%);border-color:#e5c176;padding:17px 20px 23px;text-align:center}.collar-panel .dialog-heading{align-items:center;margin:0}.collar-eyebrow{font-size:12px;letter-spacing:.9px;color:#e5c782;text-align:left}.collar-art{height:220px;display:grid;place-items:center;margin:-5px 0 -13px}.collar-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 20px #e9bf4a2b)}.collar-panel h2{font-size:29px;line-height:1.08;color:#ffdfa0;margin:7px 0;outline:none}.collar-celebrate{font-size:15px;color:#a6eaff;margin:0}.collar-owner{font-size:14px;margin:8px 0 14px;color:#bee1ef}.collar-panel blockquote{font-size:20px;line-height:1.18;margin:14px 0;padding:0;color:#ffdfa0}.collar-value{font-size:20px;margin:13px 0 6px;font-weight:700}.collar-keepsake{font-size:14px;line-height:1.35;color:#c6e4ef;margin:7px 0 15px}.collar-code{border:1px solid #527b8b;border-radius:14px;background:#092337;padding:11px}.collar-code span{display:block;font-size:12px;margin-bottom:5px;color:#a6d9ee}.collar-code code{font-size:12px;line-height:1.55;color:#fff0cc;overflow-wrap:anywhere;user-select:all;-webkit-user-select:all}.collar-downloads{display:grid;gap:8px;margin:15px 0 10px}.collar-downloads button{font-size:16px;min-height:43px}.collar-redeem{width:100%;margin-top:15px;font-size:15px;border-color:#d6b164;color:#ffe2a0}.collar-panel details{text-align:left;font-size:13px;color:#b2d9e8}.collar-panel summary{cursor:pointer;padding:7px 0}.collar-panel details img{width:100%;border-radius:15px;margin-top:8px;user-select:auto;-webkit-user-select:auto;touch-action:pan-y pinch-zoom}
.economy-status{font-size:15px;line-height:1.35;color:#ffdfa0;margin:12px 0 0;overflow-wrap:anywhere}.economy-status:empty{display:none}.economy-confirm{padding:13px;margin-top:12px;border:2px solid #e2be76;border-radius:15px;background:#173b4e;line-height:1.4}.economy-confirm p{margin:0 0 12px}.economy-confirm>div{display:grid;gap:8px}.economy-confirm button{font-size:15px}.economy-confirm small{display:block;margin-top:9px;font-size:12px;color:#bed8e5}
.gift-panel{width:min(420px,calc(100vw - 24px));padding:20px}.gift-panel h2{font-size:24px;line-height:1.12;outline:none}.gift-panel .dialog-heading{align-items:center}.gift-hero{display:flex;align-items:center;gap:19px;margin:12px 0 16px}.gift-hero img{width:70px;height:65px;object-fit:contain}.gift-hero p{font-size:21px;line-height:1.15;color:#ffdf91;margin:0}.gift-balance{font-size:19px;margin:10px 0 5px}.gift-reset{display:block;color:#b1d3e5;line-height:1.3;font-size:12px}.gift-panel label{display:block;font-size:14px;margin:15px 0 7px}.gift-nick-row{display:flex;gap:8px}.gift-nick-row input{min-width:0;width:100%;padding:11px 10px;border-radius:12px;border:2px solid #77cce9;font-size:17px;color:#143446;background:#f1fcff;user-select:text;-webkit-user-select:text}.gift-nick-row button{font-size:14px;padding:8px 13px}.gift-recipient{margin:17px 0 4px;color:#bdebc9;font-size:18px}.gift-quantity{display:flex;align-items:center;justify-content:center;gap:9px;margin:7px 0}.gift-quantity img{height:28px;width:35px}.gift-quantity output{font-size:34px;color:#ffe099;font-weight:700;font-variant-numeric:tabular-nums}#gift-amount{display:block;width:100%;height:40px;accent-color:#60d4f5;touch-action:pan-x}.gift-range-labels{display:flex;justify-content:space-between;color:#a2cce0;font-size:12px;margin-top:-4px}.gift-panel #gift-send{width:100%;margin-top:15px;font-size:17px}#gift-limit{margin:0 0 5px;font-size:14px}#gift-pending button{width:100%}
@media(max-height:650px){.collar-art{height:155px}.collar-panel{padding:14px}.collar-panel h2{font-size:25px}.collar-panel blockquote{font-size:18px}.gift-panel{padding:15px}.gift-hero{margin-block:9px}.gift-hero img{height:48px;width:56px}.gift-hero p{font-size:19px}.den-wallet .share-fish{min-height:24px;padding-block:2px;font-size:11px}}
.collar-art{--collar-art-size:220px;display:block;height:var(--collar-art-size);margin:4px 0 0}.collar-art img{display:block;width:100%;height:var(--collar-art-size);min-height:0;max-height:var(--collar-art-size)}
@media(max-height:650px){.collar-art{--collar-art-size:155px}}
.collar-panel .dialog-heading{background:#103146;z-index:3}
.gift-panel .dialog-heading{background:#0c293d;z-index:3}
@media(max-height:670px){.den-progress>.den-wallet{gap:1px}.den-wallet .share-fish{min-height:23px;line-height:1;padding:2px 8px}}

.password-tools{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}.password-tools .secondary{flex:1 1 auto;min-height:44px;padding:9px 12px;font-size:14px}.auth-form #password-help{font-size:14px;line-height:1.35}

/* Picker controls consume taps; rapid changes must never zoom the page. */
.cat-arrow,.cat-dots button,#cat-retry{touch-action:none;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}

/* Language is chosen at entry or in the den, between rounds. */
.language-switch{position:absolute;right:14px;bottom:calc(var(--safe-bottom) + 5px);z-index:4;display:flex;gap:2px;padding:2px;border:1px solid #9edeee;border-radius:15px;background:#0d334bed;box-shadow:0 2px 0 #09263844}
.language-switch button{min-width:44px;min-height:40px;padding:6px 9px;border:0;border-radius:11px;background:transparent;color:#ecfaff;font-size:14px;touch-action:manipulation}
.language-switch button[aria-pressed=true]{background:#65cbee;color:#092a3c;font-weight:700}
.language-switch button:focus-visible{outline:3px solid #ffdb8b;outline-offset:2px}
.parent-rest{width:min(92vw,440px);text-align:center;padding:22px;background:#0c2538;color:#eaf7fd;border-color:#6ed7f4}.parent-rest img{width:100%;height:210px;object-fit:cover;object-position:center 64%;border-radius:18px}.parent-rest h2{font-size:32px;margin:18px 0 10px}.parent-rest p{font-size:17px;line-height:1.4}.parent-rest #parent-save{font-size:14px;color:#bee9f4}.parent-rest::backdrop{background:#051522ed}.parent-continue{position:absolute;z-index:8;bottom:calc(env(safe-area-inset-bottom,0px) + 12px);left:50%;transform:translateX(-50%);width:min(85%,390px);font-size:16px}
#parent-code{overflow-wrap:anywhere;font-size:16px;line-height:1.5}
