@font-face{font-family:'Cinzel';src:url('./assets/fonts/Cinzel.woff') format('woff');font-weight:400 900;font-style:normal;font-display:swap;}
@font-face{font-family:'Cormorant Garamond';src:url('./assets/fonts/CormorantGaramond.woff') format('woff');font-weight:300 700;font-style:normal;font-display:swap;}
/* Nusantara manuscript theme. UI text remains real, selectable Latin text. */
@font-face {
  font-family:'Jawadwipa Adisastra';src:url('./assets/fonts/Jawadwipa.ttf') format('truetype');
  font-weight:400;font-style:normal;font-display:swap;
}
:root {
  --n-display:'Jawadwipa Adisastra',Georgia,serif;
  --n-book:'Cormorant Garamond','Palatino Linotype',Georgia,serif;
  --n-gold:#d9b96e;--n-ink:#3d2a17;
  --n-edge:clamp(7px,1.6vh,12px);--n-corner:clamp(36px,8vh,66px);
}
/* A screen ornament lives outside #app, surviving all game-screen transitions. */
.nusantara-border {position:fixed;inset:0;z-index:1100;pointer-events:none;overflow:hidden;}
.nusantara-border::before {
  content:'';position:absolute;inset:3px;border:2px solid #c09a52;
  outline:3px solid #263525;box-shadow:inset 0 0 0 2px #44331f,inset 0 0 0 4px #edd28a,inset 0 0 20px #05110b99;
}
.nusantara-border .rail {position:absolute;background-repeat:repeat;}
.nusantara-border .rail-top,.nusantara-border .rail-bottom {
  left:var(--n-corner);right:var(--n-corner);height:var(--n-edge);
  background-image:url('./assets/interface/nusantara-rail-v3.svg');background-size:auto 100%;
}
.nusantara-border .rail-top{top:4px}.nusantara-border .rail-bottom{bottom:4px;transform:rotate(180deg)}
.nusantara-border .rail-left,.nusantara-border .rail-right {
  top:var(--n-corner);bottom:var(--n-corner);width:var(--n-edge);
  background-image:url('./assets/interface/nusantara-rail-vertical-v3.svg');background-size:100% auto;
}
.nusantara-border .rail-left{left:4px}.nusantara-border .rail-right{right:4px;transform:rotate(180deg)}
.nusantara-border .corner {
  position:absolute;width:var(--n-corner);height:var(--n-corner);
  background:url('./assets/interface/nusantara-corner-v3.svg') center/contain no-repeat;
}
.nusantara-border .corner-tl{top:3px;left:3px}.nusantara-border .corner-tr{top:3px;right:3px;transform:rotate(90deg)}
.nusantara-border .corner-br{bottom:3px;right:3px;transform:rotate(180deg)}.nusantara-border .corner-bl{bottom:3px;left:3px;transform:rotate(270deg)}
.nusantara-border .crest {position:absolute;width:clamp(90px,15vw,190px);aspect-ratio:220/54;left:50%;background:url('./assets/interface/nusantara-crest-v3.svg') center/contain no-repeat;}
.nusantara-border .crest-top{top:3px;width:96px;transform:translateX(-50%)}.nusantara-border .crest-bottom{bottom:3px;transform:translateX(-50%) rotate(180deg)}
/* Full viewport including the portrait gate and fullscreen mode; no page wrapper. */
html,body{min-height:100%;width:100%;}
.journey .journey-header {
  padding-left:max(36px,4vw,calc(env(safe-area-inset-left) + 16px))!important;
  padding-right:max(96px,calc(env(safe-area-inset-right) + 80px))!important;
}
.journey-open .sound-controls{right:max(36px,calc(env(safe-area-inset-right) + 20px));}
.journey .journey-heading h1,.journey .leader-detail-title h2,.world-transition h1 {
  font-family:var(--n-display);font-weight:400;line-height:1.3;letter-spacing:.015em;
}
.journey .journey-heading em,.world-transition em{font-family:var(--n-display);font-style:normal;}
/* Compact HUD labels retain their readable text faces. */
.game-shell .topbar{padding-inline:max(24px,calc(env(safe-area-inset-left) + 16px)) max(24px,calc(env(safe-area-inset-right) + 16px));}
.game-shell .turnbar{padding-bottom:max(16px,env(safe-area-inset-bottom));}
@media(max-height:430px){
  .nusantara-border .crest{width:92px;}
  .nusantara-border .crest-top{width:64px;}
  .journey .journey-header{padding-left:max(30px,env(safe-area-inset-left))!important;padding-right:max(80px,calc(env(safe-area-inset-right) + 65px))!important;}
  .journey-open .sound-controls{right:max(28px,env(safe-area-inset-right));}
}

/* Breathing room below the outer gold rail, including short landscape screens. */
.journey{--frame-height:90px;}
.journey .journey-header{padding-top:max(24px,env(safe-area-inset-top))!important;padding-bottom:10px!important;}
.journey-open .sound-controls{top:max(30px,env(safe-area-inset-top));}
@media(max-height:759px){.journey{--frame-height:80px;}.journey .journey-header{padding-top:22px!important;padding-bottom:10px!important;}.journey-open .sound-controls{top:24px;}}
@media(max-height:539px){.journey{--frame-height:66px;}.journey .journey-header{padding-top:20px!important;padding-bottom:10px!important;}.journey-open .sound-controls{top:20px;}}
