/* VOCABULARIA v1.9.86–87 · fit-to-screen layout for phones in portrait.
   Every main screen (title, start menu, level/hero setup, battle, options,
   pause, round report, victory, dungeon, hall) is laid out to fit one
   screen height, so no page scrolling is needed on Android phones.
   Presentation only: no game, ranking, pass or payment logic is touched.
   Purchase screens (v1943 paywall / restore) keep their own styles. */

@media (max-width:620px) and (orientation:portrait){
 :root{--fit-safe-top:env(safe-area-inset-top,0px);--fit-safe-bottom:env(safe-area-inset-bottom,0px)}
 html,body{height:100dvh!important;overflow:hidden!important}

 /* ===== START MENU: one column card that fills the screen, no scrolling ===== */
 #startMenu{align-items:stretch!important;justify-content:flex-start!important;padding:calc(6px + var(--fit-safe-top)) 8px calc(6px + var(--fit-safe-bottom))!important;overflow:hidden!important}
 #startMenu.active{display:flex!important}
 #startMenu .menuCard{display:flex;flex-direction:column;width:100%!important;max-width:none!important;height:100%;max-height:100%;margin:0!important;padding:12px 12px 8px!important;overflow:hidden;border-radius:16px!important}
 #startMenu .eyebrow{display:none}
 #startMenu .menuLogo{font-size:clamp(22px,7vw,28px)!important;line-height:1.15!important;margin:0!important}
 #startMenu .menuEduLine{font-size:8px!important;letter-spacing:.14em!important;margin:3px 0 6px!important;padding-bottom:12px!important;background-size:min(200px,66%) 12px!important}
 #startMenu .menuBtns:not(.menuExitActions){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:2px!important}
 #startMenu #btnNewGame{grid-column:1/-1;order:0!important;min-height:50px!important;font-size:15px!important;padding:10px!important}
 #startMenu #btnContinue{grid-column:1/-1;order:1!important;min-height:42px!important;padding:7px 10px!important;font-size:13px!important}
 #startMenu #btnContinue .saveInfo{margin-top:3px!important;font-size:10px!important}
 #startMenu #btnLoadSlots{grid-column:1/-1;order:2!important;min-height:38px!important}
 #startMenu #btnMenuRanking{order:3!important}
 #startMenu #btnMenuDungeon{order:4!important;flex-direction:column;align-items:flex-start!important;justify-content:center!important;gap:2px!important;text-align:left!important}
 #startMenu #btnMenuNotes{order:5!important}
 #startMenu #btnMenuOptions{order:6!important}
 #startMenu .menuBtns .ghostBtn{min-height:46px!important;padding:6px 8px!important;font-size:12px!important;line-height:1.25!important;letter-spacing:0!important}
 #startMenu #btnMenuDungeon small{display:none!important}
 #startMenu #btnMenuDungeon>span{display:block;white-space:nowrap}
 #startMenu #rdMenuCount{font-size:11px!important}
 #startMenu .v1943Daily{margin-top:8px!important;padding:7px 10px!important;border-radius:10px!important}
 #startMenu .v1943DailyTop{font-size:11px}
 #startMenu .v1943DailySub{font-size:9px!important;margin-top:3px}
 /* TOP-1000 preview: shown only when the screen is tall enough (see min-height rule below); it is one tap away behind the ranking button anyway */
 #startMenu .v1935Hall{display:none;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;margin-top:8px!important;padding:8px 10px!important}
 #startMenu .v1935HallHead{gap:2px!important}
 #startMenu .v1935HallHead b{font-size:13px!important;line-height:1.2!important}
 #startMenu .v1935HallHead span{font-size:9px!important}
 #startMenu .v1935HallRows{flex:1 1 auto;min-height:0;overflow:hidden;margin-top:4px}
 #startMenu .v1935HallRow{padding:3px 6px!important;font-size:10px!important}
 #startMenu .v1935HallEmpty{font-size:10px!important;line-height:1.4!important;padding:6px 0!important}
 #startMenu .v1935HallStatus{font-size:8px!important;margin-top:3px}
 #startMenu #v1935Hall:after{margin-top:4px!important;font-size:9px!important}
 #startMenu .menuNote{display:none!important}
 #startMenu .menuExitActions{margin-top:auto!important;padding-top:8px!important;display:flex;flex-direction:row;align-items:center;gap:8px;border-top:1px solid rgba(226,189,102,.18)!important}
 #startMenu .menuExitActions .ghostBtn{flex:1 1 auto;min-height:40px!important;padding:6px 10px!important;font-size:12px!important}
 #startMenu .v1976Credits{margin:4px auto 0!important;padding:2px 8px!important;font-size:10px!important}

 /* ===== SETUP: level step ===== */
 #setup{padding:calc(6px + var(--fit-safe-top)) 8px calc(6px + var(--fit-safe-bottom))!important;overflow:hidden!important;align-items:stretch!important}
 #setup .setupWrap{display:flex;flex-direction:column;width:100%!important;height:100%;max-height:100%;padding:12px 12px 0!important;overflow:hidden;border-radius:16px!important}
 #setup .setupHeader{margin-bottom:8px!important;flex:0 0 auto}
 #setup .setupHeader .eyebrow{font-size:9px!important;letter-spacing:.22em!important}
 #setup .setupHeader .title{font-size:19px!important;line-height:1.25!important;margin:3px 0 2px!important}
 #setup .setupHeader .sub{font-size:11px!important;line-height:1.4!important;padding-bottom:12px!important;background-size:min(200px,66%) 12px!important}
 #setup .setupGrid{display:flex!important;flex-direction:column;flex:1 1 auto;min-height:0;gap:8px!important}
 #setup.v1952-level .diffBox{display:flex!important;flex-direction:column;flex:1 1 auto;min-height:0;padding:10px!important;border-radius:12px!important}
 #setup.v1952-level .diffBox .eyebrow{font-size:9px!important;flex:0 0 auto}
 #setup.v1952-level .diffList{display:grid;flex:1 1 auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(0,1fr);gap:6px!important;margin-top:8px!important}
 #setup.v1952-level .diff{min-height:38px!important;height:100%;padding:5px 8px!important;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
 #setup.v1952-level .diff b{font-size:14px!important;line-height:1.1}
 #setup.v1952-level .diff span{font-size:9.5px!important;margin-top:2px!important;line-height:1.2!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #setup .levelBandNote{font-size:8px!important;margin-top:6px!important;line-height:1.3!important;flex:0 0 auto}
 #setup .setupAction{position:static!important;flex:0 0 auto;margin:8px -12px 0!important;padding:8px 12px calc(8px + var(--fit-safe-bottom))!important;gap:6px!important;background:rgba(7,11,19,.55)!important}
 #setup .setupAction #start,#setup .setupAction #v1952BackLevel{min-height:46px!important;padding:10px!important;font-size:14px!important}
 #setup .setupAction #v1952BackLevel{min-height:38px!important;font-size:12px!important}
 #setup .levelRequiredMsg{font-size:11px!important;line-height:1.3!important;margin:0 0 4px!important;padding-top:0!important}

 /* ===== SETUP: hero step — three cards side by side + one detail box ===== */
 #setup.v1952-hero .heroGrid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;grid-template-rows:auto minmax(0,1fr);gap:7px!important;flex:1 1 auto;min-height:0;width:100%!important;align-content:start}
 #setup.v1952-hero .heroPick{display:flex!important;flex-direction:column;min-height:0;min-width:0;border-radius:12px!important;transform:none!important}
 #setup.v1952-hero .heroPick:hover{transform:none!important}
 #setup.v1952-hero .heroArt{flex:0 0 auto;min-height:0!important;height:min(38dvh,50vw)!important;max-height:none!important}
 #setup.v1952-hero .heroArt img{width:100%;height:100%;object-fit:cover;object-position:center top}
 #setup.v1952-hero .heroInfo{display:block!important;flex:0 0 auto;padding:6px 5px 7px!important;text-align:center}
 #setup.v1952-hero .role,#setup.v1952-hero .heroDesc,#setup.v1952-hero .skill{display:none!important}
 #setup.v1952-hero .heroName{font-size:12px!important;line-height:1.15!important;margin:0!important;letter-spacing:0!important;word-break:keep-all}
 #setup.v1952-hero .v1969TrialStatus{margin-top:3px!important;font-size:8.5px!important;line-height:1.25!important}
 #setup.v1952-hero .v1952StudyBadge{margin-top:4px!important;padding:2px 6px!important;font-size:7.5px!important;letter-spacing:0!important;gap:3px!important;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #setup .fitHeroDetail{grid-column:1/-1;display:flex;flex-direction:column;justify-content:center;border:1px solid rgba(226,189,102,.28);border-radius:12px;padding:9px 11px;background:linear-gradient(160deg,rgba(20,28,43,.9),rgba(8,13,22,.95));min-height:74px;text-align:left}
 #setup .fitHeroDetail .fitRole{font-size:9px;letter-spacing:.14em;font-weight:900;color:#9fe8ff;text-transform:uppercase}
 #setup .fitHeroDetail .fitDesc{font-size:12px;line-height:1.5;color:#d9e5f3;margin-top:4px}
 #setup .fitHeroDetail .fitDesc b{font-size:12px}
 #setup .fitHeroDetail .fitSkill{font-size:10.5px;line-height:1.4;color:#ffe39a;margin-top:5px;font-weight:700}
 #setup .fitHeroDetail.empty{gap:6px}
 #setup .fitHeroDetail .fitLegendTitle{font-size:10px;letter-spacing:.12em;font-weight:900;color:#c9b98e;text-align:center}
 #setup .fitHeroDetail .fitLegend{display:flex;align-items:baseline;gap:7px;font-size:11.5px;line-height:1.35;color:#d9e5f3}
 #setup .fitHeroDetail .fitLegend b{flex:0 0 auto;color:#fff3cc;font-weight:900}
 #setup .fitHeroDetail .fitLegend span{color:#b9c7d8}

 /* ===== BATTLE: HUD → field → question, everything shares one screen ===== */
 #game.active{display:flex!important;flex-direction:column!important;height:100dvh!important;overflow:hidden!important}
 #game .hudTop{padding:calc(4px + var(--fit-safe-top)) 6px 0!important;gap:5px!important}
 #game .hud{padding:6px 8px!important;border-radius:11px!important}
 #game .hudTitle{font-size:11px!important}
 #game .hudMeta{font-size:9px!important;line-height:1.3!important;margin-top:2px!important;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
 #game #v15CycleHud{display:none!important} /* duplicate of #v14NextSummon */
 #game .track{height:7px!important;margin-top:4px!important}
 #game .track.xp{height:5px!important;margin-top:3px!important}
 #game .xpText{font-size:8px!important;margin-top:1px!important}
 #game .hudActions{margin-top:5px!important;gap:5px!important}
 #game .iconBtn{min-width:34px!important;min-height:32px!important;padding:3px 8px!important;font-size:13px!important}
 #game .notesBtn{font-size:11px!important}
 #game .field{position:relative!important;inset:auto!important;flex:1 1 0px!important;min-height:112px!important;padding:5px 6px 4px!important;gap:6px!important}
 #game .fighterWrap{min-height:0!important}
 #game .energyLabel{font-size:9px!important;margin:0 1px 3px!important}
 #game .bigTrack{height:7px!important}
 #game .fighter{min-height:0!important;margin-top:4px!important;height:auto!important}
 #game .fighterInfo{left:8px!important;right:8px!important;bottom:8px!important}
 #game .fighterName{font-size:clamp(14px,4.4vw,18px)!important}
 #game .fighterStats{margin-top:4px!important;font-size:8px!important}
 #game .circle{width:22px!important;height:22px!important;font-size:9px!important}
 #game .question{position:relative!important;left:auto!important;right:auto!important;bottom:auto!important;transform:none!important;width:auto!important;
  flex:0 1 auto!important;min-height:0!important;max-height:none!important;overflow-y:auto!important;overscroll-behavior:contain;
  margin:0 6px calc(6px + var(--fit-safe-bottom))!important;padding:8px 9px 9px!important;border-radius:14px!important}
 #game .qtop{gap:3px!important;padding-right:40px!important}
 #game .qlabel{font-size:8px!important;letter-spacing:.12em!important;line-height:1.3!important}
 #game .qword{font-size:clamp(16px,4.6vw,20px)!important;line-height:1.3!important;max-height:none!important;overflow:visible!important}
 #game .hint{display:none!important}
 #game .speakBtn{top:7px!important;right:8px!important;width:34px!important;height:30px!important;font-size:15px!important}
 #game .gExplain{font-size:10.5px!important;line-height:1.35!important;margin-top:3px!important}
 #game .grammarTypeHint{font-size:9px!important}
 #game .answers{gap:6px!important;margin-top:7px!important}
 #game .ans{min-height:44px!important;padding:8px 6px!important;font-size:14px!important;line-height:1.2!important}
 #game .answers.two .ans{min-height:46px!important;font-size:15px!important}
 #game .answers.longOpts .ans{min-height:38px!important;font-size:12.5px!important}
 #game .answers.chips{gap:6px!important}
 #game .chip{min-height:38px!important;padding:7px 9px!important;font-size:14px!important;line-height:1.3!important}
 #game .sbKo{font-size:13px!important;line-height:1.35!important;margin-bottom:5px!important}
 #game .sbLine{min-height:40px!important;padding:5px 7px!important;gap:5px!important}
 #game .sbLine .chip{min-height:30px!important;padding:5px 8px!important;font-size:13px!important}
 #game .sbPh{font-size:12px!important}
 #game .sbTools{margin-top:4px!important}
 #game .sbReset{padding:4px 9px!important;font-size:11px!important;min-height:0!important}
 #game .actionRow{margin-top:7px!important;gap:6px!important}
 #game .spButton{padding:9px 8px!important;font-size:11.5px!important;min-height:40px!important}
 #game .stopBtn{padding:9px 10px!important;font-size:11.5px!important;min-height:40px!important}
 #game .tip,#game .spInfo{display:none!important}
 /* adaptive tiers: added by fit-screen.js only when the question panel would still need to scroll */
 #game.fitTight .hudMeta{-webkit-line-clamp:2}
 #game.fitTight .xpText{display:none!important}
 #game.fitTight .iconBtn{min-height:30px!important;min-width:32px!important}
 #game.fitTight .field{min-height:98px!important}
 #game.fitTight .question{padding:7px 8px 8px!important}
 #game.fitTight .qword{font-size:clamp(15px,4.2vw,18px)!important}
 #game.fitTight .ans{min-height:40px!important;font-size:13px!important;padding:6px 5px!important}
 #game.fitTight .answers.two .ans{min-height:42px!important;font-size:14px!important}
 #game.fitTight .chip{min-height:34px!important;padding:5px 8px!important;font-size:13px!important}
 #game.fitTight .sbLine{min-height:34px!important}
 #game.fitTight .spButton,#game.fitTight .stopBtn{min-height:36px!important;padding:7px 8px!important;font-size:11px!important}
 #game.fitTighter .hudMeta{-webkit-line-clamp:1}
 #game.fitTighter .hud .track.en,#game.fitTighter .hud .track.xp{display:none!important}
 #game.fitTighter .energyLabel,#game.fitTighter .bigTrack.heroEnergy{display:none!important}
 #game.fitTighter .field{min-height:84px!important}
 #game.fitTighter .ans{min-height:36px!important;font-size:12.5px!important}
 #game.fitTighter .chip{min-height:30px!important;font-size:12px!important}
 #game.fitTighter .qlabel{display:none!important}
 #game.fitTighter .sbKo{font-size:12px!important}
 #game.fitTighter .gExplain{display:none!important}

 /* ===== MODALS (shared) ===== */
 .modalOverlay{padding:8px!important}
 #reviewDungeon.modalOverlay{padding:0!important}
 /* cards are sized to fit; overflow:auto is only a fallback for unusually short screens */
 .modalCard{max-height:calc(100dvh - 16px)!important;overflow:auto!important;overscroll-behavior:contain;padding:14px 12px 12px!important;border-radius:14px!important;display:flex;flex-direction:column}
 .modalCard>*{flex:0 0 auto}
 .modalHeader{font-size:18px!important;line-height:1.2!important;padding-bottom:14px!important;margin-bottom:4px!important;background-size:min(200px,66%) 12px!important}
 .modalCard .sub{font-size:11px!important;line-height:1.4!important;margin:0 0 4px!important}
 .modalActions,.modalCard .menuBtns{margin-top:8px!important;gap:7px!important}
 .modalCard .menuBtns .primary,.modalCard .menuBtns .ghostBtn,.modalActions .primary,.modalActions .ghostBtn{padding:10px!important;min-height:42px!important;font-size:13px!important}

 /* options: compact two-column sheet */
 #optModal .optCard{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px;align-content:start;overflow:auto!important}
 #optModal .optCard>*{grid-column:1/-1}
 #optModal .optCard .rpgCorners{grid-column:auto}
 #optModal .optCard .sub{display:none!important}
 #optModal .optRow{margin-top:6px!important}
 #optModal .optHead{margin-bottom:0!important;font-size:12px!important;min-height:30px}
 #optModal .optHead span{font-size:12px;padding-right:6px}
 #optModal .optHead b{font-size:11.5px!important;min-width:38px!important}
 #optModal .optNote{display:none!important}
 #optModal .optRow:has(input[type=range]) .optHead{min-height:22px}
 #optModal .optRow:has(input[type=range]) input[type=range]{height:8px!important;margin:2px 0 0;display:block}
 #optModal .optRow:has(.stepper){display:none!important} /* boss interval is fixed; the stepper is already hidden */
 #optModal .optRow.v1929ItemInfoRow,#optModal #v1935OptReport,#optModal #v1937OptRounds,#optModal .optRow:has(#v1943BookBtn),#optModal .optRow:has(#v1943UpdateBtn){grid-column:auto;margin-top:6px!important}
 #optModal .optRow.v1929ItemInfoRow .optHead,#optModal #v1935OptReport .optHead,#optModal #v1937OptRounds .optHead,#optModal .optRow:has(#v1943BookBtn) .optHead,#optModal .optRow:has(#v1943UpdateBtn) .optHead{flex-direction:column;align-items:stretch;gap:4px;min-height:0}
 #optModal .optRow.v1929ItemInfoRow .optHead span,#optModal #v1935OptReport .optHead span,#optModal #v1937OptRounds .optHead span,#optModal .optRow:has(#v1943BookBtn) .optHead span,#optModal .optRow:has(#v1943UpdateBtn) .optHead span{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:0}
 #optModal .swBtn{min-width:56px!important;padding:5px 10px!important;font-size:12px!important;min-height:30px}
 #optModal .optRow.v1929ItemInfoRow .swBtn,#optModal #v1935OptReport .swBtn,#optModal #v1937OptRounds .swBtn,#optModal .optRow:has(#v1943BookBtn) .swBtn,#optModal .optRow:has(#v1943UpdateBtn) .swBtn{width:100%;min-height:34px}
 #optModal #v1943OptLifetime .optNote{display:block!important;font-size:9.5px!important;margin-top:2px!important;line-height:1.3!important}
 #optModal #v1943OptLifetime{order:8}
 #optModal .optMute{order:9;margin-top:8px!important;padding:9px!important;min-height:40px!important;font-size:12px!important}
 #optModal .optCard>.menuBtns{order:10;margin-top:8px!important}
 #optModal #optClose{min-height:44px!important}

 /* pause / save slots */
 #pauseModal .slotGrid{gap:6px!important;margin-top:8px!important}
 #pauseModal .slot{min-height:64px!important;padding:7px 8px!important}
 #pauseModal .slot .sn{font-size:9px!important}
 #pauseModal .slot .sh{font-size:12px!important;margin-top:3px!important}
 #pauseModal .slot .sd,#pauseModal .slot .st{font-size:10px!important;margin-top:2px!important}
 #pauseModal .slot.empty .sd,#pauseModal .slot.empty .st{display:none}
 #pauseModal .slotMsg{min-height:14px!important;margin-top:6px!important;font-size:11px!important}
 #pauseModal .shareRow{margin-top:6px!important;padding:8px!important;min-height:38px!important;font-size:12px!important;line-height:1.3!important}
 #pauseModal #slotActions{margin-top:8px!important}

 /* notes */
 #notesModal .notesCard{max-height:calc(100dvh - 16px)!important}
 #notesModal .notesTabs{margin:6px 0!important}
 #notesModal .notesTabs button{padding:8px!important;font-size:12px!important}
 #notesModal .notesBody{flex:1 1 auto!important;min-height:60px!important;max-height:none!important}
 #notesModal .nEmpty{padding:14px 8px!important;font-size:12px!important}
 #notesModal .notesHint{font-size:10px!important;margin-top:6px!important}
 #notesModal .nItem{padding:7px 9px!important;margin-bottom:6px!important}
 #notesModal .nTop{font-size:9px!important}
 #notesModal .nQ{font-size:13px!important;margin-top:3px!important;line-height:1.3!important}
 #notesModal .nA{font-size:11.5px!important;margin-top:2px!important;line-height:1.35!important}
 #notesModal .nE{font-size:10.5px!important;margin-top:2px!important}
 #notesModal .nDel{margin-top:3px!important;padding:2px 7px!important;font-size:10px!important;min-height:0!important}
 #notesModal .rdNoteProgress{margin:4px 0 0!important;padding-top:4px!important;font-size:10.5px!important;line-height:1.4!important}

 /* inventory / stats / defeat */
 #invModal .equipSlots{margin-bottom:8px!important}
 #invModal .slotItem{min-height:96px!important}
 #invModal .slotItem .ic{min-height:70px!important}
 #invModal .slotThumb{width:68px!important;height:68px!important}
 #invModal .invGrid{flex:1 1 auto;min-height:0;max-height:none!important;overflow:auto}
 #statModal .v1981Row{padding:6px 0!important}
 #defeatModal .defeatSkull{font-size:34px!important;margin-bottom:2px!important}
 #defeatModal .menuBtns .ghostBtn{min-height:40px!important}

 /* ===== ROUND REPORT (after a boss) ===== */
 .v1937Overlay.show{padding:8px!important;display:flex;align-items:center;overflow:hidden!important}
 .v1937Overlay .v1937RoundCard{width:100%!important;max-height:calc(100dvh - 16px)!important;padding:12px!important;display:flex;flex-direction:column;overflow:auto}
 .v1937Overlay .v1937Title{font-size:20px!important}
 .v1937Overlay .v1937Subtitle{display:none!important}
 .v1937Overlay #v1937RoundBody{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column}
 .v1937Overlay .v1937RepHead{flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding:7px 10px!important}
 .v1937Overlay .v1937RepHead strong{font-size:15px!important}
 .v1937Overlay .v1937RepHead span,.v1937Overlay .v1937RepHead em{font-size:8.5px!important}
 .v1937Overlay .v1937Stats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:5px!important;margin:7px 0!important}
 .v1937Overlay .v1937Stat{padding:5px 3px!important}
 .v1937Overlay .v1937Stat span{font-size:7.5px!important}
 .v1937Overlay .v1937Stat b{font-size:13px!important;margin-top:2px!important}
 .v1937Overlay .v1937Section{margin-top:5px!important;min-height:0}
 .v1937Overlay .v1937Section h4{font-size:9.5px!important;margin:0 0 3px!important}
 .v1937Overlay .v1937Words{max-height:56px;overflow:auto;gap:4px!important}
 .v1937Overlay .v1937Word,.v1937Overlay .v1937EmptyWord{padding:3px 6px!important;font-size:8.5px!important}
 .v1937Overlay .v1937ScoreBreak{margin-top:5px!important}
 .v1937Overlay .v1937SavedState{margin:6px 0 4px!important;font-size:8px!important}
 .v1937Overlay .v1937Btns{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
 .v1937Overlay .v1937Btns button{min-height:38px!important;padding:5px 6px!important;font-size:10px!important}
 .v1937Overlay #v1937Next{grid-column:1/-1;order:-1;min-height:46px!important;font-size:12.5px!important}
 .v1937Overlay .v1937Btns .danger{grid-column:auto!important}

 /* ===== VICTORY SCREEN ===== */
 .victory.show{display:flex!important;flex-direction:column;overflow:hidden!important}
 .vWrap{height:100dvh;max-height:100dvh;padding:calc(8px + var(--fit-safe-top)) 12px calc(8px + var(--fit-safe-bottom))!important;justify-content:space-between;gap:4px}
 .vRound{font-size:9px!important;padding:3px 9px!important;letter-spacing:.2em!important}
 .vTitle{font-size:clamp(34px,11vw,56px)!important;margin-top:4px!important}
 .vSub{font-size:13px!important;margin-top:2px!important;line-height:1.3}
 .vStage{flex:1 1 auto;min-height:110px;height:auto!important;max-height:34dvh;margin-top:4px!important}
 .vHeroName{font-size:clamp(15px,4.5vw,22px)!important;bottom:2px!important}
 .vStory{margin-top:6px!important;padding:8px 10px 6px!important;max-height:30dvh;overflow:hidden;flex:0 1 auto}
 .vStoryText{min-height:0!important;font-size:12px!important;line-height:1.5!important;max-height:calc(30dvh - 34px);overflow:hidden}
 .vSkip{margin-top:3px!important;font-size:9px!important}
 .vStats{gap:5px!important;margin-top:6px!important}
 .vStats div{padding:4px 7px!important;font-size:9.5px!important;min-width:56px!important;border-radius:9px!important}
 .vStats b{font-size:13px!important;margin-top:1px!important}
 .vBtns{gap:6px!important;margin-top:6px!important}
 .vBtns .primary{padding:10px!important;font-size:14px!important;min-height:44px}
 .vBtns .ghostBtn{padding:8px!important;min-height:38px!important;font-size:12px!important}
 .vRow{gap:6px!important}

 /* ===== REVIEW DUNGEON (dialog) ===== */
 #reviewDungeon{width:calc(100vw - 12px)!important;max-height:calc(100dvh - 12px)!important;overflow:hidden!important;flex-direction:column}
 #reviewDungeon[open]{display:flex!important}
 #reviewDungeon:not([open]){display:none!important}
 #reviewDungeon .rdHeader{padding:10px 14px!important;flex:0 0 auto}
 #reviewDungeon .rdEyebrow{font-size:9px!important}
 #reviewDungeon h2{font-size:19px!important;margin:2px 0 0!important}
 #reviewDungeon .rdClose{min-height:38px!important;width:38px!important}
 #reviewDungeon .rdBody{padding:10px 12px 10px!important;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}
 #reviewDungeon .rdIntro{display:none!important}
 #reviewDungeon .rdStats{gap:5px!important;margin-bottom:7px!important}
 #reviewDungeon .rdStat{padding:5px 7px!important;font-size:9.5px!important;border-radius:9px!important;display:flex;align-items:baseline;justify-content:space-between;gap:4px}
 #reviewDungeon .rdStat b{display:inline!important;font-size:16px!important;margin:0!important;line-height:1.1!important}
 #reviewDungeon .rdFilters{margin:0 0 8px!important;gap:5px!important}
 #reviewDungeon .rdFilters button{min-height:36px!important;font-size:12px!important}
 #reviewDungeon .rdCard{flex:1 1 auto;min-height:0;overflow:auto;padding:12px!important}
 #reviewDungeon .rdEmpty{padding:8px 4px!important}
 #reviewDungeon .rdEmpty img{width:46px!important;height:46px!important;margin:2px 0 6px!important}
 #reviewDungeon .rdEmpty h3{font-size:16px!important;margin-bottom:6px!important}
 #reviewDungeon .rdEmpty p{font-size:12px!important;line-height:1.5!important;margin:4px 0!important}
 #reviewDungeon .rdPrompt{font-size:18px!important;margin:4px 0 6px!important}
 #reviewDungeon .rdHint{font-size:12px!important;margin-bottom:8px!important}
 #reviewDungeon .rdKicker{font-size:10px!important;margin-bottom:6px!important;line-height:1.4!important}
 #reviewDungeon .rdChoices{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
 #reviewDungeon .rdChoice{min-height:40px!important;padding:7px 9px!important;font-size:13px!important;line-height:1.35!important}
 #reviewDungeon .rdFoot button{min-height:38px!important;padding:7px 10px!important;font-size:13px!important}
 #reviewDungeon .rdSentence{min-height:50px!important;padding:8px!important;margin-bottom:8px!important}
 #reviewDungeon .rdChunks{gap:6px!important;margin-bottom:8px!important}
 #reviewDungeon .rdChunk{padding:7px 10px!important;min-height:36px!important}
 #reviewDungeon .rdFoot{margin-top:8px!important}
 #reviewDungeon .rdFeedback{margin-top:8px!important;padding-top:8px!important;font-size:12.5px!important;line-height:1.5!important}
 #reviewDungeon .rdSession{font-size:10px!important;line-height:1.4!important;margin-top:6px!important;flex:0 0 auto}
 #reviewDungeon .rdSession:last-child{display:none}

 /* ===== HALL OF FAME (ranking) ===== */
 #v1954HallModal .v1954HallCard{max-height:calc(100dvh - 16px)!important;display:flex;flex-direction:column;overflow:auto;padding:12px!important}
 #v1954HallModal .v1954HallTop{margin-bottom:4px}
 #v1954HallModal h2{font-size:16px!important;line-height:1.25!important}
 #v1954HallModal .v1954HallBtns button{min-height:34px!important;padding:4px 8px!important;font-size:11px!important}
 #v1954HallModal .vocabPersonal{padding:7px 9px!important;margin-top:6px!important;font-size:11px}
 #v1954HallModal .vocabPersonal small{font-size:9px!important;line-height:1.3!important}
 #v1954HallModal .vocabLeaders{margin-top:6px!important;gap:4px!important}
 #v1954HallModal .vocabLeaders button{min-height:32px!important;padding:4px 8px!important}
 #v1954HallModal .vocabTabs{margin-top:6px!important;gap:4px!important}
 #v1954HallModal .vocabTabs button{min-height:32px!important;padding:5px!important;font-size:11px!important}
 #v1954HallModal #v1954HallRows{flex:1 1 auto;min-height:40px;overflow:auto;margin-top:6px}
 #v1954HallModal #v1954HallStatus{font-size:9px!important;margin-top:4px}
}

