/* Sound is optional; feedback always has an equivalent visible state. */
.sound-summary{max-width:1240px;margin:20px auto 0;display:flex;align-items:center;gap:16px;padding:14px 22px;border:1px solid #dbe8db;border-radius:18px;background:linear-gradient(110deg,#f4f8ed,#f0f8fc);color:#355548}
.sound-note{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#526f44;font-size:1.7rem;flex:none}
.sound-summary>div{min-width:0;flex:1}.sound-summary strong{font-size:.94rem;line-height:1.7;display:block}.sound-summary p{font-size:.8rem;margin:0;line-height:1.7;color:#536c60}.sound-summary>button{padding:10px 18px;min-height:50px;font-size:.84rem;white-space:nowrap}
.sound-summary.is-playing .sound-note{background:#447033;color:#fff}.sound-summary.is-playing{border-color:#c7d9b9}
.preferences{flex-wrap:wrap}.preferences button{min-height:50px}#sound-toggle{display:flex;align-items:center;justify-content:center;gap:7px}#sound-toggle svg{width:20px;height:20px}
.sound-settings>button{width:100%;min-height:56px}.sound-settings>p:first-child{font-size:.98rem}.volume-label{display:flex;align-items:center;justify-content:space-between;font-weight:700;margin:26px 0 8px}.volume-label output{font-size:1.2rem;color:var(--blue)}
.volume-controls{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:14px;align-items:center}.volume-controls button{border:1px solid #b9cdd2;border-radius:12px;background:#f6fafb;min-height:56px;font-size:1.25rem;font-weight:700}.volume-controls input{width:100%;height:48px;accent-color:#12638a;cursor:pointer}
.sound-switches{display:grid;gap:12px;margin:26px 0}.sound-switches button{display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;padding:14px 18px;min-height:62px;border:1px solid #bdcfd3;border-radius:14px;background:#fff;line-height:1.7}.sound-switches b{border-radius:20px;min-width:62px;padding:3px 12px;background:#e9edef;text-align:center;flex:none;font-size:.86rem}.sound-switches [aria-checked=true] b{background:#477130;color:#fff}.sound-state{margin-top:18px!important}.sound-settings .small{font-size:.88rem}
.preferences button,.sound-summary button,.volume-controls button,.sound-switches button,.primary,.secondary,.choice-button{transition:background-color .2s,box-shadow .2s,transform .15s}.preferences button:active:not(:disabled),.sound-summary button:active:not(:disabled),.volume-controls button:active,.primary:active:not(:disabled),.secondary:active:not(:disabled),.choice-button:active:not(:disabled){transform:translateY(2px)}
.scene-enter{animation:scene-in .5s ease-out}.era-arrival{animation:era-arrives 1.4s ease-out}.card-arrival{animation:card-arrives .7s both}.card-arrival:nth-child(2){animation-delay:55ms}.card-arrival:nth-child(3){animation-delay:110ms}.card-arrival:nth-child(4){animation-delay:165ms}.card-arrival:nth-child(5){animation-delay:220ms}
.stone-place{animation:stone-places .34s ease-out}.stone-flip{animation:stone-turns .46s ease-in-out}.playing-card.card-reveal{animation:card-turns .32s ease-out}.playing-card.card-fold{animation:card-closes .26s ease-out}.playing-card.pair-found{animation:pair-bloom .7s ease-out}.turn-arrival{animation:turn-shines .6s ease-out}.result-arrival{animation:result-arrives .65s ease-out}.answer-reveal{animation:answer-arrives .5s ease-out}.fortune-reveal{animation:fortune-unfolds .85s ease-out}.era-greet{animation:era-greets 1s ease-in-out}.era-water{animation:era-waters 1.1s ease-in-out}.growth-celebrate{animation:growth-lights 1s ease-out}
.fortune-stage,.care-message,.result-panel,.garden-scene,.community-garden,.story-panel,.explanation,.practice-panel,#dialog-content{position:relative}.care-message img{transform-origin:50% 85%}.joy-particles{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none;z-index:2}.joy-particles i{position:absolute;left:50%;top:52%;font-style:normal;font-size:26px;color:#a97620;opacity:0;animation:joy-rises 1.2s ease-out both;--dx:-56px;--dy:-65px}.joy-particles i:nth-child(2){--dx:64px;--dy:-76px;color:#568341;animation-delay:.07s}.joy-particles i:nth-child(3){--dx:-95px;--dy:-25px;color:#28789c;animation-delay:.13s}.joy-particles i:nth-child(4){--dx:99px;--dy:-20px;animation-delay:.18s}.joy-particles i:nth-child(5){--dx:-22px;--dy:-92px;animation-delay:.1s}.joy-particles i:nth-child(6){--dx:25px;--dy:-48px;color:#568341;animation-delay:.05s}.joy-particles i:nth-child(7){--dx:-118px;--dy:15px;color:#c07151;animation-delay:.17s}.joy-particles i:nth-child(8){--dx:117px;--dy:15px;color:#28789c;animation-delay:.2s}.joy-particles.water i{background:#56a8cc;border-radius:70% 40% 70% 40%;height:13px;width:10px;top:30%;animation-name:water-falls;--dy:85px}.joy-particles.water i:nth-child(even){--dy:105px}
@keyframes scene-in{from{opacity:.6;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes era-arrives{0%{opacity:.5;transform:translateY(8px)}35%{opacity:1}70%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes card-arrives{from{opacity:.3;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes stone-places{0%{transform:translateY(-5px) scale(.8)}65%{transform:translateY(1px) scale(1.03)}100%{transform:none}}
@keyframes stone-turns{0%{transform:rotateY(90deg)}100%{transform:rotateY(0)}}
@keyframes card-turns{0%{transform:perspective(600px) rotateY(75deg)}100%{transform:perspective(600px) rotateY(0)}}
@keyframes card-closes{from{transform:scale(.94);opacity:.6}to{transform:scale(1);opacity:1}}
@keyframes pair-bloom{0%,100%{transform:scale(1)}40%{transform:scale(1.035);box-shadow:0 0 0 4px #94b36f}}
@keyframes turn-shines{from{box-shadow:0 0 0 3px #87b597}to{box-shadow:0 0 0 0 #87b59700}}
@keyframes result-arrives{from{opacity:.4;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes answer-arrives{from{opacity:.4;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes fortune-unfolds{0%{transform:translateY(-8px) scale(.94);opacity:.1}65%{transform:scale(1.025);opacity:1}100%{transform:none}}
@keyframes era-greets{0%,100%{transform:rotate(0)}25%{transform:rotate(-4deg)}65%{transform:rotate(3deg)}}
@keyframes era-waters{0%,100%{transform:translateY(0) rotate(0)}35%{transform:translateY(-4px) rotate(-3deg)}70%{transform:translateY(0) rotate(2deg)}}
@keyframes growth-lights{0%,100%{box-shadow:0 0 0 0 #bbce95}50%{box-shadow:0 0 0 6px #bbce9560}}
@keyframes joy-rises{0%{opacity:0;transform:translate(0,12px) scale(.6)}20%{opacity:.9}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(1.05)}}
@keyframes water-falls{0%{opacity:0;transform:translate(0,0) rotate(25deg)}20%{opacity:.8}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(25deg)}}
@media(max-width:1300px){.sound-summary{margin-inline:26px}}
@media(max-width:780px){.preferences{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preferences button,.preferences button:first-child{width:100%;margin:0;justify-content:center;min-height:48px;font-size:.84rem;padding:8px}.sound-summary{margin:16px 20px 0;padding:14px;gap:10px;flex-wrap:wrap}.sound-note{width:38px;height:38px;font-size:1.4rem}.sound-summary strong{font-size:.84rem}.sound-summary p{font-size:.77rem}.sound-summary>div{flex-basis:calc(100% - 50px)}.sound-summary>button{margin-left:48px;min-height:48px;padding:8px 16px;font-size:.83rem}.volume-controls{gap:10px}.sound-switches button{padding:12px;font-size:.93rem}.sound-settings>p:first-child{font-size:.94rem}}
@media(max-width:370px){.sound-summary{margin-inline:14px}.volume-controls{grid-template-columns:48px minmax(0,1fr) 48px;gap:8px}.volume-controls button{min-height:52px}.sound-switches button{flex-wrap:wrap;gap:7px}.sound-settings .small{font-size:.85rem}}
@media(max-width:780px){.sound-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px}.sound-note{display:none}.sound-summary>button{margin:0;padding:8px 12px;align-self:center}.sound-summary>div{min-width:0}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.joy-particles{display:none!important}}
.still *,.still *:before,.still *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.still .joy-particles{display:none!important}
