@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Unbounded:wght@600;700&display=swap');
:root{--bg:#edeffb;--ink:#171c45;--muted:#4a5078;--accent:#2f43c8;--line:#e2e5f5;--yellow:#f6d55c;--display:Unbounded,Manrope,sans-serif;background:var(--bg);color:var(--ink);font-family:Manrope,Arial,sans-serif}
body{background:var(--bg);color:var(--ink);padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body>header{max-width:1060px;height:auto;padding:24px 24px 0}.brand{font:700 24px var(--display);letter-spacing:-.5px;color:var(--ink);gap:10px}.brand-icon{width:40px;height:40px;border-radius:12px;background:var(--yellow);display:grid;place-items:center;font-size:23px}#prototype{display:none}#language{height:44px;border:1.5px solid #d3d7f0;border-radius:24px;background:white;color:var(--ink);padding:0 14px;font-weight:600}main#app{max-width:1060px;margin:auto;padding:0 24px 40px}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.template-page{max-width:590px;margin:auto}.template-page.is-opening{max-width:none}.template-intro{padding-top:44px;display:grid;grid-template-columns:1fr 1fr;column-gap:44px;align-items:center}.template-hero .eyebrow{font-size:12px;letter-spacing:2.4px;color:var(--accent);font-weight:700}.template-hero h1{font:700 clamp(28px,3.6vw,42px)/1.16 var(--display);letter-spacing:-.8px;margin:16px 0}.template-hero p{font-size:17px;line-height:1.6;color:var(--muted);margin:0}.template-examples{grid-column:2;grid-row:1/3;min-width:0}.template-fan{position:relative;height:274px;max-width:390px;margin:20px auto 0}.fan-slot{position:absolute;top:38px}.fan-slot.left{left:4px;transform:rotate(-9deg)}.fan-slot.right{right:4px;transform:rotate(9deg)}.fan-slot.center{left:50%;top:0;margin-left:-80px;z-index:2}.fan-card{width:138px;padding:10px;background:#fff;border-radius:20px;box-shadow:0 10px 24px #171c451a;display:flex;flex-direction:column;gap:8px;animation:template-float 4.2s ease-in-out infinite}.center .fan-card{width:160px;padding:12px;border-radius:22px;box-shadow:0 16px 36px #171c452e}.left .fan-card{animation-delay:-1.4s}.right .fan-card{animation-delay:-2.8s}.fan-photo{height:96px;background:#eef0ff;border-radius:14px;overflow:hidden}.center .fan-photo{height:116px;background:#fde7c8}.right .fan-photo{background:#ffe3d3}.fan-photo img{height:100%;width:100%;object-fit:contain}.fan-card strong{font-size:14px;line-height:1.3}.center strong{font-size:16px}.fan-match{align-self:flex-start;border-radius:10px;background:var(--bg);color:var(--accent);padding:4px 8px;font-size:12px;font-weight:700}.center .fan-match{background:var(--accent);color:white}.fan-caption{text-align:center;font-size:14px;color:var(--muted);margin:6px 0}.template-consider{padding-top:28px;font-size:14px}.template-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.template-chips span{display:flex;align-items:center;gap:6px;background:#fff;border-radius:18px;padding:8px 12px;font-weight:600}.template-chips i{font-style:normal;color:var(--accent);font-size:18px}.template-meta{font-size:14px;color:var(--muted);line-height:1.6}
.template-question-wrap{position:relative;max-width:560px;margin:106px auto 0}.template-dog{position:absolute;right:18px;top:-104px;width:140px;height:120px;object-fit:contain;z-index:1}.template-dog.happy{animation:template-hop .5s ease-in-out}.template-question{position:relative;padding:28px;border-radius:28px;background:#fff;box-shadow:0 12px 32px #171c451a;display:flex;flex-direction:column;gap:16px}.template-progress-top{display:flex;justify-content:space-between;font-size:14px;font-weight:700;color:var(--muted)}.template-progress{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:-8px}.template-progress>div{height:100%;background:var(--accent);border-radius:4px;transition:width .4s}.template-question h2{font:700 23px/1.25 var(--display);letter-spacing:-.4px;margin:4px 0 0}.template-question-sub{font-size:16px;line-height:1.5;color:var(--muted);margin:0}.template-answer-hint{font-size:14px;margin:0;color:var(--muted)}.template-options{display:flex;flex-direction:column;gap:10px}.template-option{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:56px;padding:14px 18px;border-radius:16px;border:2px solid var(--line);background:#fff;color:var(--ink);text-align:left;font-size:16px;font-weight:600;line-height:1.4;transition:background .2s,border-color .2s}.template-option:hover{border-color:#aab3ef}.template-dot{width:20px;height:20px;flex-shrink:0;border:2px solid #c5cae6;border-radius:50%;background:white}.template-dot.multi{border-radius:6px}.template-option[aria-pressed=true]{border-color:var(--accent);background:#eef0ff}.template-option[aria-pressed=true] .template-dot{border:6px solid var(--accent)}.template-next{display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:16px 22px;border:0;border-radius:18px;background:var(--yellow);box-shadow:0 5px 0 #c9a93a;color:var(--ink);font-size:17px;font-weight:700}.template-next[hidden]{display:none}.template-next:active{transform:translateY(3px);box-shadow:0 2px 0 #c9a93a}.template-back{background:none;border:0;color:var(--muted);padding:10px;font-size:14px;min-height:44px}.template-help{font-size:14px;color:var(--muted)}.template-help summary{cursor:pointer;padding:8px 0}.template-help p{line-height:1.6}.template-hint,.template-footnote{text-align:center;font-size:14px;line-height:1.5;color:var(--muted);margin:0}.template-footnote{max-width:550px;margin:24px auto}.result-wrap h1,.result-wrap h2{font-family:var(--display)}.result-wrap{padding-top:36px}.dogcard,.panel,.decision{border-radius:24px;box-shadow:0 10px 24px #171c450d}.primary{background:var(--yellow);color:var(--ink);box-shadow:0 5px 0 #c9a93a}.breed-photo img{object-fit:contain;background:transparent}
@keyframes template-float{50%{transform:translateY(-8px)}}@keyframes template-hop{50%{transform:translateY(-12px)}}
@media(max-width:700px){body>header{max-width:430px;padding:20px 20px 0}.brand{font-size:22px}main#app{padding:0 20px 40px}.template-page{max-width:390px}.template-page.is-opening{max-width:390px}.template-intro{display:flex;flex-direction:column;align-items:stretch;padding-top:32px;gap:0}.template-hero h1{font-size:31px;line-height:1.12;margin:14px 0}.template-hero p{font-size:16px;line-height:1.5}.template-fan{height:262px;margin-top:28px}.template-consider{padding-top:28px}.template-question-wrap{margin-top:96px}.template-question{padding:24px 20px;gap:18px}.template-question h2{font-size:22px}.template-progress{margin-top:-10px}.result-wrap h1{font-size:28px}.result-wrap h2{font-size:21px}}
@media(max-width:360px){.template-hero h1{font-size:27px}.fan-card{width:118px}.center .fan-card{width:146px}.fan-slot.center{margin-left:-73px}.template-option{padding:12px}.template-question{padding:22px 16px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Six aligned frames: idle wag on row one, a one-shot ball game on row two. */
.template-dog.mascot-button{border:0;padding:0;background:transparent;box-shadow:none;display:grid;place-items:center;cursor:pointer;border-radius:20px;touch-action:manipulation}
.mascot-sprite{display:block;width:120px;height:120px;background-image:url('mascot-sprites.png');background-size:300% 200%;background-repeat:no-repeat;animation:mascot-wag 1.2s steps(1,end) infinite}
.mascot-button.is-playing .mascot-sprite{animation:mascot-play 1.1s steps(1,end) 1,mascot-wag 1.2s steps(1,end) 1.1s infinite}
@keyframes mascot-wag{0%,100%{background-position:0 0}25%,75%{background-position:50% 0}50%{background-position:100% 0}}
@keyframes mascot-play{0%{background-position:0 100%}25%{background-position:50% 100%}55%{background-position:100% 100%}80%,100%{background-position:0 0}}
@media(prefers-reduced-motion:reduce){.mascot-sprite,.mascot-button.is-playing .mascot-sprite{animation:none!important;background-position:0 0}.mascot-button:active{opacity:.85}}

/* Compact questions retain readable text and 44px touch targets. */
.template-question{padding:20px;gap:10px;border-radius:24px}
.template-question h2{font-size:21px;line-height:1.22;margin:4px 0}
.template-progress{margin-top:-3px}
.template-options{gap:7px}
.template-option{min-height:46px;padding:9px 13px;gap:10px;border-radius:13px;font-size:16px;line-height:1.3;transition:background .18s,border-color .18s,transform .15s}
.template-option:active{transform:scale(.98)}
.template-dot{width:18px;height:18px}
.template-help summary{padding:5px 0;min-height:32px}
.compact-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.compact-actions .template-next{order:2;flex:1;min-height:46px;padding:11px 16px;font-size:16px;border-radius:14px}
.compact-actions .template-next:disabled{background:#eceef8;color:#6b7191;box-shadow:none;cursor:default}
.compact-actions .template-back{order:1;min-height:44px;padding:8px 10px}
.compact-actions .template-hint{order:3;flex-basis:100%;font-size:14px;margin-top:2px}
.compact-actions [data-return-results]{order:4;flex-basis:100%}
.selection-count{display:inline-block;font-weight:700;color:var(--accent);margin-left:6px}
.template-footnote{margin:14px auto;font-size:14px}
.question-enter{animation:question-arrive .23s ease-out}
.answer-pop .template-dot{animation:answer-check .25s ease-out}
@keyframes question-arrive{from{opacity:.4;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes answer-check{50%{transform:scale(1.25)}}
@media(max-width:700px){
 body>header{padding-top:12px}
 main#app{padding:0 14px 20px}
 .template-question{padding:16px;gap:9px}
 .template-question h2{font-size:20px}
 .template-options{gap:6px}
 .template-option{padding:8px 12px;min-height:44px}
 .template-page:not(.is-opening) .template-footnote{margin-top:12px}
}
@media(prefers-reduced-motion:reduce){.question-enter,.answer-pop .template-dot{animation:none}.template-option{transition:none}}
