@charset "UTF-8";
:root{--ink:#352d39;--muted:#665d69;--paper:#fff8f2;--line:#e9d6da;--mint:#ffe8f0;--gold:#d7a247;--coral:#a9436c;--surface:#fffcfa;--pink:#ffe8f0;--peach:#fff0e2;--butter:#fff2cf;--lilac:#f0eafa;--focus:#813c78;--vocal:#cf507c;--dance:#866bc4;--popularity:#a77616;--fatigue:#408aad;--serif:Georgia,"Times New Roman",serif;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:5px}button{transition:background .2s,transform .2s}button:hover{transform:translateY(-2px)}h1,h2,p,figure{margin:0}h1{letter-spacing:-.05em}button span{pointer-events:none}[hidden]{display:none!important}#app:focus{outline:none}.shell{max-width:1440px;margin:auto;padding:0 64px}.topbar{height:100px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:30px}.brand{font-size:15px;font-weight:850;letter-spacing:.1em;display:flex;align-items:center;gap:12px}.brand-mark{font-size:29px;color:var(--coral)}.edition{margin-left:auto;letter-spacing:.12em;font-size:10px;color:var(--muted)}.edition span{padding:0 10px}.text-button{border:0;background:transparent;font-size:12px;padding:12px 0 12px 20px;border-left:1px solid var(--line)}.footer{border-top:1px solid var(--line);min-height:74px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);gap:20px}.footer>span:last-of-type{font-size:9px;letter-spacing:.13em}.footer b{color:var(--coral);padding:0 12px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:.16em;line-height:1.6}.button{border:1px solid transparent;min-height:49px;padding:15px 23px;display:inline-flex;align-items:center;justify-content:center;gap:30px;font-size:13px;font-weight:650;border-radius:3px}.primary{background:var(--coral);color:#fff}.primary:hover{background:#873054}.secondary{background:transparent;border-color:var(--line)}.quiet{background:transparent}.quiet:hover,.secondary:hover{background:var(--pink)}.button>span{font-size:18px}.subtle{font-size:12px;color:var(--muted);line-height:1.9}.hero{min-height:640px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:30px;padding:55px 0 48px}.hero-copy{padding-bottom:15px}.hero-copy .eyebrow{display:flex;align-items:center;gap:10px;color:var(--muted)}.small-star{color:var(--coral);font-size:20px}.hero h1{font:normal clamp(54px,6.3vw,86px)/.97 var(--serif);letter-spacing:-.055em;margin:25px 0 16px;position:relative;width:max-content}.hero h1 span{font-style:italic}.hero h1 i{position:absolute;font-style:normal;font-size:45px;right:-45px;top:-5px;color:var(--coral)}.hero-subtitle{font-size:19px;letter-spacing:.22em;margin:24px 0}.hero-description{font-size:13px;line-height:1.95;color:var(--muted)}.hero-actions{display:flex;align-items:center;gap:4px;margin-top:30px}.play-note{font-size:10px;color:var(--muted);margin-top:18px}.hero-art{position:relative;height:470px;display:flex;align-items:flex-end;justify-content:center;isolation:isolate}.hero-art:before{content:"";width:360px;height:360px;border-radius:50%;background:var(--pink);position:absolute;top:35px;z-index:-2}.orbit{position:absolute;border:1px solid #ebcbd5;border-radius:50%;width:430px;height:430px;top:0;z-index:-1}.orbit-two{width:310px;height:310px;top:60px}.art-star{position:absolute;color:var(--coral)}.star-one{font-size:33px;left:4%;top:100px}.star-two{font-size:46px;right:3%;top:20px;color:#a07522}.hero-sprites{position:absolute;bottom:108px;display:flex;gap:29px;align-items:flex-end;z-index:2}.hero-person{position:relative;display:flex;flex-direction:column-reverse;align-items:center;--sprite-height:160px}.hero-person.center{margin-bottom:21px}.person-label{position:absolute;bottom:-28px;white-space:nowrap;font-size:8px;letter-spacing:.13em;color:var(--muted)}.sprite{position:relative;display:inline-block;height:var(--sprite-height,260px);overflow:hidden;flex-shrink:0;vertical-align:bottom}.sprite img{position:absolute;max-width:none;height:auto;image-rendering:pixelated;user-select:none}.podium{position:absolute;width:95%;height:85px;bottom:45px;background:#f5d0de;border-top:8px solid #fff0e2;transform:skewY(-3deg);box-shadow:0 15px 0 #fff2cf;display:flex;align-items:center;justify-content:space-between;padding:0 30px;z-index:0}.podium span{font-size:8px;letter-spacing:.18em;color:#665d69}.podium b{font:36px var(--serif);color:#91516b}.art-note{position:absolute;bottom:0;left:0;right:0;text-align:center;font-size:9px;letter-spacing:.05em;color:var(--muted)}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#bb5077;margin-right:6px}.title-strip{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:28px 0 36px;gap:20px}.title-strip>span{display:flex;align-items:center;gap:12px;font-size:10px;color:var(--muted)}.title-strip b{font:italic 27px var(--serif);color:var(--ink)}.title-strip .strip-end{font-size:10px;color:var(--muted)}.strip-end>span{font-size:25px;color:var(--coral);margin-left:10px}.intro-panel{min-height:650px;text-align:center;padding:70px 0}.intro-star{font-size:52px;color:var(--coral);display:block;margin:20px}.intro-panel h1{font-size:36px;margin-bottom:24px}.intro-panel>p:not(.eyebrow){font-size:14px;line-height:2;color:var(--muted)}.journey{display:flex;justify-content:center;align-items:center;gap:28px;margin:35px 0}.journey span{font-size:12px}.journey b{font:italic 20px var(--serif);padding-right:8px;color:var(--coral)}.journey i{font-style:normal;color:#936b83}.intro-panel .subtle{margin-top:16px;font-size:11px!important}.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:35px}.section-top h1{font-size:32px;margin:12px 0}.section-top p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.8}.route-select,.gallery{padding:48px 0 30px;min-height:650px}.collection-count{font:italic 32px var(--serif);white-space:nowrap}.collection-count span{display:block;font:8px system-ui;letter-spacing:.12em;margin-top:10px;color:var(--muted)}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.route-card{padding:0;text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:5px;overflow:hidden}.route-card:hover{transform:translateY(-5px);box-shadow:0 14px 25px #19343a0a}.mint{--route-color:#dce7d6;--route-dark:#306650}.blue{--route-color:#d6e6e7;--route-dark:#216681}.lilac{--route-color:#e5deeb;--route-dark:#827090}.route-art{height:270px;position:relative;overflow:hidden;background:var(--route-color)}.route-art:before{content:"";border:1px solid #ffffff80;position:absolute;inset:24px;border-radius:100px 100px 0 0}.route-number{position:absolute;left:20px;top:17px;font:italic 25px var(--serif);color:var(--route-dark)}.route-tag{position:absolute;right:18px;top:24px;font-size:9px;letter-spacing:.08em;color:var(--route-dark)}.route-sprites{display:flex;align-items:flex-end;justify-content:center;gap:24px;position:absolute;bottom:39px;left:0;right:0;--sprite-height:175px}.route-sprites .sprite:first-child{--sprite-height:184.5px}.route-art-note{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:10px;color:var(--route-dark)}.route-copy{padding:25px 23px}.route-copy .eyebrow{font-size:8px;color:var(--route-dark)}.route-copy h2{font-size:20px;letter-spacing:-.04em;margin:12px 0 10px}.route-copy p{font-size:11px;line-height:1.7;color:var(--muted)}.route-cta{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:19px;margin-top:22px;font-size:11px}.route-cta b{font-size:20px;font-weight:400}.route-help{margin-top:24px;font-size:10px}.wardrobe{display:grid;gap:28px}.wardrobe-group{border:1px solid var(--line);padding:24px}.wardrobe-group h2{font-size:18px}.wardrobe-group h2 small{font-size:10px;font-weight:400;margin-left:10px;color:var(--muted)}.outfit-grid{display:flex;gap:25px;flex-wrap:wrap;margin-top:25px}.outfit-grid figure{background:var(--peach);min-width:125px;flex:1;text-align:center;padding:18px 10px;--sprite-height:170px}.outfit-grid figcaption{font-size:11px;margin-top:16px}.outfit-grid figcaption span{display:block;font-size:8px;margin-top:6px;color:var(--muted)}.play-layout{padding:29px 0 35px}.play-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.play-heading h1{font-size:20px;margin-top:8px}.divider{color:#a48a99;padding:0 8px}.day-label{font-size:11px;color:var(--muted)}.day-label b{color:var(--coral);padding-left:10px}.play-main{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:28px}.novel{min-width:0}.scene{height:360px;position:relative;overflow:hidden;background:#dce6df;isolation:isolate;border:1px solid #d8ddd0;border-radius:4px 4px 0 0;--set:#92afa0;--set-light:#eaf0d8}.scene-top{display:flex;justify-content:space-between;align-items:center;position:absolute;top:19px;left:21px;right:21px;z-index:4;font-size:10px}.location{padding:7px 12px;border-radius:2px;background:#fafbf2df}.clock{letter-spacing:.15em;color:var(--muted)}.city{background:linear-gradient(150deg,#f5edda,#dedfc5);--set:#c2b189;--set-light:#f7f0d6}.school1{background:linear-gradient(125deg,#e1efeb,#aacacb);--set:#72a4a7;--set-light:#ecf2cc}.school2{background:linear-gradient(125deg,#e9e3ee,#c3b4d0);--set:#a08aac;--set-light:#f5ddcf}.lounge{background:#eee5d6;--set:#bdb38f;--set-light:#f7edcf}.studio{background:#e2e5df;--set:#91a69b;--set-light:#d9e6e5}.backstage{background:#54676a;--set:#6e8788;--set-light:#b2b799;color:#fff}.backstage .clock{color:#d7e3d7}.backstage .scene-caption{color:#e5e9df}.stage{background:radial-gradient(ellipse at 50% 10%,#49665d,#182f37 80%);--set:#5b7468;--set-light:#456357}.stage .clock,.stage .scene-caption{color:#d7e0cc}.spotlight{display:none}.stage .spotlight{display:block;position:absolute;top:-80px;width:130px;height:490px;background:linear-gradient(#f6edb62a,#fff7bf03);transform:rotate(25deg);left:20%;filter:blur(2px)}.stage .spotlight.two{left:auto;right:20%;transform:rotate(-25deg)}.scene-cast{position:absolute;bottom:34px;left:13%;right:13%;display:flex;justify-content:space-evenly;align-items:flex-end;z-index:2}.actor{position:relative;--sprite-height:228px;transition:transform .3s}.actor:first-child{--sprite-height:215px}.actor:last-child{--sprite-height:242px}.actor:has(.sprite[data-character$="link"]){--sprite-height:236.5px}.actor:has(.sprite[data-character="totk_link"]){--sprite-height:242.5px}.actor.speaking{transform:translateY(-5px)}.actor.speaking:before{content:"✧";position:absolute;right:-19px;top:20px;color:#fff7d3;font-size:24px}.actor-shadow{position:absolute;bottom:-5px;left:-10%;width:120%;height:17px;border-radius:50%;background:#1d403b21;z-index:-1}.scene-caption{position:absolute;bottom:11px;left:21px;font-size:8px;color:#4c6255;z-index:3}.stage-banner{position:absolute;right:18px;bottom:11px;font-size:8px;letter-spacing:.14em;color:#f2d390}.dialogue-box{background:var(--surface);border:1px solid var(--line);border-top:0;padding:23px 26px 17px;border-radius:0 0 4px 4px;min-height:192px}.dialogue-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.speaker{font-size:12px;font-weight:800;color:var(--coral)}.dialogue-meta>span:last-child{font-size:8px;letter-spacing:.08em;color:var(--muted)}.dialogue-text{font-size:15px;line-height:1.95;min-height:60px;margin:13px 0 6px;word-break:keep-all}.dialogue-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:8px}.dialogue-bottom>span{font-size:9px;color:var(--muted)}.next-button{border:0;background:transparent;font-size:11px;padding:7px 0 7px 17px;min-height:34px}.next-button:hover{color:var(--coral)}.choices{margin:20px 0 7px}.choices>p{font-size:10px;color:var(--muted);margin-bottom:10px}.choices button{display:flex;width:100%;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between;padding:14px;border:1px solid var(--line);background:var(--peach);text-align:left;margin-top:8px;border-radius:3px;font-size:12px;line-height:1.6}.choices button:hover{border-color:#b45a7e;background:var(--pink)}.choices b{font:italic 15px var(--serif);color:var(--coral);padding-right:7px}.choices small{font-size:9px;color:var(--muted)}.choices small span{padding-left:10px}.day-panel{border:1px solid var(--line);border-radius:4px;padding:25px 20px;align-self:start}.day-panel>.eyebrow{font-size:8px;color:var(--muted)}.day-panel h2{font-size:18px;margin:9px 0 23px}.scene-list{list-style:none;padding:0;margin:0 0 25px}.scene-list li{display:flex;gap:12px;align-items:center;margin:0 -8px;padding:13px 8px;color:#9a9f93;border-bottom:1px solid var(--line)}.scene-list li>span{font:italic 16px var(--serif)}.scene-list li>div{font-size:10px;line-height:1.5}.scene-list small{display:block;font-size:8px;margin-top:4px}.scene-list b{margin-left:auto;font-size:13px;font-weight:400}.scene-list .current{color:var(--ink);background:var(--peach);border-radius:3px;border:0}.scene-list .done{color:var(--muted)}.stats>.eyebrow{font-size:8px;color:var(--muted);margin-bottom:15px}.stat{margin-top:14px}.stat>div{display:flex;justify-content:space-between;font-size:10px}.stat b{font-weight:650}.stat small{font-size:8px;color:var(--muted);font-weight:400}progress{appearance:none;-webkit-appearance:none;width:100%;height:4px;border:0;display:block;margin-top:9px;border-radius:0;background:#f0e3e9}progress::-webkit-progress-bar{background:#f0e3e9}progress::-webkit-progress-value{background:var(--stat-color,var(--vocal))}progress::-moz-progress-bar{background:var(--stat-color,var(--vocal))}.day-tip{border-top:1px solid var(--line);display:flex;align-items:center;gap:13px;margin-top:24px;padding-top:20px}.day-tip>span{font-size:28px;color:#b99b6d}.day-tip p{font-size:9px;line-height:1.8;color:var(--muted)}.result{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;padding:55px 0;min-height:680px}.result-art{background:var(--route-color);position:relative;border-radius:150px 150px 4px 4px;min-height:500px;display:flex;align-items:center;justify-content:center;overflow:hidden}.result-art>.eyebrow{position:absolute;top:42px;font-size:9px;color:var(--route-dark)}.result-star{position:absolute;top:110px;font-size:56px;color:var(--route-dark)}.result-cast{display:flex;align-items:flex-end;gap:40px;position:absolute;bottom:120px;--sprite-height:260px}.result-cast>.sprite:first-child{--sprite-height:271px}.result-stamp{position:absolute;bottom:34px;line-height:1.1;text-align:center;font:italic 18px var(--serif);color:var(--route-dark)}.result-stamp b{font:40px var(--serif);letter-spacing:.1em}.result-copy h1{font-size:31px;margin:17px 0}.result-description{font-size:13px;line-height:1.9;color:var(--muted);word-break:keep-all}.result-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin:18px 0 25px}.choice-record{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.choice-record h2{font-size:11px;margin-bottom:14px}.choice-record p{font-size:11px;line-height:1.8;color:var(--muted);margin-top:7px}.next-chapter{margin:24px 0}.next-chapter .eyebrow{color:var(--coral);font-size:8px}.next-chapter p{font-size:11px;line-height:1.8;color:var(--muted);margin-top:8px}.result-actions{display:flex;gap:5px}.loading{min-height:650px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:23px}.loading h1{font-size:30px}.loading p{font-size:13px;line-height:2;color:var(--muted)}.loading code{font-size:12px;background:var(--butter);padding:4px}.loading .eyebrow{color:var(--coral)}
@media(min-width:1500px){.hero{min-height:700px}.hero-art{transform:scale(1.07)}}
@media(max-width:1100px){.shell{padding:0 35px}.hero{gap:5px}.hero-art{height:440px;transform:scale(.9);transform-origin:center right}.hero-actions{flex-wrap:wrap}.hero-sprites{gap:20px}.hero h1{font-size:64px}.play-main{grid-template-columns:minmax(0,1fr) 210px;gap:20px}.day-panel{padding:22px 15px}.route-sprites{gap:15px;--sprite-height:155px}.route-sprites .sprite:first-child{--sprite-height:163.5px}.route-copy{padding:22px 18px}.route-copy h2{font-size:17px}.title-strip .strip-end{display:none}.result{gap:35px}.result-cast{gap:20px;--sprite-height:220px}.result-cast>.sprite:first-child{--sprite-height:230px}}
@media(max-width:800px){.shell{padding:0 22px}.topbar{height:78px;gap:12px}.brand{font-size:11px;gap:7px}.brand-mark{font-size:23px}.edition{font-size:7px}.edition span{padding:0 3px}.text-button{font-size:10px;padding-left:12px}.hero{grid-template-columns:minmax(0,1fr);gap:5px;padding:43px 0 25px}.hero-copy{text-align:center}.hero-copy .eyebrow{justify-content:center}.hero h1{font-size:70px;margin:24px auto}.hero-subtitle{font-size:16px;margin:22px 0 16px}.hero-actions{justify-content:center}.hero-art{width:450px;max-width:100%;margin:10px auto 0;transform:none;height:410px}.hero-art:before{width:300px;height:300px}.orbit{width:350px;height:350px}.orbit-two{width:260px;height:260px}.hero-sprites{bottom:100px}.podium{bottom:45px}.title-strip{justify-content:space-around;padding:25px 0}.title-strip>span{font-size:9px;gap:6px}.title-strip b{font-size:23px}.route-grid{grid-template-columns:1fr}.route-card{display:grid;grid-template-columns:43% 57%}.route-art{height:270px}.route-copy{align-self:center}.route-copy h2{font-size:20px}.route-sprites{gap:10px;--sprite-height:155px}.route-sprites .sprite:first-child{--sprite-height:165px}.route-art-note{font-size:8px}.section-top h1{font-size:25px}.section-top{align-items:flex-start}.collection-count{font-size:26px}.collection-count span{font-size:7px}.play-main{grid-template-columns:1fr}.day-panel{display:none}.scene{height:350px}.dialogue-box{min-height:190px}.play-heading h1{font-size:19px}.day-label{font-size:9px}.result{grid-template-columns:1fr;gap:30px;padding:30px 0}.result-art{min-height:360px;border-radius:100px 100px 4px 4px}.result-art>.eyebrow{top:20px}.result-star{top:43px;font-size:32px}.result-cast{bottom:70px;--sprite-height:200px}.result-cast>.sprite:first-child{--sprite-height:210px}.result-stamp{bottom:10px;font-size:11px}.result-stamp b{font-size:25px}.result-copy h1{font-size:28px}.footer{font-size:9px;min-height:65px}.footer>span:last-of-type{font-size:7px}.gallery .section-top{flex-direction:column}.outfit-grid{gap:12px}.outfit-grid figure{min-width:95px;--sprite-height:145px}.wardrobe-group{padding:18px}.wardrobe-group h2 small{display:block;margin:6px 0 0}.intro-panel{min-height:650px;padding-top:60px}.intro-panel h1{font-size:29px}.journey{gap:14px}.journey span{font-size:10px}.journey b{font-size:17px}.hero h1 i{font-size:30px;right:-30px}}
@media(max-width:450px){.edition{display:none}.text-button{margin-left:auto}.hero h1{font-size:60px}.hero-description{font-size:12px}.hero-art{height:350px}.hero-sprites{gap:22px;bottom:98px}.hero-art:before{width:260px;height:260px;top:15px}.orbit{width:290px;height:290px}.orbit-two{width:230px;height:230px;top:35px}.star-two{font-size:30px}.podium span{font-size:6px}.hero-actions{gap:0}.hero-actions .button{padding:14px 16px;font-size:11px}.title-strip{gap:10px}.title-strip>span{flex-direction:column;gap:5px;font-size:8px}.route-select{padding-top:32px}.route-card{grid-template-columns:40% 60%}.route-sprites{gap:10px;--sprite-height:128px}.route-sprites .sprite:first-child{--sprite-height:135px}.route-art{height:245px}.route-tag{font-size:7px;right:10px;top:52px}.route-number{font-size:23px;left:13px}.route-copy{padding:19px 13px}.route-copy h2{font-size:17px}.route-copy p{font-size:10px}.route-cta{font-size:9px;margin-top:16px;padding-top:14px}.route-art-note{font-size:7px}.section-top h1{font-size:23px}.section-top p:not(.eyebrow){font-size:11px}.collection-count{font-size:22px}.collection-count span{font-size:6px}.scene{height:300px}.scene-cast{left:10%;right:10%;bottom:32px;gap:25px}.actor:first-child{--sprite-height:190px}.actor:last-child{--sprite-height:200px}.actor:has(.sprite[data-character$="link"]){--sprite-height:205px}.actor:has(.sprite[data-character="totk_link"]){--sprite-height:210px}.scene-top{left:13px;right:13px;top:13px;font-size:8px}.dialogue-box{padding:20px 18px 13px}.dialogue-text{font-size:13px;min-height:75px}.dialogue-bottom>span{font-size:8px}.day-label{display:none}.choices button{font-size:11px}.choices small{font-size:8px;padding-left:25px}.scene-caption{font-size:7px;left:13px}.stage-banner{font-size:6px;right:12px}.result-actions .button{padding:14px;font-size:11px}.loading h1{font-size:24px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* 三人共通の活動画面と、独立したふたりの思い出を表示します。 */
.campaign,.summary-panel{padding:40px 0;min-height:650px}.campaign h1 small{font-size:14px;font-weight:400;color:var(--muted)}.training-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px}.team-stage{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:35px;min-height:290px;padding:32px 16px 20px;border-radius:5px;border:1px solid var(--line);overflow:hidden}.team-member{display:flex;align-items:center;flex-direction:column;justify-content:flex-end;--sprite-height:185px}.team-member.totk{--sprite-height:211px}.team-member p{font-size:10px;margin-top:15px;border-bottom:3px solid;padding-bottom:6px}.team-member.botw p{border-color:#216681}.team-member.totk p{border-color:#4b967c}.team-member.aoc p{border-color:#8c485b}.team-stage.stage p{color:#fff}.hero-person.center{--sprite-height:181px}.lilac{--route-color:#eadfe0;--route-dark:#8c485b}.team-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:25px 0}.manager-note{padding:20px;background:var(--peach);border-left:3px solid #e4789b;border-radius:3px;margin:20px 0;font-size:13px;line-height:1.9}.manager-note strong{font-size:11px}.manager-note p{margin:7px 0 14px}.manager-note p:last-child{margin-bottom:0}.activity-panel{padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:5px}.activity-panel h2{font-size:20px;margin-bottom:10px}.activities{display:grid;gap:10px;margin:18px 0}.activities button{text-align:left;border:1px solid #d8ddcf;border-radius:4px;background:#f2f4e9;padding:15px;min-height:65px}.activities strong,.activities small{display:block}.activities small{font-size:11px;margin-top:6px;color:var(--muted)}.last-result{font-size:12px;line-height:1.8;border-top:1px solid var(--line);padding-top:18px}.last-result h3{font-size:12px;margin:0 0 8px}.fatigue-warning,.save-notice{padding:14px;background:#f3e2cf;color:#694126;font-size:12px;line-height:1.8}.save-notice{margin-top:18px}.panel-actions{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0}.summary-panel{max-width:900px;margin:auto}.summary-panel h1{margin:14px 0 26px;font-size:30px}.summary-panel>p{line-height:1.9}.summary-results{display:grid;gap:12px;padding:20px 0;font-size:14px}.memory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.memory-card{padding:22px;text-align:left;background:var(--pink);border:1px solid var(--line);border-radius:4px;min-height:145px}.memory-card span,.memory-card strong,.memory-card small{display:block;line-height:1.8}.memory-card span,.memory-card small{font-size:11px}.memory-card strong{margin:10px 0}.memory-card:disabled{opacity:.65;cursor:default;background:#f3edf0}.memory-card:disabled:hover{transform:none}.epilogues{display:grid;gap:15px;margin-top:20px}.epilogues article{border:1px solid var(--line);padding:20px;font-size:13px;line-height:1.9}.epilogues h3{font-size:14px;margin:0 0 10px}.ending-description{margin:18px 0}.asset-fallback{display:flex;align-items:center;justify-content:center;min-height:120px;padding:20px;font-size:11px;background:var(--peach);border:1px dashed #b0748b}.sprite.image-missing{height:var(--sprite-height);min-width:90px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;background:var(--peach)}.intro-panel .panel-actions{justify-content:center}.intro-panel>p{margin:20px 0}.hero-actions{flex-wrap:wrap}.hero-actions .button{gap:15px}input[type=file]{max-width:100%;font:inherit;font-size:12px}.day-panel h2{line-height:1.9}.dialogue-bottom{flex-wrap:wrap;gap:12px}.topbar .brand{flex-shrink:0}
@media(max-width:900px){.training-grid{grid-template-columns:1fr}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-stage{gap:24px}.team-stats{gap:12px}.team-stats .stat b{font-size:18px}}
@media(max-width:450px){.team-stage{gap:20px;min-height:235px;padding:24px 10px 16px}.team-member{--sprite-height:135px}.team-member.totk{--sprite-height:155px}.team-member p{font-size:8px}.team-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.activity-panel{padding:18px}.memory-grid{grid-template-columns:1fr}.summary-panel h1{font-size:25px}.campaign,.summary-panel{padding-top:28px}.hero-person.center{--sprite-height:174px}.panel-actions .button{gap:10px}.dialogue-bottom .subtle{font-size:10px}.choices button{min-height:48px}.brand{letter-spacing:.02em}.edition{display:none}}

/* 狭幅では二つの間隔だけを詰め、画像寸法とラベルの折り返しを保ちます。 */
@media(max-width:360px){.team-stage{gap:clamp(7px,calc(50vw - 161px),20px)}}

/* 狭いタイトルでは星と三人の間隔だけを内側へ寄せ、ロゴと画像寸法を保ちます。 */
@media(max-width:340px){.hero h1 i{right:-26px}.hero-sprites{gap:19px}}

.memory-section{margin:32px 0}.memory-section>h2{margin-bottom:18px;font-size:23px}.couple-memories{margin:24px 0}.couple-memories>h3{font-size:16px;margin-bottom:14px}.memory-card:focus-visible{outline:3px solid var(--ink);outline-offset:4px}

/* 評価案内と活動の役割は、進行を変えない補足情報です。 */
.debut-guidance{margin:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;line-height:1.9}
.debut-guidance summary{padding:12px 0;min-height:44px;cursor:pointer;font-weight:700}
.debut-guidance summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
.debut-guidance p,.debut-guidance ul{margin:0 0 14px}.debut-guidance ul{padding-left:1.5em}
.activity-role{display:block;margin-top:6px;font-size:12px;line-height:1.7}

/* 全面の活動イラストに、読める淡色の説明面を重ねます。 */
.activity-illustration{display:block;position:relative;width:100%;aspect-ratio:1672/941;overflow:hidden;border-radius:4px;background:var(--peach)}
.activity-illustration img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.activity-illustration img[hidden],.activity-image-fallback[hidden]{display:none}
.activity-image-fallback{position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:center;padding:20px 8px;font-size:12px;color:var(--ink);background:var(--peach);text-align:center}
.activities{gap:10px}
.activities .activity-banner{position:relative;isolation:isolate;display:flex;align-items:flex-end;width:100%;min-width:0;min-height:132px;aspect-ratio:auto;padding:26px 8px 8px;border:2px solid #d7a6b7;border-radius:10px;overflow:hidden;background:var(--peach);box-shadow:0 3px 0 #efd6de;text-align:left}
.activity-banner>.activity-illustration{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;z-index:-2;border-radius:0}
.activity-banner .activity-illustration img{object-fit:cover}
.activity-banner::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,transparent 35%,#fff0e228)}
.activity-banner>*{pointer-events:none}
.activities .activity-banner:hover{border-color:var(--coral);box-shadow:0 5px 0 #e9bfd0;transform:translateY(-2px)}
.activities .activity-banner:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
.activity-copy{display:block;width:100%;min-width:0;padding:6px 8px;border:1px solid #fff6;border-radius:7px;background:#fffcfad6;color:var(--ink);line-height:1.6;overflow-wrap:anywhere;box-shadow:0 2px 8px #58334912}
.activities strong{font-size:14px}.activity-role{margin-top:2px;font-size:11px;line-height:1.5}
.activities small{font-size:11px;color:var(--ink);margin-top:5px;line-height:1.8}
.activities .selected-this-week{border-color:#a9436c;box-shadow:0 0 0 2px #ffe0b6,0 3px 0 #e9bfd0}
.selected-this-week::after{background:#f6a8bc4d}
.selected-this-week .activity-copy{background:#fff1f7e0}
.selection-badge{position:absolute;top:4px;right:6px;max-width:calc(100% - 12px);padding:2px 8px;background:#fff2cf;color:#694319;border:1px solid #ac7a31;border-radius:20px;font-size:11px;font-weight:800}
#app[aria-busy=true] .activity-banner{cursor:progress;box-shadow:none;border-style:dashed}
#app[aria-busy=true] .activity-banner::before{content:"記録中…";position:absolute;top:10px;left:10px;z-index:2;padding:5px 10px;border-radius:20px;background:var(--surface);color:var(--ink);font-size:11px;font-weight:700}
.weekly-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;margin:12px 0;background:var(--butter);border:1px solid #e6cb89;border-radius:6px;font-size:12px;color:var(--ink)}
.weekly-progress b{white-space:nowrap;font-size:15px;color:#75451c}
@media(max-width:1100px){.training-grid{grid-template-columns:minmax(0,1fr)}.activities{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1101px){.training-overview{position:sticky;top:16px;align-self:start}}
@media(max-width:600px){.activities{grid-template-columns:minmax(0,1fr)}}
@media(max-width:450px){.activity-panel{padding:16px 0;background:transparent;border:0}.activities .activity-banner{min-height:132px;padding:26px 8px 8px}.activity-copy{padding:6px 8px}.selection-badge{font-size:10px}}

/* ステータスは名称・数値と同じ色を全画面で共有します。 */
[data-stat=vocal]{--stat-color:var(--vocal);--stat-ink:#923653}
[data-stat=dance]{--stat-color:var(--dance);--stat-ink:#61458f}
[data-stat=popularity]{--stat-color:var(--popularity);--stat-ink:#795112}
[data-stat=fatigue]{--stat-color:var(--fatigue);--stat-ink:#28617c}
.stat>div>span::before{content:"";display:inline-block;width:7px;height:7px;margin-right:5px;background:var(--stat-color);border-radius:2px}
.stat>div>span{color:var(--stat-ink);font-weight:700}
.stat-caution{outline:2px solid #a85d21;outline-offset:4px;border-radius:3px}
.effect-chip{color:var(--stat-ink);font-weight:650}
.stat-hud{margin:0;padding:14px 12px;gap:14px;background:var(--surface);border:1px solid var(--line);border-bottom:3px solid #edcbd7;border-radius:9px 9px 0 0}
.stat-hud .stat{margin:0;min-width:0}.stat-hud .stat>div{gap:5px;flex-wrap:wrap;font-size:11px}.stat-hud .stat b{font-size:15px}
.raising-scene{position:relative}
.raising-team .team-stage{border-radius:0 0 9px 9px;min-height:430px;padding:110px 18px 24px;gap:40px}
.raising-team .team-member{--sprite-height:260px}.raising-team .team-member.totk{--sprite-height:296px}
.activity-delta{position:absolute;top:14px;right:14px;max-width:calc(100% - 28px);padding:10px 14px;background:#fffaf2e8;border:1px solid #e8c7d3;border-radius:8px;box-shadow:0 3px 12px #58334912;font-size:12px;line-height:1.8}
.activity-delta strong{display:block;margin-bottom:3px;font-size:12px}.activity-delta p{overflow-wrap:anywhere}
.summary-panel{max-width:1080px}.summary-panel .raising-team+.manager-note{margin-top:18px}
@media(min-width:601px) and (max-width:800px){.raising-team .team-stage{gap:28px}.raising-team .team-member{--sprite-height:220px}.raising-team .team-member.totk{--sprite-height:250px}}
@media(max-width:600px){.raising-team .team-stage{min-height:310px;padding:110px 10px 18px;gap:14px}.raising-team .team-member{--sprite-height:155px}.raising-team .team-member.totk{--sprite-height:178px}.activity-delta{top:10px;right:10px;max-width:calc(100% - 20px);padding:8px 10px}}
@media(max-width:360px){.raising-team .team-stage{gap:8px}.raising-team .team-member{--sprite-height:140px}.raising-team .team-member.totk{--sprite-height:160px}}
.activity-feedback-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:1100px) and (min-width:901px){.stat-hud{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:450px){.stat-hud{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:12px}.stat-hud .stat b{font-size:16px}}

/* UIだけをピンク・桃・アイボリーで整え、承認画像には色を重ねません。 */
.topbar,.footer{border-color:#e8cbd5}.topbar{background:linear-gradient(90deg,transparent,#ffe8f055,transparent)}
.footer{flex-wrap:wrap;padding:20px 0;row-gap:14px}.footer-notice{flex-basis:100%;margin-top:36px;padding-bottom:12px;font-size:inherit;line-height:1.8;overflow-wrap:anywhere;text-align:center;color:#7a7079}

/* 六人を三組にまとめ、初期衣装と紹介文を一枚ずつ表示します。 */
.character-introductions{max-width:1080px;margin-inline:auto}
.character-pairs{display:grid;gap:36px}
.character-pair{display:grid;gap:16px;--profile-tint:#eaf2e9;--profile-accent:#306650}
.character-pair[data-world=botw]{--profile-tint:#eaf3fa;--profile-accent:#216681}
.character-pair[data-world=aoc]{--profile-tint:#fbecef;--profile-accent:#934655}
.character-pair-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 16px;font-size:19px;color:var(--profile-accent);padding:0 4px 10px;border-bottom:1px solid var(--line)}
.character-pair-heading span{font-size:12px;font-weight:500;color:var(--muted)}
.character-profile{display:grid;grid-template-columns:230px minmax(0,1fr);border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.character-portrait{display:flex;justify-content:center;align-items:center;min-width:0;padding:28px 20px;background:linear-gradient(145deg,var(--profile-tint),var(--peach));--sprite-height:280px}
.character-portrait .image-missing,.character-portrait .asset-fallback{font-size:12px;line-height:1.8;color:var(--muted)}
.character-biography{padding:28px 30px;min-width:0;align-self:center}
.character-affiliation{font-size:12px;line-height:1.7;color:var(--muted);margin-bottom:6px}
.character-biography h3{font-size:22px;color:var(--profile-accent);margin-bottom:16px;line-height:1.5}
.character-bio-text{font-size:14px;line-height:1.95;overflow-wrap:anywhere}
.character-bio-text p+p{margin-top:6px}
@media(max-width:800px){.character-profile{grid-template-columns:190px minmax(0,1fr)}.character-portrait{padding:24px 12px;--sprite-height:250px}.character-biography{padding:24px 20px}}
@media(max-width:600px){.character-profile{grid-template-columns:minmax(0,1fr)}.character-portrait{--sprite-height:240px;padding:24px 16px}.character-biography{padding:22px 18px}.character-biography h3{font-size:21px}.character-pairs{gap:30px}}
.hero h1 span{color:#974563}.hero-art:before{background:linear-gradient(145deg,var(--pink),var(--butter))}
.intro-panel{background:radial-gradient(ellipse at 50% 20%,#ffe8f080,transparent 65%)}
.journey span{padding:8px 10px;background:var(--butter);border-radius:6px}
.secondary{background:var(--surface);border-color:#bf849d}.quiet:hover,.secondary:hover{background:var(--pink)}
.activity-panel,.wardrobe-group,.day-panel,.epilogues article{background:var(--surface);border-radius:9px}
.manager-note{background:linear-gradient(110deg,var(--peach),#fff5e8);border-left-color:#d77598;border-radius:6px}
.memory-card{background:var(--pink);border-color:#ddb5c6}.memory-card:hover{background:#ffdde9}.memory-card:disabled{opacity:1;color:var(--muted);background:#f4edf1}
.wardrobe-group:nth-child(even) .outfit-grid figure{background:var(--lilac)}
.dialogue-box{background:var(--surface);border-color:var(--line)}.choices button{background:var(--peach);border-color:#d4acb7}.choices button:hover{background:var(--pink)}
.debut-guidance{background:#fff2cf66}.debut-guidance summary{padding-inline:10px}.debut-guidance p,.debut-guidance ul{margin-inline:10px}
.fatigue-warning,.save-notice{border:1px solid #bd8a54;background:#fff0d5;color:#694126;border-radius:6px}
@media(max-width:450px){.activity-panel{background:transparent}.journey{gap:8px}.journey span{padding:7px 6px}}

/* 保存済みの一回だけを、三人そろった約一秒の動きで伝えます。 */
.activity-feedback .team-member .sprite{animation-duration:1000ms;animation-timing-function:ease-in-out;animation-iteration-count:1}
.activity-feedback[data-feedback=vocalPractice] .sprite{animation-name:sing-bounce}
.activity-feedback[data-feedback=dancePractice] .sprite{animation-name:dance-step}
.activity-feedback[data-feedback=ensemblePractice] .sprite{animation-name:ensemble-bounce}
.activity-feedback[data-feedback=fanActivity] .sprite{animation-name:fan-cheer}
.activity-feedback[data-feedback=rest] .sprite{animation-name:rest-sway}
.activity-feedback::after{content:"✦";position:absolute;top:8px;left:12px;color:#803753;background:#fff2cfee;padding:3px 8px;border-radius:12px;font-size:17px;pointer-events:none;animation:feedback-sparkle 1000ms ease-out both}
.activity-feedback[data-feedback=vocalPractice]::after{content:"♪"}.activity-feedback[data-feedback=fanActivity]::after{content:"♡"}.activity-feedback[data-feedback=rest]::after{content:"☁";color:#28617c}
@keyframes sing-bounce{0%,100%{transform:translateY(0)}25%,65%{transform:translateY(-7px)}45%,85%{transform:translateY(0)}}
@keyframes dance-step{0%,100%{transform:translate(0,0)}20%{transform:translate(-3px,-12px)}40%{transform:translate(0,0)}65%{transform:translate(3px,-12px)}85%{transform:translate(0,0)}}
@keyframes ensemble-bounce{0%,100%{transform:translateY(0)}30%,70%{transform:translateY(-10px)}50%{transform:translateY(-2px)}}
@keyframes fan-cheer{0%,100%{transform:translate(0,0)}25%{transform:translate(2px,-9px)}50%{transform:translate(0,0)}75%{transform:translate(-2px,-6px)}}
@keyframes rest-sway{0%,100%{transform:translate(0,0)}30%{transform:translate(-2px,1px)}70%{transform:translate(2px,1px)}}
@keyframes feedback-sparkle{0%{opacity:0;transform:translateY(4px)}25%,70%{opacity:1}100%{opacity:0;transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.activity-feedback .sprite,.activity-feedback::after{animation:none!important}.activity-feedback::after{display:none}}
.debut-reason{font-size:13px;line-height:1.9;margin:18px 0}

/* 承認済み背景は場面ごとに一枚だけ表示し、文字の下地と既存の人物配置を保ちます。 */
.approved-background{background-size:cover;background-position:center;background-repeat:no-repeat;background-color:#dce6df}
.scene.approved-background .location,.scene.approved-background .clock,.scene.approved-background .scene-caption{background:#fafbf2ed;color:#19343a;border-radius:2px}
.scene.approved-background .clock{padding:7px 9px}
.scene.approved-background .scene-caption{padding:3px 7px;max-width:calc(100% - 42px)}
.team-stage.approved-background .team-member p{background:#fafbf2ed;color:#19343a;border-radius:2px;box-shadow:0 0 0 4px #fafbf2ed}

/* 週の代表背景だけを人物の後ろに重ね、未読込・失敗時は元のスタジオを見せます。 */
.raising-team .team-stage{isolation:isolate}
.team-activity-background{position:absolute;inset:0;z-index:-1;pointer-events:none}
.team-activity-background img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;image-rendering:pixelated}
.team-activity-background::after{content:"";position:absolute;inset:0;background:#fff8f21f}
.team-activity-background.background-enter{animation:activity-background-in 400ms ease-out both}
.weekly-activity-order{font-size:12px;line-height:1.8;color:var(--muted);margin:14px 0;overflow-wrap:anywhere}
@keyframes activity-background-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.team-activity-background.background-enter{animation:none}}
