.campus-page{background:var(--cream);min-height:100vh}.campus-header{height:90px;display:flex;align-items:center;justify-content:space-between}.campus-back{font-size:12px;color:var(--teal);font-weight:700}.campus-shell{padding-top:28px;padding-bottom:80px}.campus-kicker{font:700 10px 'Plus Jakarta Sans';letter-spacing:.15em;color:#91a49d}.campus-intro{min-height:650px;display:grid;grid-template-columns:1fr 410px;gap:100px;align-items:center}.campus-intro-copy h1{font-size:clamp(52px,7vw,90px);line-height:1.08;letter-spacing:-.09em;margin:20px 0 28px}.campus-intro-copy h1 em{font-style:normal;color:var(--orange)}.campus-intro-copy>p{max-width:475px;color:var(--ink-soft);font-size:15px;line-height:2;margin:0}.campus-rule{display:flex;align-items:center;gap:17px;margin-top:44px;padding-top:17px;border-top:1px solid var(--line);max-width:475px;color:var(--ink-soft);font-size:11px}.campus-rule span{color:var(--orange);font:700 10px 'Plus Jakarta Sans';letter-spacing:.1em}.setup-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:27px 28px;box-shadow:var(--shadow)}.setup-card-head,.event-meta,.sim-head{display:flex;justify-content:space-between;align-items:center}.setup-card-head{font:700 9px 'Plus Jakarta Sans';letter-spacing:.12em;color:#91a49d;margin-bottom:30px}.setup-card-head i{font-style:normal;color:var(--orange)}.setup-card label{display:block;color:var(--teal);font-size:11px;font-weight:700;margin:19px 0}.setup-card input,.setup-card select{display:block;width:100%;height:46px;border:1px solid #dcebe6;border-radius:7px;background:#fbfdfc;color:var(--ink);font:13px 'Noto Sans SC';padding:0 13px;margin-top:9px;outline:none}.setup-card input:focus,.setup-card select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,103,93,.08)}.campus-primary{border:0;background:var(--teal);color:#fff;border-radius:7px;padding:15px 18px;font-size:12px;font-weight:700;box-shadow:0 10px 25px rgba(13,103,93,.18);transition:.2s}.campus-primary:hover{background:var(--teal-dark);transform:translateY(-2px)}.campus-primary span{font-size:18px;margin-left:22px;font-weight:400}.setup-card .campus-primary{width:100%;margin-top:22px}.simulation{padding-top:38px}.sim-head{border-bottom:1px solid var(--line);padding-bottom:25px}.sim-head h2{font-size:34px;letter-spacing:-.06em;margin:13px 0 0}.day-counter{display:flex;align-items:baseline;gap:7px;color:#8ca19a}.day-counter strong{font:800 54px/.9 'Plus Jakarta Sans';color:var(--orange);letter-spacing:-.08em}.day-counter small{font-size:11px}.sim-layout{display:grid;grid-template-columns:245px 1fr;gap:20px;margin-top:28px}.player-panel{background:#e5f3ee;border-radius:12px;padding:25px 22px;min-height:610px}.avatar-orb{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;background:var(--orange);color:#fff;font:800 35px 'Plus Jakarta Sans';box-shadow:0 15px 25px rgba(232,149,108,.25)}.player-panel h3{font-size:22px;margin:20px 0 5px;letter-spacing:-.04em}.player-panel>p{font-size:10px;color:#78948b;line-height:1.7;margin:0 0 30px}.stat-list{display:grid;gap:16px;border-top:1px solid #c8e1d8;padding-top:22px}.stat{display:grid;grid-template-columns:36px 1fr 24px;align-items:center;gap:8px;font-size:10px;color:#63857b}.stat>div{height:6px;background:#cce3db;border-radius:5px;overflow:hidden}.stat i{display:block;width:var(--value);height:100%;border-radius:5px;background:var(--teal)}.stat:nth-child(2) i,.stat:nth-child(4) i{background:var(--orange)}.stat b{color:var(--teal);font:700 10px 'Plus Jakarta Sans';text-align:right}.inventory{border-top:1px solid #c8e1d8;margin-top:28px;padding-top:19px}.inventory>span{display:block;font:700 9px 'Plus Jakarta Sans';letter-spacing:.1em;color:#78978d;margin-bottom:12px}.inventory div{display:grid;gap:7px}.inventory em{font-style:normal;font-size:10px;color:#5d7c73;line-height:1.5}.event-panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 35px;min-height:610px;position:relative}.event-meta{font:700 9px 'Plus Jakarta Sans';letter-spacing:.12em;color:#91a49d}.event-meta span:last-child{color:var(--orange)}.event-scene{font-size:72px;color:#b8ded2;margin:35px 0 10px;line-height:1}.event-panel h3{font-size:30px;letter-spacing:-.06em;line-height:1.25;margin:0 0 15px;color:var(--teal)}.event-panel>p{font-size:13px;line-height:2;color:var(--ink-soft);max-width:620px;margin:0 0 25px}.choices{display:grid;gap:9px;max-width:700px}.choice{width:100%;text-align:left;display:flex;align-items:center;gap:14px;border:1px solid #e1eee9;background:#fbfdfc;border-radius:8px;padding:14px 16px;color:#365b53;font-size:12px;transition:.18s}.choice:hover{border-color:#8fc2b4;background:#eef8f4;transform:translateX(4px)}.choice b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#e4f1ed;color:var(--teal);font:700 11px 'Plus Jakarta Sans';flex:none}.choice span{flex:1}.choice i{font-style:normal;color:var(--orange);font-size:17px}.event-log{border-top:1px solid var(--line);margin-top:28px;padding-top:15px}.event-log>span{font:700 9px 'Plus Jakarta Sans';letter-spacing:.1em;color:#91a49d}.event-log p{font-size:10px;color:#8aa097;line-height:1.7;margin:8px 0 0}.ending{max-width:700px;text-align:center;margin:120px auto 90px}.ending-seal{width:100px;height:100px;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;margin:30px auto 26px;font:800 27px 'Plus Jakarta Sans';box-shadow:0 16px 30px rgba(232,149,108,.25);transform:rotate(-9deg)}.ending h2{font-size:46px;letter-spacing:-.08em;margin:0 0 18px;color:var(--teal)}.ending>p{font-size:14px;line-height:2;color:var(--ink-soft);margin:0 auto;max-width:560px}.ending-stats{display:flex;justify-content:center;gap:45px;margin:38px 0}.ending-stats div{display:flex;flex-direction:column;gap:6px}.ending-stats b{font:800 27px 'Plus Jakarta Sans';color:var(--orange)}.ending-stats span{font-size:10px;color:#8aa097}.ending-actions{display:flex;justify-content:center;align-items:center;gap:20px}.campus-ghost{border:1px solid #b5d0c6;color:var(--teal);border-radius:7px;padding:14px 19px;font-size:12px;font-weight:700}
@media (max-width:800px){.campus-header{height:74px;padding:0 20px}.campus-header .brand-divider,.campus-header .brand-subtitle{display:none}.campus-back{font-size:11px}.campus-shell{padding-top:0}.campus-intro{display:block;min-height:0;padding:50px 0 45px}.campus-intro-copy h1{font-size:58px}.campus-intro-copy>p{font-size:14px}.campus-rule{margin-top:30px}.setup-card{margin-top:38px;padding:23px 20px}.sim-head{align-items:flex-end}.sim-head h2{font-size:26px}.day-counter strong{font-size:43px}.sim-layout{display:block}.player-panel{min-height:0;margin-bottom:14px}.avatar-orb{width:55px;height:55px;font-size:25px;float:left;margin-right:15px}.player-panel h3{padding-top:7px;margin:0}.player-panel>p{margin-bottom:22px}.stat-list{clear:both;grid-template-columns:1fr 1fr;gap:13px 18px}.inventory{margin-top:19px}.event-panel{padding:22px 19px;min-height:590px}.event-scene{font-size:56px;margin-top:27px}.event-panel h3{font-size:25px}.event-panel>p{font-size:12px}.ending{margin:80px auto}.ending h2{font-size:37px}.ending-stats{gap:22px}}

/* Expanded character creator and lively AI-generation state */
.campus-intro{min-height:760px;grid-template-columns:minmax(0,1fr) 560px;gap:70px}.setup-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.setup-grid .setup-wide{grid-column:1/-1}.setup-card label{margin:13px 0}.setup-card input,.setup-card select{height:43px;margin-top:7px;font-size:12px}.setup-card .campus-primary{margin-top:17px}.event-panel.is-generating{overflow:hidden}.event-panel.is-generating .event-scene{animation:orbit-pulse 1.2s ease-in-out infinite}.typing-cursor:after{content:'｜';color:var(--orange);font-weight:400;animation:cursor-blink .7s steps(1) infinite}.choice.is-revealing{animation:choice-in .35s ease both}.choice.is-revealing:nth-child(2){animation-delay:.08s}.choice.is-revealing:nth-child(3){animation-delay:.16s}.choice-skeleton{height:55px;border-radius:8px;background:linear-gradient(90deg,#eef5f2 25%,#f9fbfa 45%,#eef5f2 65%);background-size:220% 100%;animation:skeleton-scan 1.15s linear infinite}.generation-note{display:flex;align-items:center;gap:9px;color:#8ca19a;font-size:10px;margin-bottom:14px}.generation-note i{width:7px;height:7px;border-radius:50%;background:var(--orange);animation:orbit-pulse 1s ease-in-out infinite}@keyframes cursor-blink{50%{opacity:0}}@keyframes skeleton-scan{to{background-position:-220% 0}}@keyframes orbit-pulse{50%{transform:scale(1.08);opacity:.55}}@keyframes choice-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:800px){.campus-intro{display:block;min-height:0;padding:50px 0 45px}.setup-grid{grid-template-columns:1fr}.setup-grid .setup-wide{grid-column:auto}.setup-card label{margin:14px 0}.event-panel.is-generating{min-height:590px}}
@media (prefers-reduced-motion:reduce){.typing-cursor:after,.choice.is-revealing,.choice-skeleton,.event-panel.is-generating .event-scene,.generation-note i{animation:none}}
.choice.is-revealing:nth-child(4){animation-delay:.24s}
.setup-card{padding:32px 34px}.setup-card-head{font-size:11px;margin-bottom:26px}.setup-grid{gap:4px 18px}.setup-card label{font-size:13px;line-height:1.45;margin:15px 0}.setup-card input,.setup-card select{height:50px;font-size:14px;padding:0 14px;border-radius:8px}.setup-card textarea{display:block;width:100%;min-height:88px;border:1px solid #dcebe6;border-radius:8px;background:#fbfdfc;color:var(--ink);font:14px/1.7 'Noto Sans SC';padding:10px 14px;margin-top:7px;resize:vertical;outline:none}.setup-card textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(13,103,93,.08)}.setup-card .campus-primary{font-size:14px;padding:17px 20px;margin-top:22px}.setup-card .campus-primary span{font-size:20px}.setup-card label:has(select#player-race){color:var(--orange)}.setup-card label:has(select#player-race) select{border-color:#efc5ad}.setup-card label.is-muted{opacity:.55}.setup-card label.is-muted input{background:#f2f6f4}.setup-card label.is-muted:after{content:'选择“自定义种族”后填写';display:block;color:#94a8a1;font-size:10px;font-weight:400;margin-top:4px}
@media (max-width:1050px) and (min-width:801px){.campus-intro{grid-template-columns:1fr;gap:42px}.setup-card{max-width:760px;width:100%;margin:0 auto}}
@media (max-width:800px){.setup-card{padding:25px 21px}.setup-card-head{font-size:10px}.setup-card label{font-size:13px}.setup-card input,.setup-card select{height:49px;font-size:14px}.setup-card textarea{font-size:14px}}

/* Final type and mobile pass: readable Chinese, generous touch targets, no narrow-screen squeeze */
.campus-page,
.campus-page button,
.campus-page input,
.campus-page select,
.campus-page textarea{font-family:'Noto Sans SC Local','Noto Sans SC','Microsoft YaHei UI','Microsoft YaHei',sans-serif}
.campus-page .campus-kicker,
.campus-page .setup-card-head,
.campus-page .campus-rule span,
.campus-page .event-meta,
.campus-page .event-log>span{font-family:'Segoe UI','Noto Sans SC Local','Microsoft YaHei UI',sans-serif}
.campus-page .campus-intro-copy h1,
.campus-page .sim-head h2,
.campus-page .event-panel h3,
.campus-page .ending h2{letter-spacing:-.045em}
.campus-page button,
.campus-page a{-webkit-tap-highlight-color:transparent}
.campus-page .campus-primary,
.campus-page .campus-ghost{min-height:50px}

@media (max-width:800px){
  .campus-shell,
  .campus-intro,
  .campus-intro-copy,
  .setup-card,
  .setup-grid,
  .setup-grid>*{min-width:0;max-width:100%}
  .setup-card input,
  .setup-card select,
  .setup-card textarea{min-width:0;max-width:100%}
  .campus-header{height:68px;padding:0 16px}
  .campus-header .brand{gap:7px;min-width:0}
  .campus-header .school-crest{width:27px;height:27px}
  .campus-header .brand-word{font-size:15px}
  .campus-back{font-size:12px;white-space:nowrap}
  .campus-shell{padding:0 16px 52px}
  .campus-intro{padding:34px 0 28px}
  .campus-intro-copy h1{font-size:clamp(40px,11.5vw,52px);line-height:1.12;letter-spacing:-.06em;margin:15px 0 20px;overflow-wrap:anywhere}
  .campus-intro-copy>p{font-size:15px;line-height:1.9}
  .campus-rule{align-items:flex-start;flex-direction:column;gap:7px;margin-top:26px;padding-top:14px;font-size:12px;line-height:1.6}
  .setup-card{margin-top:26px;padding:22px 16px;border-radius:16px}
  .setup-card-head{font-size:10px;margin-bottom:20px}
  .setup-grid{gap:0}
  .setup-card label{font-size:14px;line-height:1.5;margin:13px 0}
  .setup-card input,
  .setup-card select{height:52px;font-size:16px;line-height:1.3;padding:0 13px;border-radius:10px}
  .setup-card textarea{min-height:104px;font-size:16px;line-height:1.7;padding:10px 13px;border-radius:10px}
  .setup-card .campus-primary{font-size:15px;min-height:54px;padding:15px 16px;margin-top:20px;border-radius:10px}
  .setup-card .campus-primary span{margin-left:13px}
  .simulation{padding-top:20px}
  .sim-head{align-items:flex-start;gap:14px;padding-bottom:18px}
  .sim-head h2{font-size:25px;line-height:1.35;margin-top:8px}
  .day-counter{gap:5px;flex:none;padding-top:8px}
  .day-counter strong{font-size:40px}
  .day-counter small{font-size:10px}
  .sim-layout{margin-top:16px}
  .player-panel{padding:17px 15px;border-radius:14px;margin-bottom:12px}
  .avatar-orb{width:52px;height:52px;font-size:23px;margin-right:12px}
  .player-panel h3{font-size:20px;padding-top:5px}
  .player-panel>p{font-size:12px;line-height:1.6;margin-bottom:17px}
  .stat-list{gap:12px 14px;padding-top:16px}
  .stat{grid-template-columns:34px 1fr 25px;gap:7px;font-size:12px}
  .stat>div{height:7px}
  .stat b{font-size:11px}
  .inventory{margin-top:18px;padding-top:15px}
  .inventory>span{font-size:10px;margin-bottom:9px}
  .inventory em{font-size:12px}
  .event-panel{padding:18px 15px 20px;min-height:0;border-radius:14px}
  .event-meta{align-items:flex-start;flex-wrap:wrap;gap:5px 10px;font-size:10px;line-height:1.4;letter-spacing:.06em}
  .event-meta span:last-child{margin-left:auto;text-align:right}
  .event-scene{font-size:52px;margin:25px 0 11px}
  .event-panel h3{font-size:25px;line-height:1.4;margin-bottom:12px}
  .event-panel>p{font-size:15px;line-height:1.9;margin-bottom:20px}
  .choices{gap:10px}
  .choice{min-height:56px;gap:10px;padding:13px 11px;font-size:14px;line-height:1.55;border-radius:10px}
  .choice b{width:27px;height:27px;font-size:11px}
  .choice i{font-size:19px}
  .event-log{margin-top:22px;padding-top:13px}
  .event-log>span{font-size:10px}
  .event-log p{font-size:12px;line-height:1.7;margin-top:7px}
  .generation-note{font-size:12px;margin-bottom:12px}
  .choice-skeleton{height:56px}
  .ending{margin:60px auto 30px}
  .ending-seal{width:82px;height:82px;margin:24px auto 20px;font-size:23px}
  .ending h2{font-size:32px;line-height:1.35}
  .ending>p{font-size:15px;line-height:1.9}
  .ending-stats{gap:12px;justify-content:space-between;margin:28px 0}
  .ending-stats b{font-size:24px}
  .ending-stats span{font-size:11px}
  .ending-actions{flex-direction:column;gap:10px}
  .ending-actions .campus-primary,
  .ending-actions .campus-ghost{width:100%;text-align:center}
}

@media (max-width:380px){
  .campus-header{padding:0 12px}
  .campus-back{font-size:11px}
  .campus-shell{padding-left:12px;padding-right:12px}
  .campus-intro-copy h1{font-size:40px}
  .sim-head h2{font-size:22px}
  .day-counter strong{font-size:35px}
  .event-panel h3{font-size:23px}
  .event-panel>p{font-size:14px}
  .choice{font-size:13px}
}

/* Slightly larger reading scale */
.campus-page .campus-intro-copy>p{font-size:16px}
.campus-page .setup-card label{font-size:14px}
.campus-page .event-panel>p{font-size:14px}
.campus-page .choice{font-size:14px}
.campus-page .player-panel>p{font-size:11px}
.campus-page .stat{font-size:11px}
.campus-page .event-log p{font-size:11px}

@media (max-width:800px){
  .campus-page .campus-intro-copy>p{font-size:16px}
  .campus-page .setup-card label{font-size:15px}
  .campus-page .event-panel h3{font-size:26px}
  .campus-page .event-panel>p{font-size:16px}
  .campus-page .choice{font-size:15px}
  .campus-page .player-panel>p{font-size:13px}
  .campus-page .stat{font-size:13px}
  .campus-page .event-log p{font-size:13px}
}

@media (max-width:380px){
  .campus-page .event-panel h3{font-size:24px}
  .campus-page .choice{font-size:14px}
}

/* Long-shot journal: old choices stay visible as the semester grows */
.journal-list{display:grid;gap:12px;margin-top:14px}
.journal-entry{padding:15px 16px;background:#fbfdfc;border:1px solid #e1eee9;border-radius:10px}
.journal-entry.is-incident{background:#fff8f3;border-color:#f0c9af}
.journal-entry-meta{display:flex;justify-content:space-between;gap:12px;color:#93a59f;font:700 10px/1.4 'Segoe UI','Noto Sans SC Local',sans-serif;letter-spacing:.04em}
.journal-entry.is-incident .journal-entry-meta span{color:var(--orange)}
.journal-entry h4{margin:9px 0 8px;color:var(--teal);font-size:15px;line-height:1.55}
.journal-entry p{margin:4px 0;color:#6e8980;font-size:12px;line-height:1.7}
.journal-entry p strong{color:#4c7065}
.journal-entry .journal-result{color:#8a7061}
.semester-finish-note{display:flex;flex-direction:column;gap:5px;padding:15px 16px;border:1px solid #efc5ad;background:#fff8f3;border-radius:10px;color:#8b6758;font-size:12px;line-height:1.7}
.semester-finish-note strong{color:var(--orange);font-size:14px}

@media (max-width:800px){
  .journal-list{gap:10px;margin-top:12px}
  .journal-entry{padding:13px 12px;border-radius:9px}
  .journal-entry-meta{font-size:10px}
  .journal-entry h4{font-size:15px}
  .journal-entry p{font-size:13px;line-height:1.7}
  .semester-finish-note{font-size:13px}
}

.quota-note{margin:12px 0 0;color:#8b9c96;text-align:center;font-size:12px;line-height:1.6}
.quota-note.is-locked{color:#c47754;font-weight:700}
@media (max-width:800px){
  .quota-note{font-size:13px;margin-top:10px}
}

#story-feed{display:grid;gap:18px;margin-top:18px}
#story-feed .event-panel{min-height:0}
.story-event-panel .event-scene{margin-top:28px}
.story-event-panel .choice.is-selected{border-color:var(--teal);background:#eef8f4;box-shadow:0 4px 12px rgba(129,29,53,.08)}
.story-event-panel .choice:disabled{cursor:default;transform:none}
.story-event-panel .choice-result{margin-top:12px;padding:12px 14px;border-left:3px solid var(--orange);background:#fff8f3;color:#8b6758;border-radius:0 8px 8px 0;font-size:12px;line-height:1.7}
@media (max-width:800px){
  #story-feed{gap:13px;margin-top:13px}
  .story-event-panel .event-scene{margin-top:23px}
  .story-event-panel .choice-result{font-size:13px;padding:11px 12px}
}

.aptitude-picker{margin-top:22px;padding-top:18px;border-top:1px solid var(--line)}
.aptitude-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:13px}
.aptitude-head div{display:flex;flex-direction:column;gap:4px}
.aptitude-head strong{color:var(--teal);font-size:15px}
.aptitude-head span{color:#8b9c96;font-size:11px}
.aptitude-head>b{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#fff1e8;color:var(--orange);font:800 15px 'Segoe UI',sans-serif}
.aptitude-list{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px}
.aptitude-row{display:grid;grid-template-columns:minmax(0,1fr) 30px 24px 30px;align-items:center;gap:5px;padding:9px 8px;border:1px solid #e1eee9;border-radius:9px;background:#fbfdfc}
.aptitude-copy{display:flex;flex-direction:column;gap:3px;min-width:0}
.aptitude-copy strong{color:var(--teal);font-size:13px}
.aptitude-copy span{color:#8b9c96;font-size:10px;line-height:1.45}
.aptitude-step{width:30px;height:30px;border:1px solid #cfe3dc;border-radius:7px;background:#fff;color:var(--teal);font-size:20px;line-height:1}
.aptitude-step:hover:not(:disabled){border-color:var(--orange);color:var(--orange);background:#fff8f3}
.aptitude-step:disabled{opacity:.28;cursor:not-allowed}
.aptitude-value{text-align:center;color:var(--orange);font:800 15px 'Segoe UI',sans-serif}
@media (max-width:800px){
  .aptitude-picker{margin-top:20px;padding-top:17px}
  .aptitude-head strong{font-size:16px}
  .aptitude-head span{font-size:12px}
  .aptitude-list{grid-template-columns:1fr;gap:8px}
  .aptitude-row{grid-template-columns:minmax(0,1fr) 36px 28px 36px;padding:9px 8px}
  .aptitude-copy strong{font-size:14px}
  .aptitude-copy span{font-size:11px}
  .aptitude-step{width:36px;height:36px}
}

/* Timeline and game feedback inspired by life-simulator pacing */
#story-feed{position:relative;padding-left:26px}
#story-feed:before{content:'';position:absolute;left:7px;top:2px;bottom:2px;width:1px;background:linear-gradient(var(--orange),var(--line) 28%,var(--line))}
.story-event-panel:before{content:'';position:absolute;left:-25px;top:32px;width:11px;height:11px;border:3px solid var(--cream);border-radius:50%;background:var(--orange);box-shadow:0 0 0 1px #e7b18d}
.choice-result p{margin:0 0 9px}
.effect-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.effect-chip{display:inline-flex;align-items:center;min-height:24px;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:700}
.effect-chip.is-up{color:#337761;background:#e7f4ee}
.effect-chip.is-down{color:#a55252;background:#faeaea}
.effect-chip.is-item{color:#9b663f;background:#fff0e4}
.achievement-shelf{border-top:1px solid #c8e1d8;margin-top:20px;padding-top:17px}
.achievement-shelf>span{display:block;margin-bottom:10px;color:#78978d;font:700 10px 'Segoe UI','Noto Sans SC Local',sans-serif;letter-spacing:.08em}
.achievement-shelf>div{display:grid;gap:7px}
.achievement-shelf em{display:flex;align-items:center;gap:7px;color:#5d7c73;font-size:11px;font-style:normal;line-height:1.5}
.achievement-shelf em b{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#fff1e8;color:var(--orange);font-size:10px}
.achievement-shelf small{color:#91a49d;font-size:10px;line-height:1.5}
.ending-achievements{margin:0 auto 28px;max-width:560px;padding:19px 20px;border:1px solid var(--line);border-radius:12px;background:#fff}
.ending-achievements>strong{display:block;margin-bottom:13px;color:var(--teal);font-size:14px}
.ending-achievements>div{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.ending-achievements span{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#fff1e8;color:#8b6758;font-size:11px}
.ending-achievements span b{color:var(--orange)}
@media (max-width:800px){
  #story-feed{padding-left:18px}
  #story-feed:before{left:4px}
  .story-event-panel:before{left:-18px;top:27px;width:10px;height:10px}
  .effect-chip{font-size:11px;min-height:26px}
  .achievement-shelf em{font-size:12px}
  .ending-achievements{padding:16px 13px;margin-bottom:22px}
  .ending-achievements span{font-size:12px}
}

/* Persistent player HUD: full sidebar on desktop, compact expandable bar on phones. */
.sim-layout{align-items:start}
.story-column{display:grid;gap:18px;min-width:0}
.story-column>#story-feed{margin-top:0}
.player-panel{position:sticky;top:18px;z-index:8}
.player-panel-toggle{display:none}

@media (max-width:800px){
  .story-column{gap:13px}
  .player-panel{top:8px;z-index:18;box-shadow:0 12px 28px rgba(58,91,81,.16);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
  .player-panel-toggle{display:block;position:absolute;right:11px;top:10px;min-width:46px;height:32px;padding:0 9px;border:1px solid rgba(13,103,93,.18);border-radius:999px;background:rgba(255,255,255,.72);color:var(--teal);font-size:11px;font-weight:700}
  .player-panel:not(.is-expanded){display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:10px;padding:10px 11px 11px;min-height:0;background:rgba(229,243,238,.94)}
  .player-panel:not(.is-expanded) .avatar-orb{grid-column:1;grid-row:1;width:42px;height:42px;margin:0;float:none;font-size:20px}
  .player-panel:not(.is-expanded) h3{grid-column:2;grid-row:1;margin:0;padding:2px 54px 0 0;font-size:17px;line-height:1.25}
  .player-panel:not(.is-expanded)>p,
  .player-panel:not(.is-expanded) .inventory,
  .player-panel:not(.is-expanded) .achievement-shelf{display:none}
  .player-panel:not(.is-expanded) .stat-list{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding-top:9px;margin-top:3px;border-top:1px solid rgba(13,103,93,.13)}
  .player-panel:not(.is-expanded) .stat{display:grid;grid-template-columns:1fr auto;gap:3px 4px;font-size:10px}
  .player-panel:not(.is-expanded) .stat>div{grid-column:1/-1;grid-row:2;height:4px}
  .player-panel:not(.is-expanded) .stat b{font-size:10px}
  .player-panel.is-expanded{display:block;max-height:calc(100vh - 16px);overflow:auto;padding-top:17px;box-shadow:0 18px 42px rgba(58,91,81,.22)}
  .player-panel.is-expanded .inventory,
  .player-panel.is-expanded .achievement-shelf{display:block}
}
