:root{
  --green:#00885a;
  --green-dark:#006b47;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC",STSong,SimSun,serif;
  --sans:"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  --flag-h:236px;
  --flag-w:187px;
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  min-height:100vh;
  display:flex;
  flex-direction:column;
  background:#fff;
  color:#333;
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid #d8b45f;outline-offset:3px}

.top-strip{
  height:30px;
  flex:0 0 auto;
  background:#fff;
}

.nav-row{
  position:relative;
  z-index:5;
  flex:0 0 auto;
  height:50px;
  background:var(--green);
}
.bar{
  position:relative;
  width:90%;
  max-width:1680px;
  height:100%;
  margin:0 auto;
}
.flag{
  position:absolute;
  left:0;
  top:-30px;
  z-index:10;
  display:block;
  line-height:0;
  filter:drop-shadow(0 10px 22px rgba(0,0,0,.28));
  transition:transform .2s,filter .2s;
}
.flag:hover{
  transform:translateY(-3px);
  filter:drop-shadow(0 16px 28px rgba(0,0,0,.32));
}
.flag img{
  height:var(--flag-h);
  width:auto;
  display:block;
}

.nav{
  display:flex;
  align-items:center;
  height:100%;
  padding-left:calc(var(--flag-w) + 22px);
  overflow-x:auto;
  scrollbar-width:none;
}
.nav::-webkit-scrollbar{display:none}
.nav a{
  display:flex;
  align-items:center;
  height:100%;
  padding:0 19px;
  color:#fff;
  font-size:15px;
  letter-spacing:.03em;
  text-decoration:none;
  white-space:nowrap;
  transition:background .18s;
}
.nav a:hover{background:rgba(0,0,0,.09)}

.stage{
  position:relative;
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
}
.banner{
  position:relative;
  flex:0 0 auto;
  height:clamp(190px,34.7vw,500px);
  overflow:hidden;
  background:#e6e8e2;
}
.banner img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}

.lower{
  flex:1 1 auto;
  display:flex;
  align-items:flex-end;
  width:90%;
  max-width:1680px;
  margin:0 auto;
  padding:20px 0 34px;
  position:relative;
  z-index:3;
}
.lower__copy{min-width:0}
.lower__title{
  margin:0;
  font-family:var(--serif);
  font-weight:700;
  font-size:clamp(28px,3.4vw,52px);
  line-height:1.24;
  letter-spacing:.05em;
  color:#1f2a25;
}
.lower__en{
  margin:12px 0 0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(11px,1.1vw,16px);
  letter-spacing:.2em;
  color:#8b948e;
}
.lower__status{
  margin:26px 0 0;
  font-size:13px;
  line-height:1.9;
  letter-spacing:.02em;
  color:#6f786f;
}
.lower__status a{
  color:var(--green-dark);
  text-decoration:none;
  border-bottom:1px solid rgba(0,136,90,.4);
}
.lower__status a:hover{border-bottom-color:var(--green-dark)}
.lower__count{
  margin-left:10px;
  font-size:12px;
  color:#9aa39b;
  letter-spacing:.06em;
}
.lower__count.is-off{display:none}

.mascot{
  position:absolute;
  right:5%;
  bottom:6px;
  z-index:2;
  height:min(58vh,600px);
  width:auto;
  pointer-events:none;
  filter:drop-shadow(0 22px 26px rgba(0,0,0,.18));
}
.mascot.is-missing{display:none}

.nojs{
  width:90%;
  margin:0 auto 20px;
  background:#fff4d6;
  border:1px solid #e8cf8a;
  padding:12px 16px;
  font-size:14px;
}

@media (max-width:880px){
  :root{--flag-h:168px;--flag-w:133px}
  .nav a{font-size:14px;padding:0 14px}
  .nav{padding-left:calc(var(--flag-w) + 16px)}
  .banner{height:clamp(190px,46vw,320px)}
  .lower{padding:16px 0 24px}
  .lower__status{margin-top:16px;font-size:12px}
  .mascot{height:min(52vh,460px);right:2%;bottom:4px}
}
@media (max-width:560px){
  :root{--flag-h:140px;--flag-w:111px}
  .bar{width:94%}
  .lower{width:94%}
  .nav a{padding:0 11px;font-size:13.5px}
  .lower__title{font-size:23px}
  .lower__en{letter-spacing:.12em}
  .lower__status{font-size:11.5px;margin-top:12px}
  .mascot{height:56vh;right:2%;bottom:132px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.001ms !important}
}
