/* Shared finish: painted materials, safe text insets, and content-driven columns. */
.modal.painted-dialog{display:flex;flex-direction:column;gap:0;width:min(800px,96vw);max-height:calc(100dvh - 20px);min-height:0;overflow:hidden;background:none;border:34px solid transparent;border-image:url('./assets/dialog-frame-v1.webp?v=20261028-panteon153-v17') 220 fill stretch;border-radius:0;padding:7px 12px 12px;box-shadow:none;filter:drop-shadow(0 12px 25px #0009);color:#f1e8d8}
.painted-dialog>.modal-header{flex:0 0 auto;gap:20px;align-items:center;margin:0 0 14px;min-width:0}
.painted-dialog>.modal-header h2{font-size:clamp(18px,2.4vw,25px);line-height:1.4;color:#fff0cb;overflow-wrap:break-word}
.painted-dialog>.modal-header .icon-btn{flex:0 0 38px;width:38px;height:38px;min-height:38px;font-size:22px;color:#f2dfb4}
.painted-dialog>.modal-content{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 4px 3px;scrollbar-width:thin;scrollbar-color:#a78e5e transparent}
.painted-dialog .modal-content p,.painted-dialog .modal-content li{font-size:14px;line-height:1.8;color:#e0e4e4}
.painted-dialog .modal-content p+p{margin-top:10px}
.painted-dialog>.modal-actions{flex:0 0 auto;justify-content:center;gap:14px;flex-wrap:wrap;margin:18px 0 0}
.painted-dialog>.modal-actions>button{flex:1 1 150px;max-width:300px;min-height:44px;padding:10px 24px;white-space:nowrap;font-size:14px;line-height:1.2}
.painted-dialog .settings-row{gap:8px;margin:12px 0;align-items:stretch}
.painted-dialog .settings-row .btn{padding:10px 22px;min-height:40px;font-size:13px}
.painted-dialog .settings-note{color:#b8cad6;font-size:12px}
.resume-summary{display:flex;align-items:center;gap:18px;margin:0 0 17px}
.resume-summary>.game-icon{width:62px;height:62px}
.resume-summary>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.resume-summary strong{font-size:17px;line-height:1.45;color:#ffedc7;word-break:keep-all}
.resume-summary span{font-size:13px;line-height:1.5;color:#c9e1ee}
.resume-summary+p .resource-icon{width:20px;height:22px}
.painted-dialog:has(.framed-card-preview){width:min(940px,96vw);height:min(650px,94dvh)}
.painted-dialog:has(.framed-card-preview)>.modal-content{flex:1;overflow:hidden;padding:0}
.painted-dialog .framed-card-preview{height:100%;min-height:0;display:flex;align-items:center;gap:clamp(18px,3vw,36px);max-width:none}
.painted-dialog .framed-card-preview>.card-showcase{flex:0 0 auto;width:min(34%,calc((100dvh - 180px)*.6667));max-width:290px;padding-bottom:42px;align-self:center}
.painted-dialog .framed-card-preview>.card-lore{flex:1;align-self:stretch;width:auto;max-width:none;min-width:0;max-height:none;overflow:auto;padding:0 8px 14px 0}
.painted-dialog:has(.battle-result){width:min(1140px,96vw);padding:0;border:0;border-image:none;background:none;max-height:96dvh}
.painted-dialog:has(.battle-result)>.modal-content{padding:0;background:url('./assets/summon-observatory-v1.webp?v=20261028-panteon153-v17') center/cover}
/* Card and notes occupy independent flex columns; neither has an absolute offset. */
.archive-detail .archive-stage{display:flex;align-items:stretch;gap:clamp(18px,3vw,42px);min-height:0;left:5%;right:5%}
.archive-detail .archive-stage>.displayed-card{position:relative;inset:auto;flex:0 0 36%;width:36%;height:100%;aspect-ratio:auto;min-width:0;container-type:size;display:flex;align-items:center;justify-content:center;padding:0 0 22px;filter:none}
.archive-detail .displayed-card>.soul-card{width:min(100cqw,calc((100cqh - 22px)*.6667));height:auto;aspect-ratio:2/3;flex:0 0 auto;max-width:100%;filter:drop-shadow(0 7px 9px #0007)}
.archive-detail .displayed-card>small{top:auto;bottom:0;left:0;right:0;width:100%;font-size:11px;line-height:1.4;white-space:normal}
.archive-detail .archive-stage>.archive-notes{position:relative;inset:auto;flex:1;min-width:0;height:100%;padding:2px 10px 14px 0;overflow-x:hidden;overflow-y:auto}
.archive-notes .hero-heading,.card-lore .hero-heading{display:block;min-width:0}
.archive-notes .hero-heading>p,.card-lore .hero-heading>p{font-size:11px;line-height:1.5;margin:0 0 5px;letter-spacing:0;color:#b7cbd6;overflow-wrap:break-word}
.archive-notes .hero-heading h2,.card-lore .hero-heading h2{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 12px;font-size:clamp(23px,2.8vw,32px);line-height:1.3;margin:0 0 5px;color:#fff0cc}
.hero-heading h2 small{flex:0 0 auto;font:700 12px/1.4 'Noto Sans KR',sans-serif;margin:0;white-space:nowrap}
.hero-heading>span{display:block;font-size:12px;line-height:1.5;color:#dbc99d}
.card-info-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 10px}
.archive-notes .card-info-tabs .text-link,.card-lore .card-info-tabs .text-link{flex:0 0 auto;min-width:84px;min-height:36px;padding:8px 18px;white-space:nowrap;word-break:keep-all;overflow-wrap:normal;font-size:12px;line-height:1.2}
.archive-notes .hero-attributes,.card-lore .hero-attributes{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:12px 22px;margin:13px 0;padding:0 0 12px}
.hero-attributes>div{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.hero-attributes dt{font-size:11px;color:#bfd0da}
.hero-attributes dd{font-size:23px;color:#fff0cb;white-space:nowrap}
.hero-attributes dd small{font-size:12px}
.archive-notes .hero-line,.card-lore .hero-line{font-size:12px;line-height:1.6;color:#d2dfe4;margin:8px 0}
.archive-notes .hero-ability p,.card-lore .hero-ability p,.card-info-section p{font-size:13px;line-height:1.75;color:#dce3e6;word-break:keep-all;overflow-wrap:break-word}
.hero-ability h3 b{font-size:16px;line-height:1.45}
.hero-ability>small{display:block;font-size:11px;line-height:1.6;color:#b9cbd5}
.archive-notes .copy-ribbon{gap:7px}
.archive-notes .copy-ribbon .text-link{min-height:34px;padding:7px 15px;font-size:11px;white-space:nowrap}
.archive-notes .card-context-actions,.card-lore .card-context-actions{gap:8px;margin:14px 0}
.archive-notes .card-context-actions .text-link,.card-lore .card-context-actions .text-link{min-height:36px;padding:8px 18px;font-size:12px;white-space:nowrap}
.collection-title-line{flex:1;min-width:0}
.archive-scene .collection-heading h1{white-space:normal;overflow-wrap:break-word;line-height:1.35}
.archive-scene .collection-primary-tabs{flex-shrink:0}
.archive-grid .archive-item>p{font-size:12px;line-height:1.4;min-height:17px}
.archive-grid .archive-item>p>small{font-size:10px}
.archive-search input{font-size:13px}
.archive-search input::placeholder{font-size:12px;color:#d1dce0}
.scene-topbar .resource{font-size:13px;color:#f2eee2}
.draw-disclosure{color:#d8e2e9;font-size:12px}
.shop-ledger .seal-action>b{display:flex;align-items:center;gap:5px;white-space:nowrap}
.shop-ledger .seal-action{gap:20px;min-width:180px;min-height:42px;white-space:nowrap}
.shop-ledger .ledger-note{font-size:11px;color:#c5d2d9}
.card-context-actions .resource-icon{width:18px;height:20px}
.celestial-summon .summon-disclosure{font-size:11px;line-height:1.65;color:#d9e2ea;text-shadow:0 1px 4px #000}
.celestial-summon .draw-result-label{font-size:11px;line-height:1.4;max-width:120%;overflow:hidden;text-overflow:ellipsis}
.celestial-summon .draw-instruction{font-size:13px;line-height:1.5;color:#f2f2e9}
.growth-ledger .growth-reason,.growth-ledger .growth-requirement{font-size:12px;line-height:1.65;color:#dce1e2}
.growth-ledger .growth-requirement{color:#f2d89f}
.result-actions button{padding-left:24px;padding-right:24px;white-space:nowrap}
@media(max-height:450px) and (orientation:landscape){
 .modal.painted-dialog{border-width:26px;padding:5px 9px 8px;max-height:calc(100dvh - 12px)}
 .painted-dialog>.modal-header{margin-bottom:9px;gap:14px}
 .painted-dialog>.modal-header h2{font-size:19px}
 .painted-dialog>.modal-actions{margin-top:12px;gap:12px}
 .painted-dialog>.modal-actions>button{min-height:38px;font-size:13px;padding:8px 22px}
 .painted-dialog .modal-content p,.painted-dialog .modal-content li{font-size:13px;line-height:1.7}
 .archive-detail .archive-stage{top:90px;bottom:105px;gap:22px}
 .archive-detail .archive-stage>.displayed-card{flex-basis:30%;width:30%}
 .archive-detail .displayed-card>small{font-size:10px;display:block}
 .archive-notes .hero-heading h2,.card-lore .hero-heading h2{font-size:24px}
 .archive-notes .card-info-tabs .text-link,.card-lore .card-info-tabs .text-link{min-height:34px;min-width:84px;font-size:12px;padding:7px 16px}
 .card-info-tabs{margin:10px 0 7px}
 .archive-notes .hero-attributes,.card-lore .hero-attributes{gap:10px 18px;margin:10px 0}
 .hero-attributes dd{font-size:21px}
 .archive-notes .hero-ability p,.card-lore .hero-ability p{font-size:12px}
 .archive-scene .collection-primary-tabs .text-link{font-size:11px;min-height:32px;height:32px}
 .archive-scene .collection-heading h1{font-size:20px}
 .growth-ledger .growth-reason{font-size:11px}
 .celestial-summon .summon-disclosure{font-size:10px;line-height:1.5}
 .celestial-summon .draw-result-label{font-size:10px}
 .resume-summary{margin-bottom:12px;gap:14px}
 .resume-summary>.game-icon{width:48px;height:48px}
}
@media(max-width:600px){
 .archive-detail .archive-stage{top:147px;gap:16px}
 .archive-detail .archive-stage>.displayed-card{flex-basis:34%;width:34%}
 .archive-notes .hero-heading h2,.card-lore .hero-heading h2{font-size:23px}
 .painted-dialog .framed-card-preview{gap:16px;flex-direction:row}
 .painted-dialog .framed-card-preview>.card-showcase{width:min(34%,calc((100dvh - 180px)*.6667))}
}
@media(orientation:portrait){
 .painted-dialog:has(.framed-card-preview){height:94dvh}
 .painted-dialog .framed-card-preview{flex-direction:column}
 .painted-dialog .framed-card-preview>.card-showcase{width:min(37vw,190px);padding-bottom:39px}
 .painted-dialog .framed-card-preview>.card-lore{width:100%;flex:1;max-height:none;min-height:0}
}
