.city-feedback {
  position: absolute;
  z-index: 7;
  top: 90px;
  right: 24px;
  width: min(340px, calc(100% - 48px));
  padding: 16px 18px;
  background: #fff8e9f5;
  border: 2px solid #d8bd7b;
  border-radius: 16px;
  box-shadow: 0 9px 30px #294c4630;
}

.city-feedback b { color: #4c6e5d; }
.city-feedback p { font-size: 12px; margin: 6px 0 10px; }

.decision-map {
  margin: 18px 0;
  padding: 16px;
  background: #eef0df;
  border-radius: 12px;
}

.decision-map h3 { margin-bottom: 4px; }
.result-role { display: grid; grid-template-columns: 150px 1fr; gap: 18px; align-items: center; margin-bottom: 18px; }
.result-portrait { width: 150px; height: 190px; object-fit: contain; object-position: bottom; border-radius: 18px; background: #dfe4cd; }
.result-role h2 { margin: 2px 0; font-size: 30px; }
.decision-chips { display: flex; gap: 8px; flex-wrap: wrap; }
.decision-chips span {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  background: #fff9e7;
  border: 1px solid #d4ccb4;
  border-radius: 99px;
  font-size: 12px;
}
.decision-chips b { color: #9b7133; font-size: 17px; }

.strategy-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin: 12px 0;
}

.strategy-grid span {
  padding: 12px 8px;
  text-align: center;
  background: #fff9e7;
  border: 1px solid #d4ccb4;
  border-radius: 10px;
  font-size: 12px;
}

.strategy-grid span.top { border-color: #b48437; box-shadow: inset 0 0 0 1px #d5af68; }
.strategy-grid b { display: block; color: #9b7133; font-size: 22px; }
.strategy-grid small { display: block; margin-top: 3px; font-size: 9px; }

.choice-type,
.trade-type b {
  color: #8a5f28;
  font-style: normal;
  font-weight: 800;
}

.choice-type {
  display: inline-block;
  padding: 2px 6px;
  background: #eee3c7;
  border-radius: 99px;
  font-size: 9px;
  white-space: nowrap;
}
.rarity-badge { position: absolute; top: 9px; right: 10px; z-index: 3; padding: 3px 8px; border-radius: 20px; background: #263b34; color: #fff5ca; font-weight: 900; letter-spacing: 2px; }
.rarity-r { box-shadow: 0 8px 28px #b8c6bb88; }
.rarity-sr { border-color: #7fc8ff !important; box-shadow: 0 0 24px #55b9ff99, 0 10px 35px #234f6b66; animation: sr-glow 1.2s ease-in-out infinite alternate; }
.rarity-ssr { border-color: #ffe16b !important; box-shadow: 0 0 28px #ffcf40, 0 0 70px #d875ffcc; animation: ssr-glow .7s ease-in-out infinite alternate; }
@keyframes sr-glow { to { filter: brightness(1.13); transform: translateY(-3px); } }
@keyframes ssr-glow { from { filter: hue-rotate(0deg) brightness(1.05); transform: scale(1); } to { filter: hue-rotate(35deg) brightness(1.28); transform: scale(1.025); } }

.partner-inventory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:16px 0 4px; }
.partner-card { position:relative; min-height:280px; padding:0; overflow:hidden; border:2px solid #aebbb4; border-radius:18px; background:linear-gradient(155deg,#193830,#0e1b19 62%); color:#fff; isolation:isolate; }
.partner-card.rarity-sr,.partner-card.rarity-ssr { animation:none; }
.partner-card.locked .partner-card-art { filter:grayscale(.75) brightness(.58); }
.partner-card.locked .partner-card-info small::before { content:'🔒 '; }
.partner-card.unlocked { border-color:#7fc8ff; box-shadow:0 0 24px #55b9ff66,0 10px 35px #234f6b55; }
.partner-card::after { content:''; position:absolute; inset:42% 0 0; z-index:1; background:linear-gradient(transparent,#07110ff5 72%); pointer-events:none; }
.partner-card-art { width:100%; height:280px; object-fit:cover; object-position:center top; transition:transform .25s ease; }
.partner-card:hover .partner-card-art,.partner-card:focus-visible .partner-card-art { transform:scale(1.035); }
.partner-rarity { position:absolute; top:10px; left:10px; z-index:2; padding:5px 9px; border-radius:8px; background:#15221fd9; color:#ffe889; font-size:12px; font-weight:900; letter-spacing:2px; }
.partner-card-info { position:absolute; right:14px; bottom:14px; left:14px; z-index:2; text-align:left; }
.partner-card-info b { display:block; font-size:22px; }
.partner-card-info small { color:#d6e8e1; }
.partner-profile { display:grid; grid-template-columns:minmax(160px,220px) 1fr; gap:22px; align-items:center; margin:10px 0 22px; }
.partner-profile-art { width:100%; max-height:330px; object-fit:cover; object-position:center top; border:2px solid #d6b86f; border-radius:18px; background:#17342d; }
.partner-profile h2 { margin:8px 0 2px; }
.partner-profile p { line-height:1.65; }
.partner-line { margin:8px 0; padding:10px 12px; border-radius:10px; background:#f2ecd9; }
.strategy-link-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; margin:12px 0; }
.strategy-link-grid span { padding:8px 5px; border:1px solid #d1c5a5; border-radius:9px; background:#fff9e8; text-align:center; }
.strategy-link-grid b,.strategy-link-grid small { display:block; font-size:10px; }
.strategy-link-grid.materials { grid-template-columns:repeat(2,minmax(0,1fr)); }

.trade-type {
  display: inline-block;
  margin-bottom: 10px;
  padding: 7px 11px;
  background: #eee8d5;
  border-radius: 9px;
  font-size: 13px;
}

.bankruptcy-screen {
  min-height: 100vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: #fff;
  background: radial-gradient(circle, #7c2020, #190a0a 68%);
  animation: bankruptcy-flash .7s ease-out both;
}

.bankruptcy-card {
  position: relative;
  z-index: 2;
  width: min(460px, calc(100% - 40px));
  padding: 42px 28px;
  text-align: center;
  border: 2px solid #ff9b82;
  border-radius: 22px;
  background: #250d0de8;
  box-shadow: 0 30px 90px #000b;
  animation: bankruptcy-drop .8s cubic-bezier(.2,.8,.2,1) both;
}
.bankruptcy-card h1 { margin: 10px 0; color: #ffb09d; font-size: clamp(52px, 12vw, 96px); }
.bankruptcy-card button { margin: 8px 4px 0; }
.bankruptcy-crack { position: absolute; font-size: 80vh; opacity: .08; transform: rotate(12deg); }
@keyframes bankruptcy-flash { 0% { filter: brightness(4); } 35% { transform: translateX(-12px); } 55% { transform: translateX(10px); } 100% { filter: none; } }
@keyframes bankruptcy-drop { from { opacity: 0; transform: translateY(-90px) rotate(-4deg) scale(1.2); } to { opacity: 1; transform: none; } }

@media (max-width: 700px) {
  .city-feedback { top: 70px; right: 14px; width: min(310px, calc(100% - 28px)); }
  .strategy-grid { grid-template-columns: 1fr 1fr; }
  .result-role { grid-template-columns: 100px 1fr; }
  .result-portrait { width: 100px; height: 140px; }
  .partner-inventory { gap:9px; }
  .partner-card { min-height:220px; }
  .partner-card-art { height:220px; }
  .partner-card-info { right:10px; bottom:10px; left:10px; }
  .partner-card-info b { font-size:18px; }
  .partner-profile { grid-template-columns:120px 1fr; gap:14px; align-items:start; }
  .partner-profile-art { min-height:190px; }
  .strategy-link-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.concept-help{display:inline-block;margin-top:8px;padding:4px 9px;border-radius:99px;background:#536f65;color:#fff;text-decoration:none;font-size:11px;font-weight:800}.concept-help:hover{background:#355348}
.strategy-guide{margin:24px 0}.humor-profile{padding:18px;border:2px dashed #c38c43;border-radius:14px;background:#fff4cf}.humor-profile b{color:#8b5c25}.humor-profile p{margin:6px 0 0;font-size:17px}.strategy-explain{position:relative;margin:10px 0;padding:16px;border:1px solid #d4c8aa;border-radius:12px;background:#fffaf0}.strategy-explain.best{border:2px solid #c7983d;box-shadow:0 5px 18px #b68a3530}.strategy-explain small,.strategy-explain a{display:block;margin-top:8px}.strategy-explain a,.course-cta{color:#356b61;font-weight:800}.course-cta{display:block;margin-top:14px;padding:13px;border-radius:10px;background:#dcece4;text-align:center;text-decoration:none}
.actions a.button{display:inline-flex;align-items:center;text-decoration:none;color:inherit;background:#faf5e4;border:1px solid #d8d0b8;border-radius:10px;padding:9px 14px;font-size:13px}.actions a.button:hover{filter:brightness(1.04)}
.career-panel{margin:24px 0;padding:22px;border:2px solid #d2ba7e;border-radius:16px;background:linear-gradient(135deg,#fff8df,#eef3df)}.career-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:16px 0}.career-grid button{min-height:105px;text-align:left;display:flex;flex-direction:column;gap:5px}.career-grid button b{font-size:17px}.career-grid button span{font-size:11px;color:#6d7a6c}.career-grid .recommended{border-color:#b57a28;background:#f4dfaa;box-shadow:0 3px 0 #c19a54}@media(max-width:520px){.career-grid{grid-template-columns:1fr}.career-grid button{min-height:82px}}

/* Decision screen: keep all four choices visible without fighting the portrait/dialogue. */
#toast[popover]{position:fixed;inset:auto auto max(22px,env(safe-area-inset-bottom)) 50%;margin:0;transform:translateX(-50%);z-index:2147483647;max-width:min(88vw,560px);width:max-content;text-align:center;pointer-events:none}
.event-game .concept-help{display:block;width:100%;margin:4px 0 7px;padding:6px 9px;border:1px dashed #9b8d67;background:#fff9e8;color:#40594e;font-size:11px;text-align:left;box-shadow:none}
.glossary-card p{line-height:1.75}.course-cta{display:block;margin-top:16px;padding:12px 14px;border-radius:10px;background:#496f61;color:#fff8dc;text-decoration:none;font-weight:700}
.event-game .eventcard:not(.receipt){top:76px;bottom:218px;left:auto;right:clamp(24px,7vw,110px);width:min(440px,calc(50% - 20px));max-height:none;overflow:auto;padding:14px 16px}.event-game .eventcard:not(.receipt) .event-illustration{height:42px;margin:7px auto}.event-game .eventcard:not(.receipt) .event-illustration .ico{width:34px;height:34px}.event-game .eventcard:not(.receipt) h2{font-size:21px;margin:7px 0}.event-game .eventcard:not(.receipt)>p{margin-bottom:7px;line-height:1.55}.event-game .eventcard:not(.receipt) .notice{margin:7px 0;padding:7px 9px;line-height:1.5}.event-game .eventcard:not(.receipt) .rules{margin:4px 0 7px}.event-game .gamechoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.event-game .gamechoices button{min-height:58px;padding:8px 9px;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;line-height:1.25}.event-game .gamechoices small{margin:4px 0 0;white-space:normal}.event-game .choice-type{font-size:10px;color:#7a6544;font-style:normal;font-weight:700}.event-game .vn-character{left:calc(50% - 540px);width:480px;opacity:.82}

@media(max-width:700px){
  .event-game{background:linear-gradient(180deg,#79aaa5,#a9c6ae)}
  .event-game .event-shade{background:#264b4438;backdrop-filter:blur(4px)}
  .event-game .vn-character{display:block;left:auto;right:6px;bottom:145px;width:150px;height:190px;opacity:1;z-index:6;overflow:hidden;border:0;border-radius:0;background:none;box-shadow:none}
  .event-game .vn-character .large-portrait{width:100%;height:100%;object-fit:cover;object-position:50% 0;filter:drop-shadow(0 10px 12px #1f49454d);transform:scale(1.45);transform-origin:50% 0;-webkit-mask-image:linear-gradient(to bottom,#000 0 82%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0 82%,transparent 100%)}
  .event-game .partner-switch{display:none}
  .event-game .backcity{top:57px;left:10px;z-index:9;padding:5px 9px;background:#fff8e8ef}
  .event-game .eventcard:not(.receipt){top:96px;right:10px;bottom:198px;left:10px;width:auto;max-width:none;max-height:none;padding:10px 11px;border-width:3px;border-radius:13px;box-shadow:0 5px 0 #8f9679,0 14px 35px #183c3340}
  .event-game .eventcard:not(.receipt) .card-kicker{font-size:8px;letter-spacing:1.4px;padding-bottom:4px}
  .event-game .eventcard:not(.receipt) .event-illustration{height:25px;margin:4px 0;gap:7px}
  .event-game .eventcard:not(.receipt) .event-illustration .ico{width:23px;height:23px}
  .event-game .eventcard:not(.receipt) h2{font-size:18px;line-height:1.25;margin:4px 0 5px}
  .event-game .eventcard:not(.receipt)>p{font-size:10.5px;line-height:1.45;margin:0 0 5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .event-game .eventcard:not(.receipt) .notice{font-size:10px;line-height:1.4;margin:5px 0;padding:5px 7px}
  .event-game .eventcard:not(.receipt) .rules{font-size:9px;margin:3px 0 5px}
  .event-game .gamechoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .event-game .gamechoices button{min-height:54px;padding:6px 7px;font-size:11px;border-radius:8px}
  .event-game .gamechoices small{font-size:8px;margin-top:3px}
  .event-game .vn-dialogue{bottom:max(10px,env(safe-area-inset-bottom));width:calc(100% - 20px);min-height:145px;max-height:175px;padding:21px 12px 10px;border-radius:12px}
  .event-game .vn-dialogue>p{max-height:43px;overflow:auto;font-size:11px;line-height:1.45;margin-bottom:5px}
  .event-game .nameplate{top:-18px;left:10px;padding:3px 13px;font-size:12px;min-width:118px}
  .event-game .nameplate small{font-size:8px}
  .event-game .hintrow{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:4px}
  .event-game .hintrow button{padding:4px 2px;font-size:9px}
  .event-game .chatrow input{height:31px}
  .event-game .chatrow button{height:31px}
  .event-game .drawstage{left:50%;top:18%;transform:translateX(-50%)}
}

@media(max-width:380px),(max-height:680px){
  .event-game .vn-character{display:none}
  .event-game .eventcard:not(.receipt){top:88px;bottom:172px}
  .event-game .eventcard:not(.receipt) .event-illustration{display:none}
  .event-game .eventcard:not(.receipt)>p{-webkit-line-clamp:1}
  .event-game .vn-dialogue{min-height:126px;max-height:150px}
  .event-game .vn-dialogue>p{max-height:31px}
  .event-game .gamechoices button{min-height:47px}
}
.event-game .eventcard:not(.receipt){bottom:auto;max-height:calc(100dvh - 300px)}
@media(max-width:700px){.event-game .eventcard:not(.receipt){bottom:auto;max-height:calc(100dvh - 300px)}}
@media(max-width:380px),(max-height:680px){.event-game .eventcard:not(.receipt){bottom:auto;max-height:calc(100dvh - 250px)}}
.event-game .eventcard:not(.receipt)>p{display:block;-webkit-line-clamp:unset;-webkit-box-orient:initial;overflow:visible}
@media(max-width:700px){.event-game .card-reveal,.event-game .vn-character,.event-game .large-portrait{animation:none!important}}
.measurement{margin:18px 0;padding:16px;border-radius:14px;background:#edf2e3}.measurement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.measurement-grid article{padding:12px 10px;border:1px solid #cad3b8;border-radius:10px;background:#fffaf0}.measurement-grid small,.measurement-grid b{display:block}.measurement-grid b{margin:4px 0;font-size:16px}.measurement-grid p{margin:0;font-size:10px;color:#6d7a6c}@media(max-width:700px){.measurement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
