/* Warm paper, quiet chrome, readable object cards. Shared by play and rewards. */
:root{--paper:#f6f2eb;--cream:#fffdf9;--ink:#3d3029;--muted:#786b60;--soft-text:#786b60;--line:#e4d9cd;--cocoa:#936047;--cocoa-dark:#513b30;--milk:#f3e9de;--sage:#e7e9dc;--sand:#f5eee4;--accent:#af7755;--selected:#f4e6d9;--surface-shadow:0 12px 40px #50362607;--button-shadow:0 3px 8px #58352413}
body{background-color:var(--paper);color:var(--ink)}
.site-header{border-bottom:1px solid var(--line)}
.brand-ribbon{background:var(--milk);color:var(--cocoa-dark);letter-spacing:.12em}
.site-tools{background:transparent;border-bottom:0}
.primary,.park-choose{background:var(--cocoa);border:1px solid var(--cocoa);color:#fffdf9;border-radius:12px;box-shadow:var(--button-shadow);transition:background .15s,box-shadow .15s,transform .12s}
.primary:hover,.park-choose:hover{background:#7b4b36;border-color:#7b4b36;box-shadow:0 5px 14px #58352420}
.primary:active,.park-choose:active{transform:translateY(1px);background:#683d2c;box-shadow:none}
.secondary,.guide-button,.small-button{border-radius:10px;background:var(--cream);border:1px solid #cdb9a6;box-shadow:none;color:var(--cocoa-dark)}
.text-button,.source-link{color:var(--cocoa-dark)}
.selected-overview,.chosen-breed,.game-shell,.result-shell{box-shadow:var(--surface-shadow)}
.home-quick-start{background:var(--milk);border-color:var(--line)}
.temperament-traits li{background:#ebeee3;color:#4e5b44}
.dog-park{border:1px solid var(--line);border-radius:20px;box-shadow:none;overflow:hidden}
.game-shell.story-question{border:1px solid var(--line);border-radius:20px;background:var(--cream)}
.game-shell .game-top{border-bottom:0}
.life-chapters .current i{background:var(--accent)}
.life-chapters .done i{background:#a6ad91}
.life-chapters i{height:3px}
.game-shell .question{border:0}
.game-shell .question-text{font-weight:500;color:var(--ink);letter-spacing:.01em}
.game-shell .story-visual{border:1px solid #ded4c3;border-radius:14px;box-shadow:none;overflow:hidden;background:#f3ebdd}
.game-shell .option.has-choice-image{border:1px solid #d9cbbb;border-radius:12px;background:#fffdf9;box-shadow:0 2px 5px #573b2204;transition:background .14s,border-color .14s,box-shadow .14s}
.game-shell .option.has-choice-image .choice-picture{border:0;border-radius:9px;background:#f4eee3;box-shadow:none;overflow:hidden}
.game-shell .option-letter{color:#928376;font-size:11px;font-weight:500}
.game-shell .option.has-choice-image:active{background:#f2e5d8;border-color:#af7755;box-shadow:inset 0 1px 3px #7b513019}
.game-shell .option.has-choice-image.is-recorded{border:1px solid #936047;background:#f2e5d8;box-shadow:inset 3px 0 #936047}
.game-shell .option.has-choice-image:disabled:not(.is-recorded){opacity:.68}
@media(hover:hover){.game-shell .option.has-choice-image:not(:disabled):hover{border-color:#b58d70;background:#fbf5ed;box-shadow:0 3px 12px #573b2209}}
.game-shell .dog-status span{background:transparent;padding-left:0;color:var(--muted)}
.game-shell .answer-note,.game-shell .game-bottom{color:var(--muted)}
.game-shell .companion-fold{border-color:var(--line)}
.result-information .result-reading{border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:transparent}
.result-information .result-reading>summary{color:var(--cocoa-dark)}
.result-information .cost-total strong{color:var(--ink);font-variant-numeric:tabular-nums}
.result-image-frame,.result-preview{border-radius:14px;box-shadow:none}
.result-information .replay-invite{border:1px solid var(--line);background:var(--milk);box-shadow:none;border-radius:16px}
.reward-ticket,.reward-ticket.is-unlocked{background:var(--cream);border:1px solid #cdb79f;border-radius:14px;box-shadow:0 6px 20px #50362608}
.reward-ticket-head{background:#eee2d1;border-bottom:1px solid var(--line)}
.reward-ticket h3{color:var(--cocoa-dark);letter-spacing:-.02em}
.reward-ticket .reward-minimum,.reward-ticket .reward-rule{color:var(--muted)}
.reward-ticket-stub{background:#f7f0e6}
.reward-ticket-tear{border-top:1px dashed #bca78f}
.reward-ticket-tear span{background:var(--cream)}
.reward-code{border:1px solid var(--line);border-radius:8px;background:var(--cream)}
.reward-code code{color:var(--cocoa-dark);letter-spacing:.1em}
.reward-actions .secondary{border:1px solid #cdb9a6;border-radius:8px;background:var(--cream);color:var(--cocoa-dark)}
.reward-actions .secondary:first-child{background:var(--cocoa);border-color:var(--cocoa);color:var(--cream)}
.reward-ticket.is-locked{background:#f3f0e9;border-color:#d9d0c4;box-shadow:none}
.reward-ticket.is-locked .reward-ticket-stub,.reward-ticket.is-locked .reward-ticket-head{background:#ede8df}
.reward-ticket .reward-status{border-color:#c9b49a;color:var(--cocoa-dark);background:var(--milk)}
.reward-gift-tag{border:0;background:var(--milk);color:var(--cocoa-dark);letter-spacing:.04em}
button:focus-visible,a:focus-visible,summary:focus-visible,select:focus-visible{outline:3px solid #966448;outline-offset:3px}
@media(min-width:1000px){.game-shell .game-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:36px;align-items:start}.game-shell .dog-panel{padding:0}.game-shell .question-text{font-size:20px;line-height:1.75}.game-shell .option.has-choice-image{padding:14px;min-height:78px}}
@media(max-width:700px){.game-shell.story-question{border-radius:16px}.game-shell .option.has-choice-image{min-height:64px;padding:9px 10px;border-radius:11px}.game-shell .choice-picture{width:40px;height:40px;flex-basis:40px}.game-shell .story-scene-picture{height:112px;max-height:112px}.game-shell .question-text{font-size:17px;line-height:1.65;margin-bottom:12px}.reward-ticket-head{padding:.55rem}.reward-ticket-main,.reward-ticket-stub{padding:.7rem}.reward-code code{font-size:1.2rem}.reward-actions{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){button,a{transition:none!important;transform:none!important}}
/* Fine movement: anchored facial layers, long still intervals, no lateral drift. */
.dog-blink{opacity:0;animation:quiet-blink 6.4s steps(1,end) infinite}
.dog-ear-twitch{transform-box:view-box;animation:quiet-ear 8.7s ease-in-out infinite}
@keyframes quiet-blink{0%,45%,49%,100%{opacity:0}46%,48%{opacity:1}}
@keyframes quiet-ear{0%,70%,79%,100%{transform:rotate(0)}73%{transform:rotate(3deg)}76%{transform:rotate(-1deg)}}
.story-scene-picture[data-activity] [data-dog-actor="selected"] .story-scene-living-motion{animation:quiet-breath 5.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}
.story-scene-picture[data-activity="food"] [data-dog-actor="selected"] .story-scene-living-motion,.story-scene-picture[data-activity="sniff"] [data-dog-actor="selected"] .story-scene-living-motion{animation:quiet-sniff 6s ease-in-out infinite}
.story-scene-picture[data-activity="unwell"] [data-dog-actor="selected"] .story-scene-living-motion{animation:quiet-breath 7s ease-in-out infinite}
.story-scene-picture[data-activity]:not([data-activity=""]) [data-dog-actor="selected"]>.story-scene-emotion-icon{display:none}
@keyframes quiet-breath{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.008)}}
@keyframes quiet-sniff{0%,40%,70%,100%{transform:rotate(0)}50%,60%{transform:rotate(-1.2deg)}}
@media(prefers-reduced-motion:reduce){.story-scene-picture[data-activity] *,.dog-blink,.dog-ear-twitch{animation:none!important}.dog-blink{opacity:0}}
@media print{.dog-blink{display:none}.dog-ear-twitch{animation:none}}
.seasonal-card{display:flex;align-items:center;gap:20px;margin:18px 0 24px;padding:14px 22px;border:1px solid #dfcdb8;border-radius:14px;background:#f3e9db;box-shadow:none}
.seasonal-art{position:relative;width:84px;height:70px;flex-shrink:0;display:flex;align-items:center}
.seasonal-art svg{image-rendering:pixelated;display:block;overflow:hidden}
.seasonal-art .seasonal-gift{position:absolute;right:0;bottom:4px}
.seasonal-copy{flex:1;min-width:0}.seasonal-brand{font-size:10px;letter-spacing:.13em;color:#80624a}
.seasonal-card .seasonal-copy h2{font-size:19px;line-height:1.45;margin:3px 0;color:#513b30;font-weight:700}
.seasonal-card .seasonal-copy p{font-size:13px;line-height:1.5;margin:0;color:#786b60}
.seasonal-link{display:flex;align-items:center;gap:16px;min-height:44px;padding:8px 14px;border-left:1px dashed #c8ac8c;color:#684530;font-size:14px;text-decoration:none;white-space:nowrap}
.seasonal-link:hover{background:#ecdecb;border-radius:8px}
@media(max-width:700px){.seasonal-card{gap:10px;margin:12px 0 16px;padding:10px 12px;border-radius:12px}.seasonal-art{width:48px;height:52px}.seasonal-art>svg:first-child{width:42px;height:46px}.seasonal-art .seasonal-gift{width:20px;height:22px;right:-2px;bottom:0}.seasonal-brand{font-size:8px;letter-spacing:.07em}.seasonal-card .seasonal-copy h2{font-size:15px;margin:2px 0}.seasonal-card .seasonal-copy p{display:none}.seasonal-link{font-size:12px;gap:5px;padding:4px 0 4px 9px;white-space:normal;flex-shrink:0;max-width:80px}}
.retry-hint{padding:10px 14px;background:var(--milk);border-left:3px solid var(--cocoa);border-radius:6px;color:var(--cocoa-dark)}
.mobile-reward-jump{display:none}
#midway-reward{font-weight:700;margin-right:12px}
@media(max-width:700px){.mobile-reward-jump{display:block;width:100%;min-height:44px;padding:9px;margin:0 0 10px;border:1px solid var(--line);border-radius:10px;background:var(--milk);color:var(--cocoa-dark);font:inherit;font-weight:700}}
/* Touch browsers may hold :hover on the same screen position after a question changes. */
@media(hover:none),(pointer:coarse){
 .game-shell .option.has-choice-image{-webkit-tap-highlight-color:transparent}
 .game-shell .option.has-choice-image:not(:disabled):hover{
  background:#fffdf9;border-color:#d9cbbb;box-shadow:0 2px 5px #573b2204;transform:none
 }
}
