:root{--activity-accent:#2563eb;--activity-soft:#dbeafe}
.sensei-guide img,.teacher-home-guide img,.activity-teacher-message img{animation:senseiArrive .42s cubic-bezier(.2,.8,.2,1) both;transform-origin:50% 100%}.sensei-celebrating img{animation:senseiCelebrate .7s cubic-bezier(.2,.9,.2,1) both}.sensei-encouraging img{animation:senseiEncourage .65s ease both}.sensei-pointing img{animation:senseiPoint .55s ease both}.sensei-analysing img{animation:senseiAnalyse .7s ease both}
.activity-skill-node[data-activity-id]{--node-accent:var(--activity-accent)}
.activity-skill-node[data-activity-id] .activity-skill-orb i{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--activity-accent),transparent 58%)}
.activity-skill-node.mastered .activity-skill-orb{background:conic-gradient(#fde68a 360deg,#713f12 0);box-shadow:0 0 0 3px var(--activity-accent),0 0 26px color-mix(in srgb,var(--activity-accent),transparent 24%)}
.activity-skill-node.mastered .activity-skill-orb i{background:radial-gradient(circle at 35% 28%,var(--activity-soft),var(--activity-accent) 75%);border-color:#fff7cc;filter:none}
.activity-skill-node.mastered small{background:#713f12;color:#fef3c7}.activity-skill-node.mastered::after{content:'★';position:absolute;z-index:4;top:0;right:20px;color:#fde68a;text-shadow:0 0 8px #f59e0b;font-size:1rem}
.activity-skill-link.mastered{stroke:#fde047!important;stroke-width:5;filter:drop-shadow(0 0 7px #facc15)}
.activity-skill-node.just-mastered .activity-skill-orb{animation:masteredNode .8s ease both}
.activity-unlock-scene[data-activity-state]{--activity-accent:#2563eb;--activity-soft:#dbeafe;background:linear-gradient(180deg,var(--activity-soft),#fff 36%)}
.activity-identity-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 104px;align-items:end;min-height:135px;margin:-8px -8px 14px;padding:18px 14px 0;border-radius:22px;overflow:hidden;background:radial-gradient(circle at 18% 25%,#ffffffb8,transparent 34%),linear-gradient(135deg,var(--activity-soft),color-mix(in srgb,var(--activity-accent),#fff 52%));text-align:left}
.activity-identity-hero::after{content:attr(data-symbol);position:absolute;left:12px;bottom:-25px;font-size:7rem;opacity:.1;transform:rotate(-8deg)}
.activity-identity-copy{align-self:center;position:relative;z-index:1}.activity-identity-copy span,.activity-identity-copy strong,.activity-identity-copy small{display:block}.activity-identity-copy span{font-size:.66rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase;color:color-mix(in srgb,var(--activity-accent),#172554 36%)}.activity-identity-copy strong{margin:4px 0;font-size:1.18rem}.activity-identity-copy small{color:#475569;line-height:1.35}
.activity-identity-resident{position:relative;z-index:1;width:104px;height:132px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 8px #17255435)}
.activity-identity-state{display:inline-flex!important;width:max-content;margin-top:9px;padding:5px 9px;border-radius:99px;background:#ffffffc9;color:#334155;font-size:.67rem!important}.activity-unlock-scene[data-activity-state="mastered"] .activity-identity-state{background:#fef3c7;color:#92400e}.activity-unlock-scene[data-activity-state="ready"] .activity-identity-state{background:#dcfce7;color:#166534}
.activity-unlock-scene .activity-unlock-building{display:none}.activity-unlock-scene>.eyebrow{color:var(--activity-accent)}.activity-unlock-scene .activity-teacher-message img{content:var(--sensei-pose);object-fit:cover}
.practice-hub-grid button[data-village-activity]{position:relative;overflow:hidden;border:2px solid color-mix(in srgb,var(--activity-accent),#fff 55%);background:linear-gradient(135deg,var(--activity-soft),#fff)}
.practice-hub-grid button[data-village-activity]::after{content:attr(data-guide);position:absolute;right:7px;bottom:5px;font-size:.55rem;color:#64748b}
.engagement-celebration{width:min(94vw,580px);padding:0;border:0;border-radius:28px;overflow:hidden;background:#fff;color:#172554;box-shadow:0 30px 100px #02061799}.engagement-celebration::backdrop{background:#020617c2;backdrop-filter:blur(5px)}
.celebration-scene{--activity-accent:#2563eb;--activity-soft:#dbeafe;position:relative;display:grid;grid-template-columns:minmax(0,1fr) 150px;column-gap:14px;min-height:210px;padding:24px 24px 0;background:radial-gradient(circle at 20% 20%,#fff9,transparent 34%),linear-gradient(135deg,var(--activity-soft),var(--activity-accent));overflow:hidden}.celebration-scene::before,.celebration-scene::after{content:'✦';position:absolute;color:#fff8;font-size:3rem;animation:celebrationSpark 1.7s ease-in-out infinite}.celebration-scene::before{left:9%;top:12%}.celebration-scene::after{left:50%;top:62%;animation-delay:-.7s}.celebration-copy{position:relative;z-index:2;min-width:0;align-self:center}.celebration-copy span{font-size:.7rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.celebration-copy h2{margin:7px 0;font-size:clamp(1.55rem,6vw,2.25rem);overflow-wrap:anywhere}.celebration-copy p{margin:0;line-height:1.45;overflow-wrap:anywhere}.celebration-cast{position:relative;z-index:2;width:150px;height:205px;align-self:end;overflow:hidden}.celebration-cast img{position:absolute;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 10px 10px #17255445)}.celebration-resident{right:0;bottom:0;width:118px;height:190px;animation:residentAppear .7s cubic-bezier(.2,.9,.2,1) both}.celebration-sensei{left:0;bottom:-1px;width:76px;height:100px;border-radius:18px;animation:senseiCelebrate .7s .18s cubic-bezier(.2,.9,.2,1) both}
.can-do-award{position:relative;margin:18px;padding:18px;border:2px solid #f59e0b;border-radius:20px;background:linear-gradient(135deg,#fffbeb,#fff7ed);text-align:center}.can-do-award::before{content:'できる';display:block;margin:auto auto 8px;width:max-content;padding:4px 10px;border-radius:99px;background:#92400e;color:#fef3c7;font-size:.7rem;font-weight:900}.can-do-award strong{display:block;font-size:1.15rem}.can-do-award small{display:block;margin-top:6px;color:#64748b}.celebration-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 18px}.celebration-actions button{min-height:48px}
.achievement.can-do-achievement{grid-template-columns:58px minmax(0,1fr);border:1px solid #fcd34d;background:linear-gradient(135deg,#fffbeb,#fff)}.achievement.can-do-achievement img{width:58px;height:64px;object-fit:contain}.achievement.can-do-achievement small{display:block;margin-top:3px;color:#64748b}
.can-do-awards-collection{display:grid;gap:9px;margin-bottom:18px}.collection-award-heading{margin-bottom:3px}.collection-award-heading h3{margin:3px 0}
@keyframes senseiArrive{from{opacity:0;transform:translateY(8px) scale(.95)}to{opacity:1;transform:none}}@keyframes senseiCelebrate{0%{opacity:0;transform:translateY(14px) scale(.85)}55%{transform:translateY(-4px) scale(1.04)}100%{opacity:1;transform:none}}@keyframes residentAppear{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}@keyframes senseiEncourage{0%{opacity:.4;transform:translateX(-8px)}60%{transform:translateX(3px)}100%{opacity:1;transform:none}}@keyframes senseiPoint{from{opacity:.3;transform:translateX(-10px)}to{opacity:1;transform:none}}@keyframes senseiAnalyse{from{opacity:.35;filter:blur(2px)}to{opacity:1;filter:none}}@keyframes masteredNode{0%{transform:scale(.7);filter:brightness(2)}55%{transform:scale(1.18)}100%{transform:none}}@keyframes celebrationSpark{50%{transform:translateY(-8px) rotate(20deg);opacity:.35}}
@media(max-width:520px){.activity-identity-hero{grid-template-columns:minmax(0,1fr) 86px;min-height:122px}.activity-identity-resident{width:86px;height:118px}.celebration-scene{grid-template-columns:minmax(0,1fr) 112px;column-gap:8px;min-height:190px;padding:19px 18px 0}.celebration-cast{width:112px;height:176px}.celebration-resident{width:94px;height:164px}.celebration-sensei{width:64px;height:84px;left:0}.celebration-actions{grid-template-columns:1fr}.activity-skill-node.mastered::after{right:6px}}
@media(max-width:380px){.celebration-scene{grid-template-columns:1fr;padding-bottom:0}.celebration-copy{padding-right:0}.celebration-cast{grid-row:2;justify-self:end;width:170px;height:128px;margin-top:4px}.celebration-resident{width:92px;height:126px}.celebration-sensei{left:20px;width:64px;height:84px}}
@media(prefers-reduced-motion:reduce){.sensei-guide img,.teacher-home-guide img,.activity-teacher-message img,.celebration-cast img,.activity-skill-node.just-mastered .activity-skill-orb,.celebration-scene::before,.celebration-scene::after{animation:none!important}}
