/* Standalone V3 hero detail: a viewport-sized landscape composition. */
.sanctuary-rotate{display:none}
@media (orientation:portrait) and (max-width:1100px){
  html,body.at-prototype.sanctuary{height:100%;overflow:hidden}
  .sanctuary #codex-shell,.sanctuary> :not(.sanctuary-rotate){display:none!important}
  html:not([data-detail-load="ready"]) body>.sanctuary-rotate,
  .sanctuary .sanctuary-rotate{visibility:visible!important;pointer-events:auto!important;position:fixed;inset:0;z-index:2147483001;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:32px max(24px,env(safe-area-inset-right)) 32px max(24px,env(safe-area-inset-left));text-align:center;background:radial-gradient(ellipse at 50% 35%,#183344,#07111c 70%);color:#eee2c8}
  .sanctuary-rotate svg{width:88px;height:88px;fill:none;stroke:#dec797;stroke-width:1.5;margin-bottom:10px}
  .sanctuary-rotate h1{font:26px/1.25 var(--at-serif,Georgia,serif);margin:0}
  .sanctuary-rotate p{font:14px/1.6 system-ui,sans-serif;color:#acbdc8;margin:0;max-width:280px}
  .sanctuary-rotate a{color:#dec797;font:12px system-ui,sans-serif;padding:14px;margin-top:20px}
}
@media (orientation:landscape) and (max-width:1100px) and (max-height:600px){
  html:has(body.sanctuary){height:100%;overflow:hidden}
  body.at-prototype.sanctuary{--scene-edge:max(24px,env(safe-area-inset-left));--mobile-dock:54px;height:100dvh;min-height:0;overflow:hidden}
  .sanctuary #codex-shell.at-shell{height:100%;padding:0}
  .sanctuary .at-hero.sanctuary-scene{height:100dvh;min-height:0;max-height:none;padding:0}
  .sanctuary .at-toolbar{height:40px;padding:0 var(--scene-edge);align-items:center}
  .sanctuary .at-back{font-size:10px;letter-spacing:.05em;min-height:32px;display:flex;align-items:center}
  .sanctuary .sanctuary-character-wrap{inset:3% 5% calc(var(--mobile-dock) + env(safe-area-inset-bottom)) 37%;height:auto}
  .sanctuary .sanctuary-shade{background:linear-gradient(90deg,#050d16f2,#07121dc9 27%,#07111b55 47%,transparent 70%),linear-gradient(0deg,#050b14d9,transparent 35%)}
  .at-prototype.sanctuary #codex-detail-identity.at-hero-copy{position:absolute;inset:44px auto calc(var(--mobile-dock) + env(safe-area-inset-bottom) + 8px) var(--scene-edge);width:35%;max-width:390px;margin:0;padding:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#b8a27350 transparent}
  .sanctuary #at-title{font-size:9px;line-height:1.3;margin:0 0 3px;letter-spacing:.08em}
  .at-prototype.sanctuary #codex-name{font-size:clamp(24px,3.8vw,38px);line-height:1.05}
  .sanctuary .sanctuary-name-line{gap:9px;margin-bottom:5px}
  .at-prototype.sanctuary #codex-detail-tier.at-classification,.at-prototype.sanctuary #codex-tier-badge-img{width:28px;height:30px}
  .sanctuary .at-tags{font-size:10px;gap:7px;margin:0 0 9px}
  .sanctuary #codex-detail-classicon img{width:14px;height:14px}
  .sanctuary #sanctuary-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:none;margin:0 0 10px}
  .sanctuary .sanctuary-stat{display:block;padding-bottom:6px}
  .sanctuary #sanctuary-stats .sanctuary-stat-icon{display:none}
  .sanctuary .sanctuary-stat-copy>span{font-size:9px;white-space:nowrap}
  .sanctuary #sanctuary-stats .sanctuary-stat-copy strong{font-size:18px}
  .sanctuary .sanctuary-arsenal{margin:0 0 10px}
  .sanctuary #sanctuary-abilities{width:100%;justify-content:flex-start;gap:9px}
  .sanctuary .sanctuary-ability{width:clamp(34px,4.7vw,46px);height:clamp(34px,4.7vw,46px);flex-shrink:0;padding:2px}
  .sanctuary .sanctuary-ability>span{font-size:8px}
  .sanctuary .sanctuary-looks{width:100%;max-width:none}
  .sanctuary .sanctuary-look-heading{margin-bottom:4px}
  .sanctuary .sanctuary-look-heading p{font-size:8px}
  .sanctuary #sanctuary-skin-rail{height:66px}
  .sanctuary .sanctuary-skin-portrait{width:70px;height:44px}
  .sanctuary .sanctuary-skin-portrait.is-current{width:94px;height:62px}
  .sanctuary .sanctuary-skin-carousel{gap:4px}
  .sanctuary .sanctuary-skin-carousel>button{width:24px;height:44px}
  .sanctuary .sanctuary-look-caption{gap:12px;margin-top:3px;min-height:16px}
  .sanctuary .sanctuary-look-caption>span{font-size:9px;max-width:65%}
  .sanctuary .sanctuary-art-link{font-size:9px}
  .sanctuary .sanctuary-progress,.sanctuary .sanctuary-bottom{display:none}
  .sanctuary #at-prev,.sanctuary .sanctuary-next{position:fixed;top:calc((100dvh - var(--mobile-dock)) * .42);left:40%;width:36px;height:58px;min-height:44px}
  .sanctuary .sanctuary-next{left:auto;right:max(5px,env(safe-area-inset-right))}
  .sanctuary #at-prev>span,.sanctuary .sanctuary-next>span{font-size:52px}
  .sanctuary #at-prev small,.sanctuary .sanctuary-next small{display:none}
  .sanctuary .sanctuary-dock{position:absolute;inset:auto 0 0;transform:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;height:calc(var(--mobile-dock) + env(safe-area-inset-bottom));padding:0 max(8px,env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px,env(safe-area-inset-left));background:linear-gradient(#0d1e2deb,#06111af5);border-top:1px solid #c6af7544}
  .sanctuary .sanctuary-dock button{width:100%;min-width:0;height:var(--mobile-dock);min-height:44px;gap:1px;border:0;border-right:1px solid #d5bd7a20;background:none;box-shadow:none;padding:4px 2px}
  .sanctuary .sanctuary-dock button:last-child{border-right:0}
  .sanctuary .sanctuary-dock button::before,.sanctuary .sanctuary-dock button::after{display:none}
  .sanctuary .sanctuary-dock .sanctuary-insignia{width:28px;height:28px}
  .sanctuary .sanctuary-dock span{font-size:9px;letter-spacing:.03em}
  .sanctuary .sanctuary-drawer{inset:max(8px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));transform:none;width:auto;height:auto;max-height:none;padding:0 18px}
  .sanctuary .sanctuary-modal-top{min-height:52px;gap:10px}
  .sanctuary #sanctuary-modal-emblem{width:32px;height:32px}
  .sanctuary .sanctuary-modal-identity strong{font-size:18px}
  .sanctuary .sanctuary-modal-identity span{font-size:9px}
  .sanctuary .sanctuary-close{width:44px;height:44px}
  .at-prototype.sanctuary #codex-tabs.at-tabs{height:40px;min-height:40px}
  .at-prototype.sanctuary #codex-tabs .codex-tab-btn{padding:9px 12px}
  .sanctuary .at-content,.sanctuary .sanctuary-single-section .at-content{padding:14px 0 22px;overflow:auto;min-height:0}
  .sanctuary :is(.csk-image-modal-stage,.hm-story-modal-card,.hero-purchase-modal-window,.codex-vfx-preview-dialog){max-height:calc(100dvh - 24px)}
}
