@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{
 --primary:#dd2e1e;--secondary:#ce2314;--tertiary:#b32619;
 --text-black:rgba(0,0,0,.85);--gray01:#ebe4e4;--gray02:#f4f1f1;--gray-line:#c4c4c4;--gray-text:#848484;--white:#ffffff;
 --font-en:'Noto Sans',sans-serif;--font-jp:'Noto Sans JP',sans-serif;
 --fs-1:calc(8rem / 1);--fs-2:calc(8rem / 2);--fs-3:calc(8rem / 3);--fs-4:calc(8rem / 4);--fs-5:calc(8rem / 5);--fs-6:calc(8rem / 6);--fs-7:calc(8rem / 7);--fs-8:calc(8rem / 8);--fs-9:calc(8rem / 9);--fs-10:calc(8rem / 10);
 --spacing-0:0;--spacing-4:4px;--spacing-8:8px;--spacing-10:10px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--spacing-64:64px;--spacing-80:80px;--spacing-120:120px;
 --radius-sm:4px;--radius-md:8px;--radius-full:999px;
 font-family:var(--font-jp);color:var(--text-black);background:var(--white);font-synthesis:none;
}
*{box-sizing:border-box}body{margin:0}button,a,input{font:inherit}button{cursor:pointer;color:inherit;border:0;transition:transform .18s,background .18s}button:disabled{cursor:not-allowed}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:4px}button:hover:not(:disabled){transform:translateY(-2px)}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}p{line-height:1.75}img{max-width:100%}
.site-header{max-width:1440px;margin:auto;display:flex;align-items:center;gap:var(--spacing-40);padding:var(--spacing-24) var(--spacing-40)}
.brand{display:flex;align-items:center;gap:var(--spacing-12);font-family:var(--font-en);font-size:var(--fs-7);font-weight:500;letter-spacing:.02em;white-space:nowrap}.brand b{font-weight:700}.brand small{display:block;font-family:var(--font-jp);font-size:var(--fs-10);letter-spacing:0;margin-top:var(--spacing-4)}.brand-symbol{width:40px;height:40px;background:var(--primary);color:var(--white);border-radius:var(--radius-md);display:grid;place-items:center;font-size:var(--fs-4);font-weight:700;line-height:1}
.site-header nav{display:flex;gap:var(--spacing-4);flex:1}.nav{background:transparent;padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-sm);font-size:var(--fs-10);font-weight:500;white-space:nowrap}.nav.active{background:var(--gray02);color:var(--primary)}.header-stats{display:flex;align-items:center;gap:var(--spacing-16);white-space:nowrap;font-size:var(--fs-10)}.header-stats>span{display:flex;align-items:center;gap:var(--spacing-4)}.header-stats b{font-size:var(--fs-8);font-family:var(--font-en);color:var(--primary)}.header-stats small{font-size:var(--fs-10)}.sound-button{font-size:var(--fs-10);background:var(--gray02);border-radius:var(--radius-sm);padding:var(--spacing-8)}
.layout{max-width:1336px;margin:var(--spacing-16) auto 0;padding:0 var(--spacing-40);display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--spacing-40)}.eyebrow{font-family:var(--font-en);font-size:var(--fs-10);font-weight:600;letter-spacing:.05em;color:var(--primary)}.hero{padding:var(--spacing-24) 0 var(--spacing-40);display:flex;gap:var(--spacing-24);align-items:center;justify-content:space-between}.hero h1{font-size:var(--fs-4);letter-spacing:.02em;line-height:1.5;margin:var(--spacing-12) 0 var(--spacing-16)}.hero p{font-size:var(--fs-9);line-height:1.75}.hero-art{width:160px;flex-shrink:0;position:relative;align-self:stretch;display:grid;place-items:center}.hero-art .mascot{max-height:220px;width:auto}.pill{display:inline-flex;align-items:center;gap:var(--spacing-8);font-size:var(--fs-10);font-weight:500;border-radius:var(--radius-sm);padding:var(--spacing-8) var(--spacing-12);background:var(--gray02);color:var(--primary);white-space:nowrap}.hero-art .pill{position:absolute;bottom:0;left:50%;transform:translateX(-50%)}
.map-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-12);margin:0 0 var(--spacing-24)}.map-heading h2{font-size:var(--fs-7)}.map-heading span{font-family:var(--font-en);font-size:var(--fs-10)}.map{background:var(--gray02);border-radius:var(--radius-md);position:relative;padding:var(--spacing-32);overflow:hidden}.worlds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-40) var(--spacing-24)}.world{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-8);position:relative}.world-node{width:72px;height:72px;border-radius:var(--radius-md);background:var(--white);color:var(--primary);display:grid;place-items:center;position:relative;margin:var(--spacing-4) 0}.world-letter{font-family:var(--font-en);font-size:var(--fs-4);font-weight:600}.world:last-child .world-letter{font-size:var(--fs-7)}.world.available .world-node{background:var(--primary);color:var(--white)}.world.available .world-node:hover{background:var(--secondary)}.world.locked .world-node{color:var(--gray-text);opacity:.65}.world-number{font-family:var(--font-en);font-size:var(--fs-10);letter-spacing:.05em;font-weight:500}.world-title{font-size:var(--fs-9);font-weight:700;line-height:1.5}.world-subtitle{font-size:var(--fs-10);line-height:1.6}.stars{font-size:var(--fs-8);letter-spacing:.05em;color:var(--gray-text)}.stars.earned{color:var(--primary)}.lock-mark{position:absolute;right:-4px;bottom:-4px;background:var(--white);color:var(--primary);padding:var(--spacing-4);border-radius:var(--radius-full);font-size:var(--fs-10)}.map-caption{display:block;text-align:right;margin-top:var(--spacing-24);font-family:var(--font-en);font-size:var(--fs-10);letter-spacing:.05em;color:var(--gray-text)}
.next-quest{display:flex;align-items:center;gap:var(--spacing-16);padding:var(--spacing-24) 0 var(--spacing-8)}.next-number{background:var(--gray02);color:var(--primary);width:48px;height:48px;flex-shrink:0;border-radius:var(--radius-md);display:grid;place-items:center;font-family:var(--font-en);font-weight:600}.next-quest h3{font-size:var(--fs-9);margin-bottom:var(--spacing-4)}.next-quest p{font-size:var(--fs-10)}.next-quest .primary{margin-left:auto;white-space:nowrap}.primary,.secondary{border-radius:var(--radius-sm);padding:var(--spacing-12) var(--spacing-20);font-size:var(--fs-9);font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-10);min-height:48px}.primary{background:var(--primary);color:var(--white)}.primary:hover{background:var(--secondary)}.primary:active{background:var(--tertiary)}.primary:disabled{opacity:.45}.secondary{background:var(--gray02);color:var(--text-black)}
.sidebar{padding-top:var(--spacing-24);display:flex;flex-direction:column;gap:var(--spacing-32)}.companion-card{background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-24);text-align:center}.card-top{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-10)}.tag{background:var(--white);color:var(--primary);font-size:var(--fs-10);padding:var(--spacing-4) var(--spacing-8);border-radius:var(--radius-sm);font-weight:700}.companion-portrait{height:156px;margin:var(--spacing-16) auto var(--spacing-8);display:flex;justify-content:center;align-items:center}.companion-portrait .mascot{width:auto;height:100%;max-width:130px}.companion-card h3{font-size:var(--fs-7)}.companion-card .sub{font-size:var(--fs-10);margin:var(--spacing-8) 0 var(--spacing-20);line-height:1.6}.meter{height:8px;border-radius:var(--radius-full);background:var(--gray01);overflow:hidden}.meter>span{display:block;background:var(--primary);height:100%;border-radius:var(--radius-full);transition:width .5s}.meter-label{display:flex;justify-content:space-between;gap:var(--spacing-8);font-size:var(--fs-10);margin-top:var(--spacing-8)}.daily-card{padding:var(--spacing-8) 0}.daily-card h3{font-size:var(--fs-9);margin-bottom:var(--spacing-20);display:flex;justify-content:space-between}.daily-item{display:flex;align-items:center;gap:var(--spacing-10);font-size:var(--fs-10);margin:var(--spacing-16) 0}.check{width:24px;height:24px;display:grid;place-items:center;flex-shrink:0;border-radius:var(--radius-full);background:var(--gray02);color:var(--gray-text);font-size:var(--fs-10)}.check.done{background:var(--primary);color:var(--white)}.daily-item .reward{margin-left:auto;color:var(--primary);font-size:var(--fs-10);white-space:nowrap}.chest{margin-top:var(--spacing-24);padding:var(--spacing-16);background:var(--gray02);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--spacing-12)}.chest-emoji{font-size:var(--fs-4);color:var(--primary)}.chest p{font-size:var(--fs-10);line-height:1.75}.chest button{font-size:var(--fs-10);padding:var(--spacing-8) var(--spacing-12);background:var(--primary);color:var(--white);border-radius:var(--radius-sm);margin-top:var(--spacing-8)}.small-link{background:transparent;font-size:var(--fs-10);color:var(--primary);margin-top:var(--spacing-16)}.thought{font-size:var(--fs-10);line-height:1.75}
footer{max-width:1336px;margin:var(--spacing-40) auto 0;padding:var(--spacing-24) var(--spacing-40);font-size:var(--fs-10);display:flex;justify-content:space-between;gap:var(--spacing-16);line-height:1.75}dialog{border:0;padding:0;max-height:calc(100dvh - 40px);width:min(860px,calc(100% - 32px));border-radius:var(--radius-md);background:var(--white);color:var(--text-black);overflow-y:auto}dialog::backdrop{background:var(--text-black);opacity:.6}.game-head{padding:var(--spacing-24) var(--spacing-32) 0;display:flex;align-items:center;gap:var(--spacing-20)}.close{background:var(--gray02);border-radius:var(--radius-full);width:32px;height:32px;font-size:var(--fs-7);flex-shrink:0}.game-head .meter{flex:1;height:8px}.lives{font-size:var(--fs-8);color:var(--primary);white-space:nowrap}.game-body{padding:var(--spacing-32) var(--spacing-48)}.lesson-top{display:flex;gap:var(--spacing-24);align-items:center;margin:0 0 var(--spacing-24)}.lesson-mascot{width:96px;height:144px;flex-shrink:0}.lesson-mascot .mascot{width:100%;height:100%;object-fit:contain}.lesson-label{font-family:var(--font-en);font-size:var(--fs-10);font-weight:600;color:var(--primary);letter-spacing:.05em;margin-bottom:var(--spacing-12)}.game-body h2{font-size:var(--fs-5);line-height:1.5;margin:var(--spacing-8) 0 var(--spacing-16)}.lesson-copy{font-size:var(--fs-8);line-height:1.75}.tip{background:var(--gray02);padding:var(--spacing-16) var(--spacing-20);border-radius:var(--radius-md);font-size:var(--fs-9);line-height:1.75;margin:var(--spacing-24) 0}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-20);margin-top:var(--spacing-24)}.game-footer .caption{font-size:var(--fs-10)}.question-context{font-size:var(--fs-9);line-height:1.75;margin-bottom:var(--spacing-20)}.question-options{display:grid;gap:var(--spacing-12);margin:var(--spacing-20) 0}.option{background:var(--white);border:1px solid var(--gray-line);border-radius:var(--radius-md);padding:var(--spacing-16);display:flex;gap:var(--spacing-16);align-items:center;text-align:left;width:100%;font-size:var(--fs-9);line-height:1.75}.option .letter{width:32px;height:32px;flex-shrink:0;display:grid;place-items:center;background:var(--gray02);border-radius:var(--radius-sm);font-family:var(--font-en);font-size:var(--fs-9)}.option.selected,.option.correct{border-color:var(--primary);background:var(--gray02)}.option.selected .letter,.option.correct .letter{background:var(--primary);color:var(--white)}.option.incorrect{border-color:var(--gray-text);background:var(--gray02)}.option:disabled{opacity:.65}.option.selected:disabled{opacity:1}.feedback{padding:var(--spacing-16) var(--spacing-20);border-radius:var(--radius-md);background:var(--gray02);font-size:var(--fs-9);line-height:1.75;margin-top:var(--spacing-20);min-height:96px}.feedback strong{display:block;font-size:var(--fs-8);margin-bottom:var(--spacing-8);color:var(--primary)}.feedback.wrong .mascot{float:right;height:80px;width:64px;object-fit:contain;margin-left:var(--spacing-16)}.hint-button{background:transparent;color:var(--text-black);font-size:var(--fs-10);text-decoration:underline;text-underline-offset:4px}.selection-tray{min-height:80px;background:var(--gray02);border-radius:var(--radius-md);display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-8);padding:var(--spacing-16);margin:var(--spacing-16) 0}.selection-tray:empty:after{content:'下のカードを、順番に選ぼう';font-size:var(--fs-10)}.selection-chip{padding:var(--spacing-10) var(--spacing-12);background:var(--white);border:1px solid var(--gray-line);border-radius:var(--radius-sm);font-size:var(--fs-9)}.selection-chip:disabled{opacity:.85}.answer-instruction{font-size:var(--fs-10);color:var(--primary);font-weight:700}.boss-banner{display:flex;align-items:center;gap:var(--spacing-16);background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-16);margin-bottom:var(--spacing-24)}.boss-face{font-size:var(--fs-4);font-weight:700;color:var(--primary);width:40px;text-align:center}.boss-banner>div:last-child{flex:1}.boss-banner strong{font-size:var(--fs-9);display:block;margin-bottom:var(--spacing-8)}.boss-banner .meter>span{background:var(--tertiary)}.sources-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-12);margin:var(--spacing-24) 0}.source-card{background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-16);display:flex;flex-direction:column;gap:var(--spacing-8);font-size:var(--fs-10);line-height:1.6}.source-card strong{font-size:var(--fs-9)}.source-card small{font-size:var(--fs-10);color:var(--primary)}
.result{text-align:center}.result-mascot{height:200px;margin:0 auto var(--spacing-20)}.result-mascot .mascot{margin:auto;height:100%;width:auto;object-fit:contain}.result h2{font-size:var(--fs-4)}.result-stars{font-size:var(--fs-4);color:var(--primary);letter-spacing:.05em;margin:var(--spacing-12) 0}.result-stats{display:flex;justify-content:center;gap:var(--spacing-40);margin:var(--spacing-24) 0}.result-stats strong{font-size:var(--fs-5);font-family:var(--font-en);display:block;color:var(--primary)}.result-stats small{font-size:var(--fs-10)}.result p{font-size:var(--fs-9);line-height:1.75}.result .game-footer{justify-content:center}.combo{color:var(--primary);font-size:var(--fs-10);font-weight:700}
.collection-page,.notes-page{max-width:1100px;margin:var(--spacing-40) auto;padding:0 var(--spacing-40);min-height:70vh}.page-title{font-size:var(--fs-4);margin:var(--spacing-12) 0}.page-description{font-size:var(--fs-9);line-height:1.75;margin:var(--spacing-16) 0 var(--spacing-32)}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-24)}.collection-item{background:var(--gray02);padding:var(--spacing-24);border-radius:var(--radius-md);text-align:center}.collection-item .companion-portrait{height:200px}.collection-item .mascot{max-width:156px}.collection-item h3{font-size:var(--fs-7);margin:var(--spacing-16) 0}.collection-item p{font-size:var(--fs-10);margin:var(--spacing-12) 0 var(--spacing-20)}.locked-item{filter:grayscale(1);opacity:.55}.badge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-16);margin:var(--spacing-24) 0}.badge-item{background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-24) var(--spacing-12);text-align:center;font-size:var(--fs-10)}.badge-item .big{font-family:var(--font-en);font-size:var(--fs-4);display:block;margin-bottom:var(--spacing-12);color:var(--primary)}.badge-stars{margin-top:var(--spacing-8);font-size:var(--fs-10);color:var(--primary)}.section-title{font-size:var(--fs-7);margin:var(--spacing-40) 0 var(--spacing-24)}.note-item{background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-24);margin-bottom:var(--spacing-16)}.note-item h3{font-size:var(--fs-7);margin:var(--spacing-12) 0}.note-item p{font-size:var(--fs-9);line-height:1.75}.note-item .tip{background:var(--white)}.note-item ul{padding-left:var(--spacing-20);font-size:var(--fs-9);line-height:1.75}.note-item a{text-decoration:underline;text-underline-offset:4px;color:var(--primary)}.note-item summary{cursor:pointer;font-size:var(--fs-8);font-weight:700;line-height:1.75}.small{font-size:var(--fs-10)!important}.principles{margin:var(--spacing-40) 0}.principles>h2{font-size:var(--fs-7);margin-bottom:var(--spacing-24)}.principles article{margin:var(--spacing-24) 0}.principles h3{font-size:var(--fs-8);margin-bottom:var(--spacing-8)}.principles p{font-size:var(--fs-9)}.info-body{padding:var(--spacing-32);line-height:1.75}.info-body h2{font-size:var(--fs-6);margin-bottom:var(--spacing-16)}.info-body p{font-size:var(--fs-9);margin-bottom:var(--spacing-24)}.empty-state{padding:var(--spacing-32);background:var(--gray02);border-radius:var(--radius-md);font-size:var(--fs-9);line-height:1.75}
#toast{position:fixed;bottom:var(--spacing-24);left:50%;transform:translate(-50%,24px);background:var(--tertiary);color:var(--white);padding:var(--spacing-12) var(--spacing-24);border-radius:var(--radius-md);font-size:var(--fs-9);z-index:20;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:90vw;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#confetti{position:fixed;inset:0;pointer-events:none;z-index:30;overflow:hidden}.particle{position:absolute;top:-16px;width:8px;height:12px;animation:confetti 1.7s ease-in forwards}.mascot{display:block;object-fit:contain;mix-blend-mode:multiply}.floaty{animation:float 4s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes confetti{to{transform:translateY(105vh) rotate(540deg);opacity:0}}
@media(min-width:1440px){.hero h1{font-size:var(--fs-3)}}
@media(max-width:1160px){.site-header{padding:var(--spacing-24);gap:var(--spacing-24);flex-wrap:wrap}.site-header nav{order:3;flex-basis:100%}.header-stats{margin-left:auto}.layout{gap:var(--spacing-32);padding:0 var(--spacing-24);grid-template-columns:minmax(0,1fr) 260px}.hero h1{font-size:var(--fs-5)}.hero-art{width:120px}.hero-art .mascot{max-height:180px}.hero p{font-size:var(--fs-10)}.worlds{gap:var(--spacing-32) var(--spacing-16)}.map{padding:var(--spacing-24)}.next-quest{flex-wrap:wrap}.next-quest>div:nth-child(2){flex:1}.next-quest .primary{width:100%}}
@media(max-width:860px){.layout{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:1fr 1fr;padding-top:0;gap:var(--spacing-24)}.thought{grid-column:1/-1}.hero-art{width:160px}.hero h1{font-size:var(--fs-4)}.hero p{font-size:var(--fs-9)}.next-quest{flex-wrap:nowrap}.next-quest .primary{width:auto}.collection-grid{gap:var(--spacing-16)}footer{padding:var(--spacing-24)}}
@media(max-width:600px){.site-header{padding:var(--spacing-20) var(--spacing-20) var(--spacing-8);gap:var(--spacing-16)}.brand{font-size:var(--fs-8);gap:var(--spacing-10)}.brand small{font-size:var(--fs-10);max-width:200px;white-space:normal;line-height:1.5}.brand-symbol{width:40px;height:40px}.header-stats{width:100%;justify-content:flex-end;font-size:var(--fs-10);gap:var(--spacing-16)}.header-stats b{font-size:var(--fs-9)}.site-header nav{justify-content:space-between;gap:0}.nav{font-size:var(--fs-10);padding:var(--spacing-10) var(--spacing-8)}.layout{padding:0 var(--spacing-20);margin-top:var(--spacing-8)}.hero{padding:var(--spacing-20) 0 var(--spacing-32);gap:var(--spacing-12)}.hero h1{font-size:var(--fs-5)}.hero p{font-size:var(--fs-10)}.hero-art{width:80px}.hero-art .mascot{max-height:132px}.hero-art .pill{display:none}.eyebrow{font-size:var(--fs-10);letter-spacing:0}.map-heading{flex-wrap:wrap;gap:var(--spacing-8);margin-bottom:var(--spacing-20)}.map-heading h2{font-size:var(--fs-7)}.map{padding:var(--spacing-24) var(--spacing-16)}.worlds{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--spacing-32) var(--spacing-16)}.world-node{width:72px;height:72px}.world-title{font-size:var(--fs-9)}.world-subtitle{font-size:var(--fs-10)}.map-caption{font-size:var(--fs-10);text-align:center}.next-quest{flex-wrap:wrap;gap:var(--spacing-12);padding-top:var(--spacing-24)}.next-quest .primary{width:100%}.sidebar{grid-template-columns:1fr}.companion-card{display:grid;grid-template-columns:96px 1fr;gap:0 var(--spacing-16);text-align:left;align-items:center;padding:var(--spacing-20)}.companion-card .card-top{grid-column:1/-1;margin-bottom:var(--spacing-12)}.companion-card .companion-portrait{grid-column:1;grid-row:2/7;width:96px;height:136px;margin:0}.companion-card h3{grid-column:2}.companion-card .sub{grid-column:2;margin:var(--spacing-8) 0 var(--spacing-12)}.companion-card .meter,.companion-card .meter-label,.companion-card .small-link{grid-column:2}.companion-card .small-link{text-align:left;padding:0}.daily-card{padding:var(--spacing-16) 0}.collection-page,.notes-page{padding:0 var(--spacing-20);margin-top:var(--spacing-32)}.collection-grid{grid-template-columns:1fr}.collection-item{display:grid;grid-template-columns:96px 1fr;text-align:left;align-items:center;gap:var(--spacing-8) var(--spacing-20);padding:var(--spacing-20)}.collection-item .companion-portrait{grid-row:1/4;width:96px;height:144px;margin:0}.collection-item h3{margin:0;font-size:var(--fs-8)}.collection-item p{margin:0;font-size:var(--fs-10)}.collection-item button{justify-self:start}.badge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-title{font-size:var(--fs-5)}.game-head{padding:var(--spacing-20) var(--spacing-20) 0;gap:var(--spacing-12)}.game-body{padding:var(--spacing-24)}.game-body h2{font-size:var(--fs-6)}.lesson-top{gap:var(--spacing-16)}.lesson-mascot{width:72px;height:108px}.lesson-copy{font-size:var(--fs-9)}.game-footer{gap:var(--spacing-12);flex-wrap:wrap}.game-footer .primary{margin-left:auto}.option{padding:var(--spacing-12);gap:var(--spacing-12);font-size:var(--fs-9)}.game-head .lives{font-size:var(--fs-9)}.result-stats{gap:var(--spacing-24)}.result h2{font-size:var(--fs-5)}.result-stars{font-size:var(--fs-5)}.result-mascot{height:160px}.result .game-footer .primary{margin-left:0}.question-context{font-size:var(--fs-9)}.selection-chip{font-size:var(--fs-10)}.lesson-label{font-size:var(--fs-10)}.info-body{padding:var(--spacing-24)}.sources-board{grid-template-columns:1fr}.source-card{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-8)}.source-card strong,.source-card small{grid-column:1/-1}footer{padding:var(--spacing-20);flex-direction:column;gap:var(--spacing-8);font-size:var(--fs-10);margin-top:var(--spacing-24)}}
@media(max-width:380px){.hero{align-items:flex-start}.hero h1{font-size:var(--fs-6)}.hero-art{width:64px}.worlds{gap:var(--spacing-32) var(--spacing-12)}.source-card{grid-template-columns:1fr}.game-body{padding:var(--spacing-20)}.result-stats{gap:var(--spacing-16)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Stage rivals share the existing andmedia design tokens. */
.enemy-art{display:block;width:100%;height:100%;object-fit:contain}
.world-node{width:120px;height:120px;padding:var(--spacing-8);border:2px solid transparent;background:var(--white)}
.world.available .world-node{background:var(--white);border-color:var(--primary);color:var(--primary)}
.world.available .world-node:hover{background:var(--gray01)}
.world.locked .world-node{opacity:.75}.world.locked .enemy-art{filter:grayscale(1)}
.map-enemy-name{font-size:var(--fs-9);font-weight:700;color:var(--primary);line-height:1.5}
.world-title{font-size:var(--fs-10)}
.encounter{display:grid;grid-template-columns:64px 120px minmax(0,1fr);align-items:center;gap:var(--spacing-20);padding:var(--spacing-20);background:var(--gray02);border-radius:var(--radius-md);margin-bottom:var(--spacing-32)}
.player-side{align-self:end;text-align:center}.player-side .mascot{height:96px;width:64px;object-fit:contain}.player-side>span{display:block;margin-top:var(--spacing-8);font-size:var(--fs-10);color:var(--primary)}
.battle-portrait{width:120px;height:144px;position:relative;align-self:center}.battle-portrait .enemy-art{transform-origin:50% 80%}
.enemy-kicker{font-family:var(--font-jp);font-size:var(--fs-10);line-height:1.5;color:var(--primary);margin-bottom:var(--spacing-8)}
.enemy-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-12);margin-bottom:var(--spacing-12)}
.enemy-heading h3{font-size:var(--fs-7);line-height:1.5}.enemy-hp{font-family:var(--font-en);font-size:var(--fs-10);font-weight:700;color:var(--primary);white-space:nowrap}
.enemy-meter{height:8px;background:var(--gray-line)}.enemy-meter>span{background:var(--tertiary)}
.enemy-quote{font-size:var(--fs-9);line-height:1.6;margin-top:var(--spacing-12)}.enemy-quote small{display:block;font-size:var(--fs-10);font-weight:700;margin-bottom:var(--spacing-4)}
.enemy-tactic{font-size:var(--fs-10);line-height:1.6;margin-top:var(--spacing-8)}
.enemy-hit .enemy-art{animation:enemy-hit .42s ease-in-out}.damage-popup{position:absolute;right:0;top:0;color:var(--primary);background:var(--white);padding:var(--spacing-4) var(--spacing-8);border-radius:var(--radius-sm);font-family:var(--font-en);font-size:var(--fs-7);font-weight:700;animation:damage-rise .7s ease-out both}
.enemy-defeated .enemy-art{opacity:.65;transform:rotate(-8deg) scale(.9)}
.enemy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--spacing-24)}
.enemy-card{display:flex;flex-direction:column;align-items:center;text-align:center;background:var(--gray02);border-radius:var(--radius-md);padding:var(--spacing-24)}
.enemy-card-top{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-8);width:100%}.enemy-card .enemy-art{height:160px;width:160px;margin:var(--spacing-20) auto var(--spacing-16)}
.enemy-card h3{font-size:var(--fs-7);line-height:1.5}.enemy-epithet{font-size:var(--fs-10);margin-top:var(--spacing-8)}.enemy-discovery{font-size:var(--fs-9);line-height:1.75;margin:var(--spacing-16) 0 var(--spacing-20)}.enemy-card button{margin-top:auto;font-size:var(--fs-10);width:100%}.enemy-undefeated .enemy-art{filter:grayscale(1);opacity:.7}.bestiary-count{font-size:var(--fs-10);font-weight:500;color:var(--primary);margin-left:var(--spacing-12)}
.victory-duo{display:flex;align-items:center;justify-content:center;gap:var(--spacing-24);margin:0 auto var(--spacing-20)}.victory-duo .result-mascot{margin:0;height:180px}.result-rival{position:relative;width:144px;height:144px}.result-rival .enemy-art{transform:rotate(-8deg);opacity:.6}.victory-stamp{position:absolute;bottom:var(--spacing-8);right:0;background:var(--primary);color:var(--white);border-radius:var(--radius-sm);padding:var(--spacing-4) var(--spacing-12);font-family:var(--font-en);font-weight:700;font-size:var(--fs-9)}
.enemy-resolution{margin:var(--spacing-24) auto;max-width:560px}.enemy-resolution strong{display:block;font-size:var(--fs-7);color:var(--primary);margin-bottom:var(--spacing-8)}.enemy-resolution p{font-size:var(--fs-9)}
@keyframes enemy-hit{0%,100%{translate:0 0}20%,60%{translate:-8px 0}40%,80%{translate:8px 0}}
@keyframes damage-rise{from{opacity:0;translate:0 16px}30%{opacity:1}to{opacity:1;translate:0 -8px}}
@media(max-width:1000px){.enemy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.encounter{grid-template-columns:88px minmax(0,1fr);gap:var(--spacing-12);padding:var(--spacing-16);margin-bottom:var(--spacing-24)}.player-side{display:none}.battle-portrait{width:88px;height:112px}.enemy-heading{display:block}.enemy-heading h3{font-size:var(--fs-8);overflow-wrap:anywhere}.enemy-hp{display:block;margin-top:var(--spacing-4)}.enemy-kicker{font-size:var(--fs-10)}.enemy-quote{font-size:var(--fs-10)}.enemy-tactic{font-size:var(--fs-10)}.enemy-grid{grid-template-columns:1fr}.enemy-card{padding:var(--spacing-20)}.enemy-card .enemy-art{width:144px;height:144px}.world-node{width:104px;height:104px}.victory-duo{gap:var(--spacing-16)}.victory-duo .result-mascot{height:144px}.result-rival{width:112px;height:112px}.damage-popup{font-size:var(--fs-9)}}
@media(max-width:380px){.encounter{grid-template-columns:64px minmax(0,1fr);padding:var(--spacing-12);gap:var(--spacing-8)}.battle-portrait{width:64px;height:96px}.world-node{width:96px;height:96px}.map-enemy-name{font-size:var(--fs-10)}}
.game-share-intro{text-align:right;margin:0 0 var(--spacing-24)}.game-share-intro .small-link{margin:0;padding:var(--spacing-8) 0}.result-share{margin:var(--spacing-24) 0}.result-share .primary{min-width:240px}.result-share p{font-size:var(--fs-10);margin-top:var(--spacing-8)}
.share-dialog h2{margin-top:var(--spacing-12)}.share-cover{display:block;width:100%;height:auto;border-radius:var(--radius-md);margin:var(--spacing-20) 0}.share-score{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--spacing-12);padding:var(--spacing-20);border-radius:var(--radius-md);background:var(--gray02);margin:var(--spacing-20) 0}.share-score strong{font-size:var(--fs-7);color:var(--primary)}.share-score span{font-size:var(--fs-9)}.share-label{display:block;font-size:var(--fs-9);font-weight:700;margin-bottom:var(--spacing-8)}.share-text{display:block;box-sizing:border-box;width:100%;padding:var(--spacing-16);font-family:var(--font-jp);font-size:var(--fs-9);line-height:1.75;border:1px solid var(--gray-line);border-radius:var(--radius-sm);background:var(--white);color:var(--text-black);resize:vertical}.share-text:focus-visible{outline:2px solid var(--primary);outline-offset:4px}.share-dialog .share-caption,.share-dialog .share-copy-status{font-size:var(--fs-10);margin:var(--spacing-12) 0;line-height:1.6}.share-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-12);margin:var(--spacing-20) 0}.share-actions .small-link{margin:0}.share-copy-status{color:var(--primary)}
@media(max-width:620px){.game-share-intro{text-align:left;margin-bottom:var(--spacing-16)}.share-score{padding:var(--spacing-16)}.share-score strong{font-size:var(--fs-8)}.share-actions .primary{width:100%}.result-share .primary{min-width:0;width:100%}}
.hero.hero-video-layout{display:block;padding-bottom:var(--spacing-24)}
.battle-banner{margin:var(--spacing-24) 0 0}
.battle-banner video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;border-radius:var(--radius-md);background:var(--gray02)}
.battle-banner figcaption{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-16);margin-top:var(--spacing-8);font-size:var(--fs-10)}
.battle-banner .small-link{margin:0;padding:var(--spacing-4) 0;white-space:nowrap}
.encounter.encounter-retro{display:block;background:transparent;padding:0;position:relative}
.quest-battle{display:block;width:100%;height:auto;aspect-ratio:16/9;border-radius:var(--radius-md)}
.battle-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.retro-tactic{margin-top:var(--spacing-12);font-size:var(--fs-10);line-height:1.75}
.share-dialog .battle-banner{margin-top:var(--spacing-20)}
@media(max-width:620px){.battle-banner figcaption{align-items:flex-start;flex-wrap:wrap;gap:var(--spacing-4)}.encounter.encounter-retro{margin-bottom:var(--spacing-20)}}
