/* V10.8: PET challenge and wrong-notebook presentation */
.word-game.wide-vocab-panel{width:100%;max-width:1120px}
.word-game.complex-mode{max-width:1420px}
.pet-battle-chooser,.wrong-notebook-chooser{position:relative;isolation:isolate;overflow:hidden;width:100%;padding:clamp(26px,4vw,48px);border:1px solid rgba(139,169,215,.25);border-radius:36px;background:linear-gradient(145deg,#fff 0%,#f9fbff 54%,#fffaf0 100%);box-shadow:0 24px 60px rgba(49,77,125,.14)}
.pet-battle-chooser::before,.wrong-notebook-chooser::before{content:"";position:absolute;z-index:-1;right:-95px;top:-115px;width:310px;height:310px;border-radius:50%;background:radial-gradient(circle,rgba(117,166,239,.2),rgba(117,166,239,0) 70%)}
.pet-battle-heading{display:flex;align-items:center;gap:20px;text-align:left}
.pet-battle-heading>span{display:grid;place-items:center;width:76px;height:76px;flex:0 0 76px;border:1px solid rgba(126,159,210,.22);border-radius:24px;background:linear-gradient(145deg,#fff,#f3f7ff);box-shadow:0 12px 26px rgba(66,89,133,.13);font-size:2.35rem}
.pet-battle-heading h2{margin:0 0 5px;color:#1e3155;font-size:clamp(1.65rem,2.8vw,2.25rem)}
.pet-battle-heading p{margin:0;color:#73809a;font-size:1rem;line-height:1.55}
.pet-battle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}
.pet-battle-option{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:9px 18px;align-items:center;min-height:218px;padding:26px 28px;overflow:hidden;border:1px solid rgba(222,172,70,.34);border-radius:28px;background:linear-gradient(145deg,#fffdf7,#fff3ce);box-shadow:0 14px 32px rgba(104,82,35,.1);color:#21304b;text-align:left;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.pet-battle-option::before{content:"";position:absolute;right:-42px;bottom:-55px;width:150px;height:150px;border-radius:50%;background:rgba(255,193,71,.13)}
.pet-battle-option.complex{border-color:rgba(89,135,218,.3);background:linear-gradient(145deg,#f9fcff,#eaf2ff);box-shadow:0 14px 32px rgba(54,92,157,.11)}
.pet-battle-option.complex::before{background:rgba(91,139,224,.13)}
.pet-battle-option:hover,.pet-battle-option:focus-visible{transform:translateY(-5px);border-color:#efb443;outline:none;box-shadow:0 22px 42px rgba(109,82,30,.16)}
.pet-battle-option.complex:hover,.pet-battle-option.complex:focus-visible{border-color:#6c9bea;box-shadow:0 22px 42px rgba(53,91,159,.17)}
.pet-battle-option>span{grid-row:1/4;display:grid;place-items:center;width:72px;height:72px;border-radius:22px;background:linear-gradient(145deg,#fff8d8,#ffe09b);box-shadow:inset 0 0 0 1px rgba(214,158,43,.13),0 10px 22px rgba(162,116,25,.12);font-size:2.25rem}
.pet-battle-option.complex>span{background:linear-gradient(145deg,#f3f8ff,#cfe0ff);box-shadow:inset 0 0 0 1px rgba(85,126,200,.13),0 10px 22px rgba(55,93,158,.12)}
.pet-battle-option>strong{color:#182945;font-size:clamp(1.25rem,2vw,1.55rem)}
.pet-battle-option>p{align-self:start;margin:0;color:#6d7990;font-size:.98rem;line-height:1.55}
.pet-battle-option>b{position:relative;z-index:1;justify-self:start;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.72);box-shadow:0 5px 12px rgba(91,71,29,.08);color:#b27600;font-size:.92rem}
.pet-battle-option.complex>b{color:#3569bd}
.complex-sentence-card{width:100%;max-width:none!important;padding:clamp(24px,3.4vw,46px)!important}
.complex-english-sentence{max-width:1320px;margin:clamp(18px,3vh,30px) auto!important;color:#294f9d!important;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,1.72vw,1.8rem)!important;line-height:1.42!important;letter-spacing:.005em;text-wrap:balance}
.complex-english-sentence.long{font-size:clamp(1.2rem,1.5vw,1.55rem)!important}
.complex-english-sentence.very-long{font-size:clamp(1.05rem,1.3vw,1.38rem)!important}
@media(max-width:700px){.word-game.wide-vocab-panel,.word-game.complex-mode{max-width:100%}.pet-battle-chooser,.wrong-notebook-chooser{padding:22px;border-radius:26px}.pet-battle-heading{align-items:flex-start}.pet-battle-heading>span{width:58px;height:58px;flex-basis:58px;border-radius:18px;font-size:1.8rem}.pet-battle-grid{grid-template-columns:1fr}.pet-battle-option{grid-template-columns:62px minmax(0,1fr);min-height:170px;padding:22px}.pet-battle-option>span{width:58px;height:58px;border-radius:18px;font-size:1.85rem}.complex-english-sentence,.complex-english-sentence.long,.complex-english-sentence.very-long{font-size:clamp(1.05rem,4.8vw,1.3rem)!important;line-height:1.45!important}}

/* V10.9: farm survival, travel shop, animated photo scenes and scene BGM */
.farm-scene-name{display:inline-flex;margin-top:10px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.72);color:#31587f;box-shadow:0 6px 18px rgba(41,89,125,.1)}
.farm-stage{isolation:isolate;background-position:50% 50%;transition:background-image .45s ease;animation:farmScenePan 18s ease-in-out infinite alternate}
.farm-stage::before,.farm-stage::after{content:"";position:absolute;z-index:1;inset:-12%;pointer-events:none;opacity:0}
.farm-stage[data-animation="meadow"]::after,.farm-stage[data-animation="sunbeam"]::after{opacity:.34;background:linear-gradient(110deg,transparent 20%,rgba(255,244,181,.45) 45%,transparent 64%);animation:farmLightSweep 9s ease-in-out infinite alternate}
.farm-stage[data-animation="sand"]::before{opacity:.3;background:radial-gradient(circle at 8% 72%,rgba(255,239,190,.7) 0 1px,transparent 2px),radial-gradient(circle at 23% 46%,rgba(255,245,210,.58) 0 1.5px,transparent 2.5px),radial-gradient(circle at 39% 82%,rgba(255,228,157,.62) 0 1px,transparent 2px),radial-gradient(circle at 57% 56%,rgba(255,244,205,.65) 0 1.5px,transparent 2.5px),radial-gradient(circle at 72% 76%,rgba(255,231,166,.6) 0 1px,transparent 2px),radial-gradient(circle at 91% 44%,rgba(255,246,214,.7) 0 1.5px,transparent 2.5px);filter:blur(.25px);animation:farmSand 7s ease-in-out infinite alternate}
.farm-stage[data-animation="rain"]::before{inset:-18% -8%;opacity:.5;background:radial-gradient(ellipse 1px 9px at 4% 8%,rgba(226,247,255,.72) 0 65%,transparent 72%),radial-gradient(ellipse 1px 12px at 12% 34%,rgba(210,240,255,.62) 0 64%,transparent 72%),radial-gradient(ellipse 1px 8px at 19% 72%,rgba(235,250,255,.7) 0 64%,transparent 72%),radial-gradient(ellipse 1px 11px at 27% 18%,rgba(219,244,255,.6) 0 64%,transparent 72%),radial-gradient(ellipse 1px 7px at 34% 53%,rgba(235,250,255,.68) 0 64%,transparent 72%),radial-gradient(ellipse 1px 12px at 42% 87%,rgba(213,241,255,.6) 0 64%,transparent 72%),radial-gradient(ellipse 1px 9px at 49% 29%,rgba(232,249,255,.68) 0 64%,transparent 72%),radial-gradient(ellipse 1px 7px at 56% 66%,rgba(218,244,255,.64) 0 64%,transparent 72%),radial-gradient(ellipse 1px 11px at 63% 11%,rgba(235,250,255,.72) 0 64%,transparent 72%),radial-gradient(ellipse 1px 8px at 71% 48%,rgba(214,241,255,.62) 0 64%,transparent 72%),radial-gradient(ellipse 1px 12px at 78% 81%,rgba(232,249,255,.68) 0 64%,transparent 72%),radial-gradient(ellipse 1px 9px at 85% 24%,rgba(218,244,255,.64) 0 64%,transparent 72%),radial-gradient(ellipse 1px 7px at 92% 61%,rgba(235,250,255,.7) 0 64%,transparent 72%),radial-gradient(ellipse 1px 10px at 97% 92%,rgba(214,242,255,.62) 0 64%,transparent 72%);filter:drop-shadow(0 5px 2px rgba(187,226,244,.22));animation:farmRain 1.8s linear infinite}
.farm-stage[data-animation="waves"]::after,.farm-stage[data-animation="shimmer"]::after{inset:46% -20% -20%;opacity:.3;background:radial-gradient(ellipse at 16% 38%,rgba(255,255,255,.58),transparent 24%),radial-gradient(ellipse at 48% 62%,rgba(226,248,255,.52),transparent 27%),radial-gradient(ellipse at 81% 32%,rgba(255,255,255,.52),transparent 23%);filter:blur(2px);animation:farmWaves 5s ease-in-out infinite alternate}
.farm-stage[data-animation="clouds"]::before{opacity:.36;background:radial-gradient(ellipse at 10% 25%,rgba(255,255,255,.78),transparent 20%),radial-gradient(ellipse at 55% 20%,rgba(255,255,255,.6),transparent 23%),radial-gradient(ellipse at 92% 30%,rgba(255,255,255,.7),transparent 18%);animation:farmClouds 20s linear infinite}
.farm-stage[data-animation="breeze"]::after{inset:52% -16% -20%;opacity:.2;background:radial-gradient(ellipse at 12% 70%,rgba(232,255,197,.55),transparent 31%),radial-gradient(ellipse at 46% 58%,rgba(244,255,221,.48),transparent 34%),radial-gradient(ellipse at 82% 74%,rgba(222,250,182,.46),transparent 30%);filter:blur(8px);animation:farmBreeze 7s ease-in-out infinite alternate}
.farm-stage[data-animation="waterfall"]::before{left:48%;top:-20%;right:-8%;bottom:25%;opacity:.22;background:linear-gradient(92deg,transparent 3%,rgba(237,251,255,.18) 28%,rgba(255,255,255,.52) 48%,rgba(220,245,255,.2) 68%,transparent 94%);filter:blur(5px);animation:farmWaterfall 1.8s ease-in-out infinite alternate}
.farm-stage[data-animation="waterfall"]::after{inset:44% -12% -12%;opacity:.32;background:radial-gradient(ellipse at 70% 25%,rgba(255,255,255,.8),transparent 36%);animation:farmMist 4s ease-in-out infinite alternate}
.farm-stage[data-animation="petals"]::before{opacity:.42;background:radial-gradient(circle,#ffd0df 0 3px,transparent 4px) 0 0/74px 68px,radial-gradient(circle,#fff 0 2px,transparent 3px) 31px 22px/92px 83px;animation:farmPetals 13s linear infinite}
.farm-stage[data-animation="sparkle"]::after{opacity:.45;background:radial-gradient(circle,rgba(255,235,144,.95) 0 2px,transparent 3px) 0 0/94px 86px,radial-gradient(circle,rgba(255,255,255,.9) 0 1px,transparent 3px) 35px 18px/71px 78px;animation:farmSparkle 3s ease-in-out infinite alternate}
.farm-stage[data-animation="snow"]::before,.farm-stage[data-animation="snow"]::after{content:none}
.farm-snow-layer{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}.farm-snow-layer.far{z-index:1}.farm-snow-layer.near{z-index:3}.farm-snow-layer i{position:absolute;left:var(--snow-left);top:-12%;width:var(--snow-size);height:var(--snow-size);border-radius:50%;background:rgba(255,255,255,.96);opacity:var(--snow-opacity);filter:blur(var(--snow-blur));box-shadow:0 0 calc(var(--snow-size) * .9) rgba(255,255,255,.5);will-change:transform;animation:farmSnow var(--snow-duration) linear var(--snow-delay) infinite}.farm-snow-layer.far i{background:rgba(238,248,255,.9)}
.farm-item-image{display:block;width:100%;height:100%;object-fit:contain}.farm-character .farm-item-image{width:clamp(5rem,8vw,8rem);height:clamp(5rem,8vw,8rem);filter:drop-shadow(0 8px 5px rgba(0,0,0,.22))}.shop-item>span .farm-item-image{width:3.2rem;height:3.2rem}.inventory-item span .farm-item-image{width:2.1rem;height:2.1rem}.farm-reminder-list span .farm-item-image{width:2.5rem;height:2.5rem}
.farm-care-playing{z-index:5}.farm-care-playing .farm-care-buttons{visibility:hidden}.farm-care-playing .farm-speech{min-width:132px;background:#fff8cf;color:#714b00;font-size:.86rem;transform:scale(1.06);transition:background .25s,color .25s,transform .25s}.farm-care-playing .farm-speech.farm-care-thanks{background:#fff;color:#d05265;transform:scale(1.13);box-shadow:0 8px 22px rgba(103,54,64,.2)}.farm-care-effect{position:absolute;z-index:8;left:50%;top:52%;width:190px;height:190px;transform:translate(-50%,-50%);overflow:visible;pointer-events:none}.farm-care-effect .farm-care-item{position:absolute;z-index:2;left:4px;top:72px;font-size:3.5rem;filter:drop-shadow(0 5px 4px rgba(0,0,0,.2));transform-origin:center}.farm-care-effect.feed .farm-care-item{animation:farmSnackBites 2.15s ease-in-out forwards}.farm-care-effect.feed.cookie .farm-care-item{font-size:4rem}.farm-care-crumb,.farm-grow-spark{position:absolute;z-index:3;color:#ffe47a;font-size:1.1rem;opacity:0;text-shadow:0 1px 3px rgba(111,76,0,.2)}.farm-care-crumb.c1{left:94px;top:77px;animation:farmCrumbPop .55s 1.02s ease-out}.farm-care-crumb.c2{left:111px;top:94px;animation:farmCrumbPop .55s 1.27s ease-out}.farm-care-crumb.c3{left:87px;top:112px;animation:farmCrumbPop .55s 1.52s ease-out}.farm-care-hearts{position:absolute;right:17px;top:24px;color:#ff7192;font-size:1.8rem;opacity:0;animation:farmHeartFloat 1.25s 1.35s ease-out}.farm-watering-can{position:absolute;z-index:2;left:18px;top:22px;font-size:3.8rem;transform-origin:70% 70%;filter:drop-shadow(0 4px 3px rgba(0,0,0,.18));animation:farmWaterCan 2.25s ease-in-out forwards}.farm-care-effect.target-pet .farm-watering-can{left:5px;top:66px}.farm-water-drop{position:absolute;z-index:1;font-style:normal;font-size:1.15rem;opacity:0}.farm-care-effect.target-plant .farm-water-drop{left:90px;top:70px}.farm-care-effect.target-pet .farm-water-drop{left:82px;top:89px}.farm-water-drop.d1{animation:farmWaterDrop .72s .55s ease-in infinite}.farm-water-drop.d2{margin-left:14px;animation:farmWaterDrop .72s .82s ease-in infinite}.farm-water-drop.d3{margin-left:-10px;animation:farmWaterDrop .72s 1.09s ease-in infinite}.farm-care-effect.fertilize .farm-care-item{left:55px;top:86px;animation:farmFertilizer 1.6s ease-in-out forwards}.farm-grow-spark.s1{left:52px;top:54px;animation:farmGrowSpark 1s .6s ease-out}.farm-grow-spark.s2{left:112px;top:36px;animation:farmGrowSpark 1s .9s ease-out}.farm-grow-spark.s3{left:130px;top:88px;animation:farmGrowSpark 1s 1.2s ease-out}.farm-character.farm-care-happy{animation:farmCareHappy 1.35s 1.15s ease-in-out both!important}.farm-character.farm-care-grow{animation:farmCareGrow 1.75s .85s ease-in-out both!important}
.farm-entity.activity-dead{filter:grayscale(.35);opacity:.78}.farm-entity.activity-dead .farm-character{font-size:4.2rem}.farm-entity.activity-dead .farm-speech{background:rgba(245,245,245,.92);color:#5d6470;animation:none}.farm-memorial{margin-top:5px;padding:5px 9px;border-radius:10px;background:rgba(255,255,255,.9);color:#5d6470;font-size:.76rem;font-weight:900}
.travel-title{margin-top:26px}.travel-copy{margin:0 0 12px;color:var(--muted);font-size:.88rem}.travel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.travel-card{overflow:hidden;border:2px solid transparent;border-radius:18px;background:#f7fbff;box-shadow:0 8px 22px rgba(41,86,122,.1)}.travel-card.active{border-color:#6ba2ed;box-shadow:0 0 0 4px rgba(71,137,229,.12)}.travel-card-photo{position:relative;height:108px;background-image:linear-gradient(180deg,transparent,rgba(13,31,49,.38)),var(--scene-thumb);background-position:center;background-size:cover}.travel-card-photo>span{position:absolute;left:10px;bottom:8px;font-size:2rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.travel-card-photo>b{position:absolute;right:8px;top:8px;padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.9);color:#2c6bb8;font-size:.72rem}.travel-card-copy{display:grid;gap:5px;padding:11px}.travel-card-copy h3,.travel-card-copy p{margin:0}.travel-card-copy p{min-height:2.6em;color:var(--muted);font-size:.76rem;line-height:1.35}.travel-card-copy button{width:100%}
.farm-reminder-dialog{width:min(620px,94vw)}.farm-reminder-list{display:grid;gap:10px;padding:22px 26px}.farm-reminder-list article{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid #f2d695;border-radius:16px;background:#fff9e7}.farm-reminder-list article>span{font-size:2.4rem}.farm-reminder-list strong{color:#6f4f00}.farm-reminder-list p{margin:3px 0 0;color:#7a6741;line-height:1.45}
@keyframes farmScenePan{from{background-position:48% 50%}to{background-position:52% 50%}}
@keyframes farmLightSweep{from{transform:translateX(-18%) skewX(-5deg)}to{transform:translateX(20%) skewX(4deg)}}
@keyframes farmSand{from{transform:translateX(-12%)}to{transform:translateX(12%)}}
@keyframes farmRain{from{transform:translate3d(-1.5%,-9%,0)}to{transform:translate3d(1.5%,9%,0)}}
@keyframes farmWaves{from{transform:translateX(-3%) scaleY(.95)}to{transform:translateX(4%) scaleY(1.08)}}
@keyframes farmClouds{from{transform:translateX(-14%)}to{transform:translateX(14%)}}
@keyframes farmBreeze{from{transform:translateX(-6%) skewX(-3deg)}to{transform:translateX(6%) skewX(3deg)}}
@keyframes farmWaterfall{from{transform:translateY(-18%)}to{transform:translateY(18%)}}
@keyframes farmMist{from{transform:translateX(-4%) scale(.95)}to{transform:translateX(4%) scale(1.08)}}
@keyframes farmPetals{from{transform:translate3d(-3%,-12%,0) rotate(0)}to{transform:translate3d(5%,12%,0) rotate(9deg)}}
@keyframes farmSparkle{from{opacity:.18;transform:scale(.98)}to{opacity:.55;transform:scale(1.02)}}
@keyframes farmSnow{0%{transform:translate3d(0,-12vh,0) rotate(0deg)}28%{transform:translate3d(var(--snow-sway-a),26vh,0) rotate(72deg)}62%{transform:translate3d(var(--snow-sway-b),70vh,0) rotate(168deg)}100%{transform:translate3d(var(--snow-drift),126vh,0) rotate(300deg)}}
@keyframes farmSnackBites{0%{opacity:0;transform:translate(-88px,24px) rotate(-18deg) scale(1.16);clip-path:inset(0 0 0 0)}15%{opacity:1}34%{transform:translate(58px,-4px) rotate(9deg) scale(1.05);clip-path:inset(0 0 0 0)}44%{transform:translate(64px,-4px) rotate(5deg) scale(.98);clip-path:inset(0 24% 0 0)}55%{transform:translate(60px,1px) rotate(9deg) scale(.9);clip-path:inset(0 24% 0 0)}56%{clip-path:inset(0 51% 0 0)}68%{transform:translate(65px,-3px) rotate(5deg) scale(.82);clip-path:inset(0 51% 0 0)}69%{clip-path:inset(0 78% 0 0)}80%{opacity:.9;transform:translate(62px,2px) rotate(8deg) scale(.7);clip-path:inset(0 78% 0 0)}81%,100%{opacity:0;transform:translate(65px,0) scale(.35);clip-path:inset(0 100% 0 0)}}
@keyframes farmCrumbPop{0%{opacity:0;transform:translate(0,0) scale(.4)}35%{opacity:1;transform:translate(8px,-13px) scale(1.25)}100%{opacity:0;transform:translate(18px,-25px) scale(.5)}}
@keyframes farmHeartFloat{0%{opacity:0;transform:translateY(12px) scale(.5)}35%{opacity:1;transform:translateY(0) scale(1.2)}100%{opacity:0;transform:translateY(-34px) scale(.8)}}
@keyframes farmWaterCan{0%{opacity:0;transform:translate(-36px,-18px) rotate(-18deg) scale(.8)}20%{opacity:1;transform:translate(0,0) rotate(-18deg) scale(1)}38%,72%{opacity:1;transform:translate(14px,4px) rotate(27deg) scale(1.06)}90%,100%{opacity:0;transform:translate(38px,-18px) rotate(8deg) scale(.8)}}
@keyframes farmWaterDrop{0%{opacity:0;transform:translate(0,-9px) scale(.65)}25%{opacity:1}100%{opacity:0;transform:translate(13px,54px) scale(1.08)}}
@keyframes farmFertilizer{0%{opacity:0;transform:translate(-60px,20px) rotate(-20deg)}25%,68%{opacity:1;transform:translate(10px,0) rotate(18deg)}100%{opacity:0;transform:translate(38px,20px) rotate(28deg) scale(.72)}}
@keyframes farmGrowSpark{0%{opacity:0;transform:scale(.3) rotate(0)}45%{opacity:1;transform:scale(1.45) rotate(80deg)}100%{opacity:0;transform:translateY(-25px) scale(.5) rotate(160deg)}}
@keyframes farmCareHappy{0%{transform:translateY(0) rotate(0) scale(1)}20%{transform:translateY(-22px) rotate(-8deg) scale(1.08)}38%{transform:translateY(0) rotate(7deg) scale(1.03)}56%{transform:translateY(-14px) rotate(-5deg) scale(1.1)}75%{transform:translateY(0) rotate(4deg) scale(1.04)}100%{transform:translateY(0) rotate(0) scale(1)}}
@keyframes farmCareGrow{0%{transform:translateY(18px) scale(.72,.66);filter:saturate(.7)}22%{transform:translateY(11px) scale(.84,.82)}46%{transform:translateY(3px) scale(1.02,1.08) rotate(-4deg);filter:saturate(1)}68%{transform:translateY(-9px) scale(1.2,1.3) rotate(5deg);filter:saturate(1.2) brightness(1.08)}84%{transform:translateY(-5px) scale(1.14,1.22) rotate(-3deg)}100%{transform:translateY(0) scale(1.08,1.12) rotate(0);filter:saturate(1.08)}}
@media(max-width:700px){.travel-grid{grid-template-columns:1fr}.travel-card-photo{height:130px}.farm-stage{animation-duration:24s}}
@media(prefers-reduced-motion:reduce){.farm-stage,.farm-stage::before,.farm-stage::after{animation:none!important}}

/* V10.9.5: clean eight-slot farm, collection and coin experiences */
.farm-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.farm-panel-heading h2,.farm-panel-heading p{margin:2px 0}.farm-panel-heading p{color:var(--muted);font-size:.84rem}.farm-panel-heading button span{margin-left:5px;color:#4f75aa}.farm-entity.clean-partner{left:auto;top:auto;width:clamp(82px,10vw,122px);min-width:0;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;appearance:none;transition:filter .2s}.farm-entity.clean-partner.slot-1{left:13%;top:35%}.farm-entity.clean-partner.slot-2{left:38%;top:34%}.farm-entity.clean-partner.slot-3{left:63%;top:35%}.farm-entity.clean-partner.slot-4{left:87%;top:36%}.farm-entity.clean-partner.slot-5{left:13%;top:72%}.farm-entity.clean-partner.slot-6{left:38%;top:70%}.farm-entity.clean-partner.slot-7{left:63%;top:72%}.farm-entity.clean-partner.slot-8{left:87%;top:70%}.farm-entity.clean-partner .farm-character{position:relative}.farm-entity.clean-partner .farm-speech{position:absolute;z-index:12;left:50%;bottom:calc(100% + 6px);width:max-content;max-width:180px;margin:0;opacity:0;visibility:hidden;transform:translate(-50%,8px) scale(.9);transition:opacity .2s,transform .2s,visibility .2s}.farm-entity.clean-partner.farm-care-playing .farm-speech{opacity:1;visibility:visible;transform:translate(-50%,0) scale(1.06)}.farm-entity.clean-partner:hover .farm-character,.farm-entity.clean-partner:focus-visible .farm-character{filter:drop-shadow(0 10px 7px rgba(0,0,0,.28)) brightness(1.08);transform:translateY(-5px)}.farm-entity.clean-partner:focus-visible{outline:3px solid rgba(95,143,224,.65);outline-offset:8px;border-radius:24px}.farm-warning-dot{position:absolute;z-index:13;right:2px;top:-5px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e6525c;color:#fff;font-style:normal;font-weight:1000;box-shadow:0 4px 12px rgba(149,39,50,.35);animation:urgentPulse 1s infinite}.farm-accessories{position:absolute;z-index:4;inset:0;pointer-events:none}.farm-accessories i{position:absolute;display:block;margin:0;font-style:normal;line-height:1;filter:drop-shadow(0 3px 3px rgba(0,0,0,.22))}.farm-accessories .accessory-hat{left:50%;top:-27%;font-size:clamp(1.65rem,3vw,2.55rem);transform:translateX(-50%) rotate(-5deg)}.farm-accessories .accessory-scarf{left:50%;top:47%;font-size:clamp(1.65rem,3vw,2.55rem);transform:translate(-50%,-50%) rotate(7deg) scaleX(1.18)}.farm-accessories .accessory-collar{left:50%;top:58%;font-size:clamp(1.3rem,2.4vw,2rem);transform:translate(-50%,-50%) scaleX(1.16)}.partner-dialog-icon .farm-accessories .accessory-hat{top:2%;font-size:2.8rem}.partner-dialog-icon .farm-accessories .accessory-scarf{top:55%;font-size:2.75rem}.partner-dialog-icon .farm-accessories .accessory-collar{top:62%;font-size:2.15rem}.shop-item.shop-owned,.experience-item.owned{background:#f1f8f4}.experience-title{margin-top:26px}.experience-grid{display:grid;gap:10px}.experience-item{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fffdf7,#f8fbff)}.experience-item>span{font-size:2.2rem;text-align:center}.experience-item h3,.experience-item p{margin:2px 0}.experience-item p,.experience-item small{display:block;color:var(--muted);font-size:.78rem;line-height:1.35}.experience-target-row{display:grid;gap:8px;margin:0 24px 22px;color:#46607e;font-weight:900}.experience-target-row select{padding:13px;border:1px solid var(--line);border-radius:13px;background:#f8fbff;color:var(--ink);font:inherit}.farm-collection-dialog{width:min(820px,94vw);max-height:88vh}.farm-collection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:22px 26px;max-height:65vh;overflow:auto}.collection-partner{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:12px;padding:14px;border:2px solid transparent;border-radius:18px;background:#f6f9fd}.collection-partner.displayed{border-color:#8cb5ee;background:#edf6ff}.collection-partner.memorial{filter:grayscale(.5);opacity:.75}.collection-icon{display:grid;place-items:center;width:58px;height:58px;font-size:2.7rem}.collection-icon .farm-item-image{width:58px;height:58px}.collection-partner div{display:grid;gap:4px}.collection-partner small{color:var(--muted)}.farm-partner-dialog{width:min(560px,94vw)}.farm-partner-content{display:flex;align-items:center;gap:24px;padding:28px}.partner-dialog-icon{position:relative;display:grid;place-items:center;width:145px;height:145px;flex:0 0 145px;border-radius:36px;background:linear-gradient(145deg,#eef7ff,#fff7da);font-size:6rem}.partner-dialog-icon>.farm-item-image{width:120px;height:120px;object-fit:contain}.partner-dialog-status{display:grid;gap:10px}.partner-dialog-status strong{color:#273b59;font-size:1.15rem}.partner-dialog-status span{padding:7px 10px;border-radius:10px;background:#eef6ff;color:#3e6ba8;font-weight:900}.partner-dialog-status small{color:var(--muted)}
.farm-swing{position:absolute;z-index:2;left:4%;bottom:7%;font-size:5rem;transform-origin:50% 100%;animation:farmSwing 3.2s ease-in-out infinite}.farm-premium-effect,.farm-festival-decor{position:absolute;z-index:2;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}.farm-premium-effect.effect-rainbow::before{content:'🌈';position:absolute;right:5%;top:4%;font-size:clamp(7rem,17vw,14rem);opacity:.78;animation:farmRainbowGlow 4s ease-in-out infinite alternate}.farm-premium-effect.effect-meteor::before,.farm-premium-effect.effect-meteor::after{content:'✦';position:absolute;left:18%;top:8%;color:#fff9b0;font-size:2.3rem;text-shadow:40px 25px #fff,90px 5px #ffe08b,160px 35px #fff;animation:farmMeteor 3.8s linear infinite}.farm-premium-effect.effect-meteor::after{left:55%;top:20%;animation-delay:-1.8s;transform:scale(.7)}.farm-premium-effect.effect-aurora{background:radial-gradient(ellipse at 20% 0,rgba(74,255,188,.38),transparent 42%),radial-gradient(ellipse at 78% 5%,rgba(129,100,255,.35),transparent 46%);mix-blend-mode:screen;animation:farmAurora 6s ease-in-out infinite alternate}.farm-festival-decor span{position:absolute;font-size:clamp(2.8rem,6vw,5.3rem);filter:drop-shadow(0 6px 5px rgba(0,0,0,.22));animation:farmFestivalBob 2.8s calc(var(--decor-index) * -.55s) ease-in-out infinite alternate}.farm-festival-decor span:nth-child(1){left:4%;top:5%}.farm-festival-decor span:nth-child(2){right:5%;top:8%}.farm-festival-decor span:nth-child(3){left:6%;bottom:4%}.farm-festival-decor span:nth-child(4){right:5%;bottom:5%}.farm-festival-decor.festival-mid-autumn span:first-child{font-size:clamp(6rem,13vw,11rem);opacity:.9}.farm-festival-decor.festival-spring span:nth-child(3){display:grid;place-items:center;width:72px;height:72px;background:#e53535;color:#ffd66c;font-family:serif;font-weight:1000;transform:rotate(8deg)}.farm-experience-animation{position:absolute;z-index:30;left:50%;top:44%;display:grid;place-items:center;gap:12px;width:min(360px,85%);padding:22px;border:2px solid rgba(255,255,255,.8);border-radius:24px;background:rgba(255,250,224,.95);box-shadow:0 18px 45px rgba(34,54,73,.25);transform:translate(-50%,-50%);pointer-events:none;animation:farmExperiencePop 2.6s ease both}.farm-entity .farm-experience-animation{left:50%;top:-45px;width:240px}.farm-experience-animation>span{font-size:4.8rem;animation:farmExperienceIcon 1s ease-in-out infinite alternate}.farm-experience-animation>strong{background:none!important;color:#8c4d1d;font-size:1rem;text-align:center}.farm-experience-happy .farm-character{animation:farmCareHappy 1.2s ease-in-out 2!important}
@keyframes farmSwing{50%{transform:rotate(4deg)}}@keyframes farmRainbowGlow{from{transform:scale(.96);filter:saturate(.9)}to{transform:scale(1.04);filter:saturate(1.25) brightness(1.08)}}@keyframes farmMeteor{0%{opacity:0;transform:translate(180px,-100px) rotate(-25deg)}20%{opacity:1}65%,100%{opacity:0;transform:translate(-220px,170px) rotate(-25deg)}}@keyframes farmAurora{from{opacity:.45;transform:skewX(-4deg) scaleX(.96)}to{opacity:.78;transform:skewX(5deg) scaleX(1.05)}}@keyframes farmFestivalBob{to{transform:translateY(-10px) rotate(4deg)}}@keyframes farmExperiencePop{0%{opacity:0;transform:translate(-50%,-30%) scale(.65)}15%,78%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(.9)}}@keyframes farmExperienceIcon{to{transform:translateY(-9px) rotate(5deg)}}
@media(max-width:700px){.farm-panel-heading{align-items:flex-start;flex-direction:column}.farm-panel-heading button{width:100%}.farm-entity.clean-partner{width:74px}.farm-character .farm-item-image{width:4.5rem;height:4.5rem}.farm-entity.clean-partner.slot-1,.farm-entity.clean-partner.slot-5{left:12%}.farm-entity.clean-partner.slot-2,.farm-entity.clean-partner.slot-6{left:37%}.farm-entity.clean-partner.slot-3,.farm-entity.clean-partner.slot-7{left:63%}.farm-entity.clean-partner.slot-4,.farm-entity.clean-partner.slot-8{left:88%}.farm-collection-list{grid-template-columns:1fr}.collection-partner{grid-template-columns:54px 1fr}.collection-partner button{grid-column:1/-1}.farm-partner-content{align-items:flex-start;flex-direction:column}.partner-dialog-icon{align-self:center}.experience-item{grid-template-columns:42px 1fr}.experience-item button{grid-column:1/-1}.farm-swing{font-size:3.7rem}}

/* V10.9.6: keep the farm visible while the desktop shop scrolls independently */
@media(min-width:1051px){
  #studentFarm .farm-layout{align-items:start}
  #studentFarm .farm-panel,#studentFarm .farm-shop-panel{height:clamp(590px,calc(100vh - 116px),820px)}
  #studentFarm .farm-panel{position:sticky;top:100px;display:flex;flex-direction:column;overflow:hidden}
  #studentFarm .farm-panel .farm-stage{flex:1;min-height:0}
  #studentFarm .farm-shop-panel{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding-right:14px}
  #studentFarm .farm-shop-panel>h2{position:sticky;z-index:8;top:-18px;margin:-18px -14px 14px;padding:18px 14px 12px;background:rgba(255,255,255,.96);box-shadow:0 8px 18px rgba(43,85,121,.08);backdrop-filter:blur(10px)}
  #studentFarm .farm-shop-panel{scrollbar-width:thin;scrollbar-color:#8eb8eb #edf5fd}
  #studentFarm .farm-shop-panel::-webkit-scrollbar{width:10px}
  #studentFarm .farm-shop-panel::-webkit-scrollbar-track{border-radius:99px;background:#edf5fd}
  #studentFarm .farm-shop-panel::-webkit-scrollbar-thumb{border:2px solid #edf5fd;border-radius:99px;background:#8eb8eb}
}

/* V10.9.6: richer farm experiences and correctly worn decorations */
.farm-swing{left:4%;bottom:4%;width:118px;height:148px;font-size:initial;transform:none;animation:none;filter:drop-shadow(0 8px 5px rgba(20,31,27,.28))}
.farm-swing-frame{position:absolute;inset:0}
.farm-swing-frame::before,.farm-swing-frame::after{content:"";position:absolute;top:7px;width:9px;height:139px;border-radius:8px;background:linear-gradient(90deg,#6f3b20,#b16d35 45%,#68361d);transform-origin:50% 0}
.farm-swing-frame::before{left:24px;transform:rotate(13deg)}
.farm-swing-frame::after{right:24px;transform:rotate(-13deg)}
.farm-swing-frame{border-top:11px solid #8d4e29;border-radius:9px}
.farm-swing-hanger{position:absolute;left:33px;top:7px;width:52px;height:106px;transform-origin:50% 0;animation:farmSwingSeat 3.2s ease-in-out infinite}
.farm-swing-hanger::before,.farm-swing-hanger::after{content:"";position:absolute;top:0;width:3px;height:88px;border-radius:3px;background:#eee1bd;box-shadow:0 0 2px rgba(44,35,21,.7)}
.farm-swing-hanger::before{left:7px}.farm-swing-hanger::after{right:7px}
.farm-swing-hanger i{position:absolute;left:0;bottom:8px;width:52px;height:14px;border-radius:5px 5px 9px 9px;background:linear-gradient(#efb14b,#ad6223);box-shadow:0 5px 0 rgba(83,45,20,.35)}
.mini-swing-icon{position:relative;display:inline-block;width:42px;height:42px;border-top:5px solid #8d4e29;border-radius:4px;vertical-align:middle}
.mini-swing-icon::before,.mini-swing-icon::after{content:"";position:absolute;top:1px;width:4px;height:39px;border-radius:4px;background:#8d4e29;transform-origin:50% 0}.mini-swing-icon::before{left:7px;transform:rotate(11deg)}.mini-swing-icon::after{right:7px;transform:rotate(-11deg)}
.mini-swing-icon b{position:absolute;left:12px;top:4px;width:18px;height:27px;border-left:2px solid #d7c797;border-right:2px solid #d7c797}.mini-swing-icon b::after{content:"";position:absolute;left:-3px;bottom:0;width:20px;height:6px;border-radius:3px;background:#efb14b}

.farm-premium-effect.effect-rainbow::before{content:"";right:1%;top:2%;width:62%;height:53%;font-size:0;background:radial-gradient(ellipse at 50% 100%,transparent 0 40%,rgba(125,91,190,.48) 40.5% 44.5%,rgba(80,129,221,.48) 45% 49%,rgba(90,194,150,.46) 49.5% 53.5%,rgba(248,216,99,.48) 54% 58%,rgba(244,150,76,.48) 58.5% 62.5%,rgba(226,91,111,.48) 63% 67%,transparent 67.5%);opacity:.82;filter:blur(.7px) saturate(.86);mix-blend-mode:soft-light;animation:farmRainbowBreathe 5.5s ease-in-out infinite alternate}
.farm-premium-effect.effect-rainbow::after{content:"";position:absolute;right:4%;top:35%;width:55%;height:18%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.44),transparent 70%);filter:blur(12px);animation:farmRainbowMist 6s ease-in-out infinite alternate}
.farm-premium-effect.effect-aurora{opacity:1;background:linear-gradient(180deg,rgba(3,10,35,.68),rgba(9,35,54,.34) 68%,rgba(8,23,38,.08));mix-blend-mode:normal;animation:farmAuroraSky 7s ease-in-out infinite alternate}
.farm-premium-effect.effect-aurora::before,.farm-premium-effect.effect-aurora::after{content:"";position:absolute;left:-12%;top:-9%;width:130%;height:72%;border-radius:36%;filter:blur(12px) saturate(1.2);transform-origin:50% 0;will-change:transform,opacity}
.farm-premium-effect.effect-aurora::before{background:radial-gradient(ellipse 18% 100% at 7% 0,rgba(73,255,180,.82),transparent 72%),radial-gradient(ellipse 20% 100% at 27% 0,rgba(74,216,255,.68),transparent 74%),radial-gradient(ellipse 19% 100% at 48% 0,rgba(87,255,195,.75),transparent 70%),radial-gradient(ellipse 21% 100% at 69% 0,rgba(148,94,255,.64),transparent 73%),radial-gradient(ellipse 18% 100% at 91% 0,rgba(70,238,220,.72),transparent 71%);filter:blur(22px) saturate(1.25);border-radius:0 0 48% 52%;animation:farmAuroraRibbon 6.4s ease-in-out infinite alternate}
.farm-premium-effect.effect-aurora::after{top:-17%;background:radial-gradient(ellipse 19% 100% at 14% 0,rgba(165,103,255,.58),transparent 74%),radial-gradient(ellipse 18% 100% at 38% 0,rgba(78,255,202,.68),transparent 72%),radial-gradient(ellipse 21% 100% at 62% 0,rgba(77,181,255,.58),transparent 75%),radial-gradient(ellipse 18% 100% at 84% 0,rgba(109,255,187,.62),transparent 72%);filter:blur(28px) saturate(1.15);border-radius:0 0 55% 45%;animation:farmAuroraRibbon 8.2s -2.7s ease-in-out infinite alternate-reverse}

.farm-photo-reveal{position:absolute;z-index:50;inset:0;display:grid;place-items:center;overflow:hidden;border-radius:inherit;background:rgba(10,24,38,.38);pointer-events:none;animation:farmPhotoOverlay 4.8s ease both}
.farm-camera-flash{position:absolute;z-index:3;inset:0;background:#fff;opacity:0;animation:farmCameraFlash .48s ease-out both}
.farm-photo-reveal figure{position:relative;z-index:2;width:min(330px,72%);margin:0;padding:15px 15px 20px;border-radius:8px;background:#fffdf7;box-shadow:0 24px 58px rgba(0,0,0,.38);transform:rotate(-3deg);animation:farmPhotoPop 4.8s cubic-bezier(.2,.8,.2,1) both}
.farm-photo-scene{position:relative;height:230px;overflow:hidden;border-radius:4px;background-position:center;background-size:cover;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.farm-photo-scene::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(12,30,31,.26))}
.farm-photo-subject{position:absolute;z-index:2;left:50%;bottom:10%;display:grid;place-items:center;width:112px;height:112px;font-size:6rem;transform:translateX(-50%);filter:drop-shadow(0 9px 6px rgba(0,0,0,.32));animation:farmPhotoSubject 1.15s .45s ease-in-out 2}
.farm-photo-subject .farm-item-image{width:112px;height:112px;object-fit:contain}.farm-photo-reveal figcaption{padding-top:13px;color:#32455f;font-weight:900;text-align:center}

.farm-birthday-hat{position:absolute;z-index:9;left:50%;top:-34%;display:block;width:42px;height:55px;background:linear-gradient(64deg,#ff6d88 0 31%,#ffd95d 32% 63%,#6ec9ff 64% 100%);clip-path:polygon(50% 0,100% 100%,0 100%);transform:translateX(-50%) rotate(-5deg);filter:drop-shadow(0 4px 3px rgba(0,0,0,.25));animation:farmBirthdayHat .7s ease-in-out infinite alternate}
.farm-birthday-hat::after{content:"";position:absolute;left:50%;top:-6px;width:13px;height:13px;border-radius:50%;background:#fff2a7;transform:translateX(-50%);box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.farm-experience-animation.partner-birthday{background:linear-gradient(145deg,rgba(255,250,221,.97),rgba(255,225,238,.97));box-shadow:0 18px 55px rgba(180,79,117,.28)}

.farm-picnic-scene{position:absolute;z-index:24;left:50%;bottom:1.5%;width:min(440px,70%);height:190px;transform:translateX(-50%);pointer-events:none;animation:farmPicnicScene 5.2s ease both}
.farm-picnic-blanket{position:absolute;left:50%;bottom:7px;width:78%;height:96px;border:5px solid rgba(255,255,255,.9);border-radius:12px;background:conic-gradient(from 90deg,#fff7dc 0 25%,#ef7b83 0 50%,#fff7dc 0 75%,#ef7b83 0);background-size:56px 56px;box-shadow:0 13px 15px rgba(0,0,0,.24);transform:translateX(-50%) perspective(160px) rotateX(46deg)}
.farm-picnic-food{position:absolute;z-index:2;left:50%;bottom:32px;display:flex;align-items:center;justify-content:center;gap:clamp(7px,1.5vw,17px);width:88%;font-size:clamp(2rem,4vw,3.4rem);text-align:center;transform:translateX(-50%);filter:drop-shadow(0 5px 3px rgba(0,0,0,.24))}
.farm-picnic-food i{display:block;font-style:normal;animation:farmPicnicBite 4.25s calc(.45s + var(--picnic-index) * .18s) ease-in-out both}
.farm-picnic-scene strong{position:absolute;left:50%;top:0;width:max-content;max-width:100%;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.94);color:#8f4c2d;box-shadow:0 7px 18px rgba(0,0,0,.16);transform:translateX(-50%)}
.farm-picnic-guest .farm-character{animation:farmPicnicNibble .72s ease-in-out infinite alternate!important}

.farm-fireworks-show{position:absolute;z-index:48;inset:0;overflow:hidden;border-radius:inherit;background:linear-gradient(180deg,rgba(3,8,31,.86),rgba(14,29,58,.58) 72%,rgba(10,23,34,.26));pointer-events:none;animation:farmFireworksSky 5.6s ease both}
.farm-fireworks-show>strong{position:absolute;z-index:3;left:50%;bottom:5%;width:max-content;max-width:85%;padding:9px 17px;border-radius:999px;background:rgba(255,255,255,.9);color:#493775;text-align:center;transform:translateX(-50%);box-shadow:0 8px 24px rgba(0,0,0,.3)}
.farm-firework-burst{position:absolute;left:var(--firework-left);top:var(--firework-top);width:8px;height:8px;border-radius:50%;background:var(--firework-color);box-shadow:0 0 15px 4px var(--firework-color);opacity:0;animation:farmFireworkCore 1.35s var(--firework-delay) ease-out 4 both}
.farm-firework-burst i{position:absolute;left:3px;top:3px;width:3px;height:48px;border-radius:50%;background:linear-gradient(var(--firework-color),transparent);transform-origin:50% 0;transform:rotate(calc(var(--firework-ray) * 30deg));animation:farmFireworkRay 1.35s var(--firework-delay) ease-out 4 both}

.farm-accessories .accessory-hat{left:50%;top:-24%}
.farm-entity.pet-dinosaur .farm-accessories .accessory-hat{left:23%;top:-20%;transform:translateX(-50%) rotate(-8deg)}
.farm-entity.pet-capybara .farm-accessories .accessory-hat{left:34%;top:-15%}
.farm-entity.pet-sloth .farm-accessories .accessory-hat{left:30%;top:-18%}
.farm-entity.pet-bunny .farm-accessories .accessory-hat{left:50%;top:-27%}
.farm-entity.pet-cat .farm-accessories .accessory-hat{left:50%;top:-25%}
.partner-dialog-icon.pet-dinosaur .farm-accessories .accessory-hat{left:25%;top:2%}.partner-dialog-icon.pet-capybara .farm-accessories .accessory-hat,.partner-dialog-icon.pet-sloth .farm-accessories .accessory-hat{left:34%;top:4%}
.farm-entity.pet-dinosaur .farm-birthday-hat{left:23%;top:-28%}.farm-entity.pet-capybara .farm-birthday-hat,.farm-entity.pet-sloth .farm-birthday-hat{left:32%;top:-25%}

@keyframes farmSwingSeat{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes farmRainbowBreathe{from{opacity:.54;transform:translateY(3px) scale(.98)}to{opacity:.83;transform:translateY(-4px) scale(1.02)}}
@keyframes farmRainbowMist{from{opacity:.28;transform:translateX(-3%)}to{opacity:.62;transform:translateX(4%)}}
@keyframes farmAuroraSky{from{opacity:.66}to{opacity:1}}
@keyframes farmAuroraRibbon{0%{opacity:.35;transform:translateX(-8%) skewX(-9deg) rotate(-3deg) scaleY(.78)}50%{opacity:.92;transform:translateX(3%) skewX(4deg) rotate(2deg) scaleY(1.08)}100%{opacity:.55;transform:translateX(10%) skewX(-3deg) rotate(-1deg) scaleY(.9)}}
@keyframes farmPhotoOverlay{0%{opacity:0}8%,84%{opacity:1}100%{opacity:0}}
@keyframes farmCameraFlash{0%,8%{opacity:0}12%{opacity:1}24%,100%{opacity:0}}
@keyframes farmPhotoPop{0%,13%{opacity:0;transform:translateY(55px) rotate(-8deg) scale(.55)}25%,82%{opacity:1;transform:translateY(0) rotate(-3deg) scale(1)}100%{opacity:0;transform:translateY(-18px) rotate(2deg) scale(.94)}}
@keyframes farmPhotoSubject{50%{transform:translateX(-50%) translateY(-12px) rotate(5deg) scale(1.08)}}
@keyframes farmBirthdayHat{to{transform:translateX(-50%) translateY(-5px) rotate(5deg)}}
@keyframes farmPicnicScene{0%{opacity:0;transform:translate(-50%,55px) scale(.7)}15%,83%{opacity:1;transform:translate(-50%,0) scale(1)}100%{opacity:0;transform:translate(-50%,-7px) scale(.96)}}
@keyframes farmPicnicBite{0%,18%{opacity:0;transform:translateY(22px) scale(.5)}27%,58%{opacity:1;transform:translateY(0) scale(1)}67%{clip-path:inset(0 25% 0 0);transform:translateY(-5px) rotate(-6deg) scale(.92)}76%{clip-path:inset(0 52% 0 0);transform:translateY(1px) rotate(5deg) scale(.78)}86%{opacity:.9;clip-path:inset(0 78% 0 0);transform:translateY(-4px) scale(.6)}100%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateY(-16px) scale(.25)}}
@keyframes farmPicnicNibble{from{transform:translateY(0) rotate(-2deg)}to{transform:translateY(-9px) rotate(3deg) scale(1.06)}}
@keyframes farmFireworksSky{0%{opacity:0}8%,88%{opacity:1}100%{opacity:0}}
@keyframes farmFireworkCore{0%{opacity:0;transform:scale(.1)}10%{opacity:1;transform:scale(1.5)}72%{opacity:.85}100%{opacity:0;transform:scale(.2)}}
@keyframes farmFireworkRay{0%{opacity:0;height:4px}12%{opacity:1;height:8px}68%{opacity:1;height:58px}100%{opacity:0;height:72px;filter:blur(1px)}}

@media(max-width:700px){.farm-swing{width:82px;height:108px;transform:scale(.78);transform-origin:0 100%}.farm-photo-reveal figure{width:min(300px,78%)}.farm-photo-scene{height:190px}.farm-picnic-scene{width:86%;height:160px}.farm-picnic-food{bottom:26px}.farm-premium-effect.effect-rainbow::before{width:75%;height:43%}}

/* V10.9: teacher-issued coin rewards */
.permission-row{grid-template-columns:1fr 1fr 1.05fr .9fr 1fr .75fr 1.45fr}
.teacher-coin-balance{color:#b47a00;white-space:nowrap}
.coin-grant-button{border:1px solid #efd48b;border-radius:11px;padding:8px 11px;background:linear-gradient(145deg,#fff9d9,#ffec9c);color:#886000;font-weight:900;box-shadow:0 5px 12px rgba(159,113,13,.1)}
.coin-grant-button:hover,.coin-grant-button:focus-visible{border-color:#d8ad3e;transform:translateY(-1px);outline:none;box-shadow:0 8px 18px rgba(159,113,13,.18)}
.grant-coins-dialog{width:min(520px,94vw)}.coin-grant-submit{background:linear-gradient(135deg,#f0b735,#df8a12)}
@media(max-width:1100px){.permission-row{grid-template-columns:1fr 1fr}.permission-row.header{display:none}.student-actions{grid-column:1/-1}.teacher-coin-balance{justify-self:start}}

/* V10.9.7: current-cycle class calendar, daily details and persistence ranking */
.class-detail-dialog{width:min(1480px,97vw);max-height:94vh}
.class-detail-table{padding:20px;background:#f6f9fd}
.class-cycle-dashboard{display:grid;grid-template-columns:minmax(285px,350px) minmax(0,1fr);gap:20px;align-items:start}
.class-cycle-dashboard>aside{position:sticky;top:0;display:grid;gap:16px}
.class-cycle-dashboard>main{min-width:0}
.class-cycle-calendar,.class-cycle-ranking{padding:20px;border:1px solid #dce7f4;border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(49,82,121,.07)}
.class-cycle-calendar-heading,.class-cycle-section-title,.class-selected-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.class-cycle-calendar-heading div,.class-cycle-section-title div,.class-selected-day-heading div{display:grid;gap:3px}
.class-cycle-calendar-heading small,.class-cycle-section-title small,.class-selected-day-heading small{color:#5d88d5;font-weight:1000;letter-spacing:.04em}
.class-cycle-calendar-heading strong,.class-cycle-section-title strong{font-size:1.12rem;color:#233958}
.class-cycle-calendar-heading>span,.class-cycle-section-title>span{color:#728197;font-size:.78rem;font-weight:800}
.class-calendar-weekdays,.class-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.class-calendar-weekdays{margin:18px 0 8px;color:#8490a0;font-size:.76rem;font-weight:900;text-align:center}
.class-calendar-day{display:grid;place-items:center;gap:2px;min-width:0;aspect-ratio:1;border:1px solid transparent;border-radius:13px;background:#f4f7fb;color:#35465e}
.class-calendar-day span{font-size:.95rem;font-weight:1000}.class-calendar-day small{font-size:.56rem;white-space:nowrap}
.class-calendar-day.complete{border-color:#78c8a6;background:#e9f8f1;color:#1b7857}.class-calendar-day.missed{border-color:#f0b8b8;background:#fff1f1;color:#a53e49}.class-calendar-day.pending{border-color:#dce5ef;background:#f6f8fb;color:#8b96a5}.class-calendar-day.no-task{opacity:.58}
.class-calendar-day.selected{border-color:#4f84dc;background:linear-gradient(145deg,#6b9dec,#4c7ed5);color:#fff;box-shadow:0 7px 16px rgba(75,126,213,.28);transform:translateY(-2px)}
.class-calendar-blank{aspect-ratio:1}.class-calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;color:#78879b;font-size:.68rem}.class-calendar-legend span{display:flex;align-items:center;gap:5px}.class-calendar-legend i{width:9px;height:9px;border-radius:50%}.class-calendar-legend i.complete{background:#5cbd91}.class-calendar-legend i.missed{background:#df777d}.class-calendar-legend i.pending{background:#c9d3df}
.class-ranking-list{display:grid;gap:9px;margin-top:14px}.class-ranking-row{display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:8px;padding:9px 10px;border-radius:13px;background:#f6f9fd}.class-ranking-row>span{text-align:center;font-weight:1000}.class-ranking-row>b{color:#4d78bd;font-size:.82rem}.class-ranking-row>div{grid-column:2/-1;height:5px;border-radius:99px;background:#e2e9f2;overflow:hidden}.class-ranking-row>div i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#78cda8,#6c96e4)}
.class-selected-day-heading{margin-bottom:14px;padding:16px 19px;border:1px solid #dce7f4;border-radius:18px;background:#fff}.class-selected-day-heading h3{margin:0;color:#233958}.class-selected-day-heading>span{padding:8px 12px;border-radius:999px;background:#eaf3ff;color:#4d75b5;font-size:.82rem;font-weight:900}
.class-cycle-dashboard .student-progress-card summary{grid-template-columns:1.15fr .9fr 1.25fr .8fr .8fr .55fr}.cycle-day-count{color:#3e78c6;font-weight:1000}.class-no-task-day{grid-column:1/-1;margin:0;padding:18px;color:#7d8999;text-align:center}
@media(max-width:1050px){.class-cycle-dashboard{grid-template-columns:1fr}.class-cycle-dashboard>aside{position:static;grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr)}.class-cycle-dashboard .student-progress-card summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.class-detail-table{padding:10px}.class-cycle-dashboard>aside{grid-template-columns:1fr}.class-cycle-calendar,.class-cycle-ranking{padding:15px}.class-selected-day-heading{align-items:flex-start;flex-direction:column}.class-cycle-dashboard .student-progress-card summary{grid-template-columns:1fr 1fr}.class-cycle-dashboard .student-progress-card summary strong{grid-column:1/-1}.class-calendar-day small{font-size:.5rem}}