@media (max-width:620px) and (orientation:portrait) and (min-height:720px){
 #startMenu .v1935Hall{display:flex}
}

/* Extra compaction for short phones (≈ 16:9 screens, or with the browser bar showing). */
@media (max-width:620px) and (orientation:portrait) and (max-height:700px){
 #startMenu .menuLogo{font-size:20px!important}
 #startMenu .menuEduLine{display:none!important}
 #startMenu #btnNewGame{min-height:46px!important}
 #startMenu .menuBtns .ghostBtn{min-height:40px!important}
 #startMenu .v1943Daily{padding:6px 10px!important}
 #setup .setupHeader .sub{display:none!important}
 #setup .setupHeader .title{font-size:17px!important}
 #setup.v1952-hero .heroArt{height:min(30dvh,50vw)!important}
 #setup .fitHeroDetail{min-height:62px;padding:7px 9px}
 #setup .fitHeroDetail .fitDesc{font-size:11px}
 #game .hudMeta{-webkit-line-clamp:2}
 #game .field{min-height:96px!important}
 .modalHeader{font-size:16px!important;padding-bottom:10px!important}
 #pauseModal .slot{min-height:56px!important}
 .vTitle{font-size:clamp(30px,9vw,44px)!important}
 .vStage{max-height:28dvh}
 .vStory{max-height:24dvh}
 .vStoryText{max-height:calc(24dvh - 30px)}
}
