.lm-dialog{position:fixed;inset:0;margin:auto;width:min(950px,96vw);max-width:96vw;height:min(850px,94dvh);max-height:94dvh;overflow:auto;border:1px solid #d6ddc8;border-radius:26px;padding:24px;background:#faf6e9;color:#394f40;font:15px/1.5 'Hanken Grotesk',system-ui;box-sizing:border-box}.lm-dialog *{box-sizing:border-box}.lm-dialog::backdrop{background:#233a30b3}.lm-dialog h2{font:30px Georgia;margin:10px 0}.lm-dialog h3{font:22px Georgia}.lm-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.lm-kicker{font-size:11px;letter-spacing:1px}.lm-btn{font:inherit;min-height:44px;padding:9px 15px;border:1px solid #cad4be;border-radius:24px;background:#f9f6ea;color:#47644b;cursor:pointer;text-align:center}.lm-btn:hover{background:#edf1e3}.lm-btn:disabled{opacity:.6;cursor:default}.lm-primary{background:#4b775c;color:white}.lm-primary:hover{background:#3f654d}.lm-dialog :focus-visible{outline:3px solid #ae884b;outline-offset:3px}.lm-note,.lm-hint{font-size:13px;color:#65745e}.lm-setup{display:flex;gap:16px;margin:20px 0}.lm-setup label{flex:1}.lm-dialog select{display:block;width:100%;min-height:46px;padding:8px;background:#fffaf0;border:1px solid #bdcbb0;border-radius:10px;font:inherit;color:#39513d}.lm-favours{border:0;padding:0;display:flex;gap:10px}.lm-favours legend{margin-bottom:10px}.lm-favours label{flex:1;padding:14px;background:#eef1e3;border:1px solid #d5ddc8;border-radius:14px;cursor:pointer}.lm-favours small{display:block}.lm-favours input{accent-color:#4b775c;margin-right:8px}.lm-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.lm-layout{display:grid;grid-template-columns:260px 1fr;gap:24px;margin-top:12px}.lm-board{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px;margin:12px 0}.lm-card{font:inherit;min-width:0;padding:0;aspect-ratio:1.05;border:1px solid #c3d0b5;border-radius:13px;background:#e4ebd9;box-shadow:0 3px 0 #c3d0b5;cursor:pointer;position:relative;overflow:hidden}.lm-card img{width:100%;height:75%;object-fit:contain}.lm-card>span:not(.lm-card-back){display:block;font-size:11px;line-height:1.1;padding:0 2px;color:#394d39}.lm-open{background:#fffaf0}.lm-matched{border-color:#6f946c;box-shadow:none}.lm-card-back{display:flex;position:absolute;inset:6px;border:1px solid #bccdab;border-radius:9px;align-items:center;justify-content:center}.lm-card-back svg{width:45%;stroke:#759067;stroke-width:1.5;fill:none}.lm-check{position:absolute;top:2px;right:6px;color:#52764d;font-size:13px}.lm-stats{font-size:13px;color:#68775e}.lm-speech{font:italic 18px/1.4 Georgia;min-height:52px}.lm-finish{background:#eaf0df;border-radius:16px;padding:14px;margin-top:16px}.lm-finish h3{margin:0}.lm-finish p{margin:8px 0}.lm-dialog[open]{display:block}.lm-dialog .lm-card:disabled{opacity:1}.lm-dialog .lm-card[disabled]:not(.lm-matched){cursor:default}
@media(max-width:700px){.lm-dialog{padding:14px;width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding-top:max(14px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.lm-layout{display:block;margin-top:8px}.lm-side{display:grid;grid-template-columns:125px 1fr;gap:6px 12px;align-items:center}.lm-side h2{grid-column:1/-1;font-size:22px;margin:2px 0}.lm-speech{font-size:15px;min-height:0;margin:0}.lm-side>.lm-note{display:none}.lm-side>.lm-actions{grid-column:1/-1;margin-top:0}.lm-side>.lm-actions button{padding:5px 12px;font-size:12px}.lm-card>span:not(.lm-card-back){font-size:10px}.lm-board{gap:7px;margin:9px 0}.lm-stats{margin-top:8px;font-size:12px}.lm-btn{font-size:13px}.lm-setup{flex-direction:column;gap:10px}.lm-favours{flex-direction:column;gap:8px}.lm-favours label{padding:10px}.lm-dialog h2{font-size:25px}.lm-hint{font-size:12px;margin:8px 0}.lm-top{font-size:12px}.lm-intro{font-size:14px}}
@media(prefers-reduced-motion:reduce){.lm-wiggle{animation:none}}@media(max-height:500px) and (min-width:701px){.lm-dialog{height:100dvh;max-height:100dvh}.lm-layout{grid-template-columns:170px 1fr}.lm-board{max-width:470px}}
.lm-deal .lm-card{animation:lmDeal .35s ease-out both}@keyframes lmDeal{from{transform:translateY(-8px);opacity:.35}to{transform:translateY(0);opacity:1}}@media(prefers-reduced-motion:reduce){.lm-deal .lm-card{animation:none}}
.lm-favours label.lm-selected{background:#dfead6;border:2px solid #4b775c;padding:13px}.lm-favours input{appearance:auto!important;-webkit-appearance:radio!important;position:static!important;opacity:1!important;width:20px!important;height:20px!important;vertical-align:middle}.lm-favours label.lm-selected strong:after{content:' · Selected';color:#416a45;font-size:12px}.lm-board{isolation:isolate}.lm-card{will-change:auto}@media(max-width:700px){.lm-favours label.lm-selected{padding:9px}}

/* Earned rewards and a companion-only stage. */
.lm-side{text-align:center}.lm-side .lm-companion{position:static;display:block;width:210px;max-width:100%;height:auto;margin:auto}.lm-side .lm-speech{font:15px/1.5 'Hanken Grotesk',system-ui;margin:8px 0;min-height:46px}.lm-btn:active:not(:disabled){transform:translateY(1px)}.lm-actions{align-items:center}.lm-trail{border-top:1px solid #d6ddc8;margin-top:16px;padding-top:12px}.lm-trail-head{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.lm-track{position:relative;height:80px;margin:8px 25px 0}.lm-trail-line{position:absolute;left:0;right:0;top:43px;height:5px;background:#d7dec9;border-radius:4px}.lm-trail-fill{height:100%;background:#73946a;border-radius:4px;transition:width .85s ease}.lm-walker{position:absolute;width:48px;height:46px;top:-1px;transform:translateX(-50%);transition:left .85s ease;pointer-events:none}.lm-trail-mark{position:absolute;top:36px;transform:translateX(-50%);text-align:center;font-size:11px}.lm-trail-mark i{display:block;width:19px;height:19px;border:3px solid #faf6e9;border-radius:50%;background:#bac7a9;margin:auto auto 4px}.lm-earned i{background:#6e8e62}.lm-trail-reward{position:absolute;right:-22px;top:17px;width:44px;height:44px;padding:0;border:1px solid #becbad;border-radius:50%;background:#faf6e9;cursor:pointer}.lm-trail-reward img{width:100%;height:100%;object-fit:contain}.lm-popup{inset:0;margin:auto;width:min(460px,94vw);max-width:94vw;max-height:90dvh;overflow:auto;padding:24px;border:1px solid #d4dbc5;border-radius:24px;background:#faf6e9;color:#394f40;text-align:center;font:15px/1.5 'Hanken Grotesk',system-ui;box-shadow:0 18px 60px #20352955}.lm-popup::backdrop{background:#20382d99}.lm-popup h2{font:700 27px Georgia;margin:12px 0}.lm-popup h3{margin:8px 0;font:700 18px Georgia}.lm-popup>img{width:210px;height:190px;max-width:85%;object-fit:contain}.lm-popup .lm-actions{justify-content:center}.lm-reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.lm-reward-grid button{padding:6px;border-radius:14px;min-width:0;display:flex;flex-direction:column;align-items:center;font-size:12px}.lm-reward-grid img{width:100%;height:86px;object-fit:contain}.lm-season{font-weight:700;color:#4b6b49}.lm-unlock{animation:lmRewardIn .5s ease-out}.lm-sparks{position:absolute;top:40%;left:50%;pointer-events:none}.lm-sparks span{position:absolute;color:#c89d52;animation:lmRewardSpark 1s ease-out forwards}@keyframes lmRewardIn{from{transform:translateY(12px) scale(.97)}to{transform:none}}@keyframes lmRewardSpark{from{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translate(var(--x),var(--y))}}
@media(max-width:700px){.lm-side{grid-template-columns:95px 1fr;text-align:left;gap:10px}.lm-side .lm-companion{width:95px}.lm-side .lm-speech{font-size:13px;min-height:0;margin:0}.lm-trail{margin-top:10px;padding-top:8px}.lm-trail-head{font-size:12px}.lm-track{margin-top:3px;height:69px}.lm-popup{padding:18px}.lm-popup h2{font-size:24px}.lm-reward-grid img{height:70px}.lm-main{min-width:0}}
@media(prefers-reduced-motion:reduce){.lm-walker,.lm-trail-fill{transition:none}.lm-unlock,.lm-sparks span{animation:none}.lm-sparks{display:none}.lm-mode-card{transition:box-shadow .15s ease}.lm-mode-card:hover:not(.lm-locked),.lm-mode-card:active:not(.lm-locked){transform:none}}

@media(max-width:700px) and (max-height:700px){.lm-side{grid-template-columns:72px 1fr}.lm-side .lm-companion{width:72px}.lm-side .lm-speech{font-size:12px}.lm-board{max-width:240px;margin:7px auto}.lm-card>span:not(.lm-card-back){font-size:10px}.lm-actions{margin-top:8px}.lm-hint{font-size:11px;margin:5px 0}.lm-track{height:64px}.lm-trail{margin-top:6px}.lm-trail-head .lm-btn{padding:6px 10px}}

.lm-next-reward{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;border:1px solid #cbd5bc;border-radius:16px;background:#eef0df;color:#3e5944;cursor:pointer;text-align:left;font:inherit;min-width:0}.lm-next-reward img{width:76px;height:72px;object-fit:contain;flex-shrink:0}.lm-next-reward span{display:block}.lm-next-reward strong{display:block;font-size:15px}.lm-next-reward span span{font-size:12px;margin-top:4px}.lm-next-reward:hover{background:#e3ebd7}.lm-next-reward:focus-visible{outline:3px solid #b28642;outline-offset:3px}

.lm-favours:disabled{opacity:.65}.lm-favours:disabled label{cursor:default}.lm-completion>button:last-child{margin-top:12px;background:transparent;border-color:transparent}

.lm-popup{padding:0;overflow:hidden}.lm-popup[open]{display:flex;flex-direction:column}.lm-popup-body{overflow:auto;overscroll-behavior:contain;padding:22px;min-height:0}.lm-popup-footer{flex-shrink:0;margin:0!important;padding:12px 18px;border-top:1px solid #d4dbc5;background:#faf6e9;justify-content:center}.lm-popup-body>img{width:180px;height:160px;max-width:85%;object-fit:contain}.lm-intro-steps{text-align:left;padding-left:22px;font-size:14px;line-height:1.5}.lm-intro-steps li+li{margin-top:8px}.lm-welcome .lm-popup-body>img{width:120px;height:105px}.lm-welcome h2{font-size:25px}.lm-popup-body .lm-next-reward{width:100%}

.lm-card:active:not(:disabled){transform:scale(.96);box-shadow:0 1px 0 #c3d0b5}.lm-card.lm-miss{background:#f0f3eb;border-color:#8ba59b;box-shadow:0 2px 0 #cedbd0;outline:1px dashed #8ba59b;outline-offset:-5px}.lm-btn:active:not(:disabled){filter:brightness(.94)}

@media(prefers-reduced-motion:reduce){.lm-card:active:not(:disabled){transform:none}}

.lm-shuffling{animation:lmShuffle 1.6s ease-in-out both;will-change:transform}
@keyframes lmShuffle{0%{transform:translate3d(var(--from-x),var(--from-y),0)}45%{transform:translate3d(var(--mix-x),var(--mix-y),0) rotate(var(--mix-turn)) scale(.88)}100%{transform:translate3d(0,0,0) rotate(0) scale(1)}}
.lm-shuffle-gentle{animation:lmShuffleGentle .9s ease-in-out both}
@keyframes lmShuffleGentle{0%,100%{opacity:1}45%{opacity:.45}}
@media(prefers-reduced-motion:reduce){.lm-shuffling{animation:lmShuffleGentle .9s ease-in-out both;will-change:auto}}

/* Mode-select: two illustrated cards (Season 1 / Endless) shown on entry.
   The "illustration" is entirely existing pieces — a big reward portrait,
   the game's own card-back SVG, and CSS/emoji decoration — nothing new to
   ship or load. */
.lm-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:22px 0}
.lm-mode-card{display:flex;flex-direction:column;border:1px solid #d5ddc8;border-radius:22px;background:#faf8ef;cursor:pointer;font:inherit;text-align:center;min-width:0;overflow:hidden;box-shadow:0 2px 0 #e4e0cc;transition:transform .15s ease,box-shadow .15s ease}
.lm-mode-card:hover:not(.lm-locked){transform:translateY(-3px);box-shadow:0 8px 18px -8px #263c2e4d}
.lm-mode-card:active:not(.lm-locked){transform:translateY(-1px) scale(.99)}
.lm-mode-endless{border-color:#a9c19a}
.lm-mode-art{position:relative;padding:20px 12px 8px;background:linear-gradient(180deg,#cfe6d3 0%,#e6efdd 65%,#f7f4e9 100%)}
.lm-mode-endless .lm-mode-art{background:linear-gradient(180deg,#bcd9d6 0%,#dbe7d9 65%,#f7f4e9 100%)}
.lm-mode-art img{width:150px;height:138px;object-fit:contain;display:block;margin:0 auto;filter:drop-shadow(0 6px 10px #1c2b1e26)}
.lm-paw-trail{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:4px;font-size:15px;opacity:.7}
.lm-paw-trail span{transform:rotate(calc((var(--i, 0) - 1.5) * 6deg))}
.lm-mode-tag{position:absolute;top:12px;right:12px;background:#fff9e9;border:1px solid #e3dcc0;border-radius:999px;padding:3px 10px;font:700 10.5px "IBM Plex Mono",monospace;letter-spacing:.05em;color:#8a6a2f}
.lm-mode-badge{position:absolute;top:12px;left:12px;display:flex;align-items:center;gap:5px;background:#3f5a4d;color:#eaf1e4;border-radius:999px;padding:5px 11px 5px 9px;font:700 10.5px "IBM Plex Mono",monospace;letter-spacing:.04em}
.lm-card-floaters{position:absolute;inset:0;pointer-events:none}
.lm-float-card{position:absolute;width:30px;height:30px;opacity:.65}
.lm-float-card svg{width:100%;height:100%;stroke:#3d5a4d;stroke-width:2.6;fill:none}
.lm-float-0{bottom:10px;right:54px;transform:rotate(-14deg)}
.lm-float-1{top:20px;right:18px;transform:rotate(12deg)}
.lm-float-2{bottom:8px;left:16px;transform:rotate(9deg)}
.lm-mode-body{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 16px 18px;flex:1}
.lm-mode-body h3{font:700 20px Georgia;margin:0}
.lm-mode-status{font-size:12.5px;font-weight:700;padding:3px 10px;border-radius:999px}
.lm-status-done{color:#2f6b3f;background:#e1efdc}
.lm-status-endless{color:#3d5c50;background:#e3ede7}
.lm-mode-desc{font-size:12.5px;color:#65745e;line-height:1.45;margin:0;min-height:34px}
.lm-mode-cta{width:100%;margin-top:auto;justify-content:center;font-weight:700}
.lm-mode-card.lm-locked{cursor:default;box-shadow:none}
.lm-mode-card.lm-locked .lm-mode-art{filter:grayscale(.5);opacity:.7}
.lm-mode-card.lm-locked .lm-mode-cta{opacity:.6}
.lm-actions-secondary{justify-content:center;margin-top:16px}
@media(max-width:700px){
 .lm-mode-grid{grid-template-columns:1fr;gap:12px}
 .lm-mode-art{padding:14px 12px 6px}
 .lm-mode-art img{width:104px;height:96px}
 .lm-paw-trail{font-size:11px;gap:10px}
 .lm-mode-body{padding:12px 14px 14px}
 .lm-mode-body h3{font-size:18px}
 .lm-mode-desc{min-height:0}
}

/* Endless setup screen: round progress, visual companion picker, and the
   favour fieldset upgraded from radio-settings to charming power-up
   cards. Reuses .lm-favours' own layout (flex row of equal-width
   labels) — just restyles what's inside each label and hides the raw
   radio in favour of the card's own border/background/check states. */
.lm-round-progress{display:flex;align-items:center;gap:12px;margin:18px 0;padding:14px 16px;background:#f2efdf;border:1px solid #d5ddc8;border-radius:16px}
.lm-round-now{font:700 16px Georgia;color:#394f40;flex-shrink:0}
.lm-progress-track{position:relative;flex:1;height:8px;background:#e1e6d3;border-radius:999px;min-width:60px}
.lm-progress-fill{height:100%;background:#6f946c;border-radius:999px;transition:width .4s ease}
.lm-progress-dot{position:absolute;top:50%;width:14px;height:14px;background:#faf6e9;border:3px solid #4b775c;border-radius:50%;transform:translate(-50%,-50%);transition:left .4s ease}
.lm-round-next{font-size:12.5px;font-weight:700;color:#6b5a2f;flex-shrink:0;white-space:nowrap}
.lm-companion-picker{display:flex;align-items:center;gap:14px;margin:16px 0;padding:12px 16px;background:#f2efdf;border:1px solid #d5ddc8;border-radius:16px}
.lm-companion-preview{width:66px;height:56px;object-fit:contain;flex-shrink:0;background:#e9edd9;border-radius:12px;padding:4px}
.lm-companion-text{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.lm-companion-text select{min-height:38px;padding:5px 8px;font-weight:700}
.lm-section-label{font:700 11px "IBM Plex Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#6b7a5e;margin:18px 0 8px}
.lm-favours label{padding:16px 12px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:5px;position:relative;transition:background-color .15s ease,border-color .15s ease}
.lm-favours input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important;margin:0!important;pointer-events:none}
.lm-favour-icon{font-size:26px;line-height:1}
.lm-favour-text strong{display:block;font-size:14px}
.lm-favour-text small{display:block;font-size:12px;color:#65745e;margin-top:2px;line-height:1.35}
.lm-favour-check{display:none;font-size:10.5px;font-weight:700;color:#2f6b3f;background:#dcefdc;border-radius:999px;padding:3px 10px;margin-top:2px}
.lm-favours label.lm-selected{padding:15px 11px}
.lm-favours label.lm-selected .lm-favour-check{display:inline-block}
.lm-favours label.lm-selected strong:after{content:none}
.lm-cta-row{margin-top:18px}
.lm-cta-row .lm-btn{flex:1;min-width:0;font-size:16px;font-weight:700;padding:13px 18px}
@media(max-width:700px){
 .lm-round-progress{flex-wrap:wrap;gap:8px 12px}
 .lm-round-next{order:3;width:100%;text-align:center}
 .lm-companion-preview{width:54px;height:46px}
 .lm-favours label{padding:12px 8px}
 .lm-favour-icon{font-size:22px}
}

/* On-brand hand-drawn icons (art/icon-keepsake-*.svg) in place of emoji,
   throughout the Little Matches menus. */
.lm-icon-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}
.lm-icon-btn .neo-ui-icon{width:20px;height:20px}
.lm-mode-cta.lm-icon-btn .neo-ui-icon{width:22px;height:22px}
.lm-favour-icon .neo-ui-icon{width:30px;height:30px}
.lm-mode-tag .neo-ui-icon{width:15px;height:15px;vertical-align:-2px;margin-right:3px}
.lm-mode-badge{display:inline-flex;align-items:center;gap:5px}
.lm-mode-badge .neo-ui-icon{width:15px;height:15px}
.lm-round-next{display:inline-flex;align-items:center;gap:5px}
.lm-round-next .neo-ui-icon{width:16px;height:16px}
.lm-inline-icon{display:inline-flex;vertical-align:-3px}
.lm-inline-icon .neo-ui-icon{width:16px;height:16px}
.lm-paw-trail .neo-ui-icon{width:16px;height:16px;opacity:.75}
@media(max-width:700px){.lm-favour-icon .neo-ui-icon{width:24px;height:24px}}

/* Gameplay screen polish: board as the visual hero, physical-feeling
   cards, a grounded companion, and a real speech bubble — all CSS/markup
   only, no change to the matching logic, timers, or favour behaviour
   underneath. */
.lm-round-label{display:inline-flex;align-items:center;gap:6px;font:700 12px "IBM Plex Mono",monospace;letter-spacing:.05em;color:#5c6b50}
.lm-round-label .neo-ui-icon{width:16px;height:16px}
.lm-stats{font:700 11px "IBM Plex Mono",monospace;letter-spacing:.05em;text-transform:uppercase;color:#6b7a5e;text-align:center;margin-top:2px}
/* The board is the star: give it a bounded width and center the whole
   companion+board composition instead of letting the board hug the left
   edge of a wide 1fr track with dead space to its right. */
.lm-layout{grid-template-columns:190px minmax(0,500px);justify-content:center}
.lm-main{display:flex;flex-direction:column;align-items:center;min-width:0}
.lm-board{width:100%;max-width:460px;margin:10px auto}
.lm-main>.lm-actions,.lm-main>.lm-hint{width:100%;max-width:460px}
/* Cards read as little cardstock tiles — thicker rounded corners, a
   two-tone card-back matching the icon palette, warmer matched/open
   states. */
.lm-card{border-width:1.5px;border-radius:16px;background:#fdfaf0;box-shadow:0 3px 0 #c3d0b5,0 5px 12px -8px #26302033}
.lm-card-back{inset:5px;border-radius:12px;background:linear-gradient(160deg,#eef1e0,#e1e8d0);border-color:#b9c8a4}
.lm-card-back svg{stroke:#5a7a5e;width:48%}
.lm-open{background:#fffdf5;border-color:#dccd8f;box-shadow:0 3px 0 #dccd8f}
.lm-matched{background:#eef4e6;border-color:#5a8a5f;box-shadow:0 1px 0 #5a8a5f}
/* A quiet grounding shadow under the companion instead of a boxed-in
   dashboard card, plus a proper speech bubble instead of floating text. */
.lm-side{position:relative}
.lm-side .lm-companion{position:relative;z-index:1}
.lm-side::before{content:'';display:block;width:60%;height:12px;margin:-8px auto 4px;background:radial-gradient(ellipse,#2a3a2a2e,transparent 72%);border-radius:50%}
.lm-side .lm-speech{position:relative;background:#fff9ec;border:1px solid #e3dcc0;border-radius:16px;padding:10px 14px;margin-top:10px}
.lm-side .lm-speech::before,.lm-side .lm-speech::after{content:'';position:absolute;left:50%;transform:translateX(-50%);border:8px solid transparent}
.lm-side .lm-speech::before{top:-9px;border-bottom-color:#e3dcc0}
.lm-side .lm-speech::after{top:-7px;border-bottom-color:#fff9ec}
@media(max-width:700px){
 .lm-side::before{display:none}
 .lm-side .lm-speech{margin-top:0}
 .lm-side .lm-speech::before,.lm-side .lm-speech::after{left:-7px;top:50%;transform:translateY(-50%) rotate(-90deg)}
 .lm-board{max-width:100%}
 /* Icon+label back buttons wrapped to two lines fighting the round
    label for space at phone width — icon-only reads fine for a
    corner "back" affordance, same idea as native app headers. */
 .lm-top .lm-icon-btn{padding:9px 12px}
 .lm-top .lm-icon-btn span{display:none}
 .lm-round-label{font-size:11px;white-space:nowrap}
}

/* Favour cards lead with the real companion portrait instead of a
   hand-drawn face icon — a small badge in the corner is all that's
   needed to tell the three favours apart, so the cat itself (already
   rendered at full game quality) carries the visual instead of a flat
   icon trying to imitate one. */
.lm-favour-icon{position:relative;width:58px;height:50px;margin:0 auto}
.lm-favour-icon img{width:100%;height:100%;object-fit:contain;display:block}
.lm-favour-badge{position:absolute;bottom:-5px;right:-8px;width:26px;height:26px;background:#faf6e9;border:1.5px solid #d5ddc8;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #26302026}
.lm-favour-badge .neo-ui-icon{width:15px;height:15px}
.lm-favours label.lm-selected .lm-favour-badge{border-color:#4b775c;background:#eef4e6}
@media(max-width:700px){.lm-favour-icon{width:50px;height:44px}.lm-favour-badge{width:22px;height:22px}.lm-favour-badge .neo-ui-icon{width:13px;height:13px}}
