/* Public-page invariant: every route occupies exactly 940 × 1400 CSS pixels. */
html{scrollbar-gutter:auto!important}body{min-height:0!important;margin:0!important;padding:0!important}.app-view{position:relative;width:940px!important;height:1400px!important;box-sizing:border-box;overflow:hidden}.app-view>.diary{position:relative;width:100%;height:100%;margin:0;padding:0 0 64px;box-sizing:border-box;opacity:1!important}.app-view nav.tabs{position:relative;flex-wrap:nowrap;min-height:78px;box-sizing:border-box}.app-view nav.tabs a{white-space:nowrap}.app-view>.diary>footer{position:absolute;bottom:20px;left:0;right:0;margin:0!important;height:25px;font-size:15px}.app-view footer p{margin:0}.app-view[data-view=schedule],.app-view[data-view=song],.app-view[data-view=upbo]{padding:0 22px!important}.app-view[hidden],.profile-panel[hidden]{display:none!important}
#view-intro .intro{height:1400px;width:940px}#view-intro .intro>*:not(footer){translate:0 100px}#view-intro .intro footer{bottom:45px}
/* Profile is its own screen, with an independent media page. */
#view-profile .profile-heading{margin:10px 48px 24px;display:flex;align-items:flex-end;justify-content:space-between}.profile-heading>div>span{font:10px Arial,sans-serif;letter-spacing:2px;color:#a47f75}.profile-heading h1{font-size:42px;margin:6px 0 0;line-height:1.2}.profile-tabs,.media-pager{display:flex;gap:10px;align-items:center}.profile-tabs button,.media-pager button{font-family:inherit;font-size:19px;padding:8px 18px;border:1px solid #c8ada4;border-radius:16px;background:#fff;color:#4a3a30;cursor:pointer}.profile-tabs button[aria-selected=true]{background:#efd0c8}.profile-panel{height:1080px}.profile-panel .top{grid-template-columns:275px 1fr;gap:28px;padding-top:0;margin-bottom:26px;height:300px}.profile-panel .photo{height:290px;aspect-ratio:auto}.profile-panel .bio{padding:18px 24px;overflow:auto}.profile-panel .bio .row{padding:5px 0;font-size:20px}.profile-panel .bio .v{overflow-wrap:anywhere}.profile-panel .card{padding:20px 26px}.profile-panel .about{height:202px;margin-bottom:28px}.profile-panel .about p{font-size:23px;line-height:1.4;max-height:155px;overflow:auto}.profile-panel .row2{margin-bottom:28px;height:146px}.profile-panel .row2>.card{height:146px}.profile-panel .chips{max-height:92px;overflow:auto;font-size:20px}.profile-panel .goal{height:182px;margin-bottom:0}.profile-panel .goal p{font-size:23px;line-height:1.4;max-height:135px;overflow:auto}.profile-panel .card:hover{transform:none}#profile-media-panel .vod{height:930px;padding-top:24px}#profile-media-panel .vod-player{max-width:750px;margin-bottom:24px}#profile-media-panel .vod-list{grid-template-columns:repeat(3,1fr);gap:16px}#profile-media-panel .vod-thumb{aspect-ratio:16/9}#profile-media-panel .media-pager{justify-content:center;margin-top:25px}.media-pager button:disabled{opacity:.35;cursor:default}.media-pager span{font-size:19px;min-width:65px;text-align:center}
/* Calendar: six weeks and seven upcoming cards fit together. */
#view-schedule header.hero{margin:4px 4px 10px}#view-schedule .hero .title{font-size:39px}#view-schedule .hero .sub{font-size:19px}#view-schedule .cal-wrap{padding:10px 14px 12px;margin-bottom:14px}#view-schedule .cal-head{margin-bottom:8px}#view-schedule .cal-nav{height:35px;width:38px}#view-schedule .cal-label{font-size:26px}#view-schedule .cal-cell{height:82px;min-height:82px;padding:4px;gap:2px}#view-schedule .cal-daynum{font-size:16px}#view-schedule .cal-ev{font-size:12px;padding:1px 4px;line-height:1.2;flex-shrink:0}#view-schedule .cal-more{font-size:11px;line-height:1}#view-schedule .cal-legend{font-size:14px;margin-top:8px}#view-schedule .cal-wd{font-size:16px;padding:2px}#view-schedule .sch-section{margin-bottom:0}#view-schedule .sch-section-title{font-size:24px;margin-bottom:10px}#view-schedule .event-card{height:63px;margin-bottom:8px}#view-schedule .event-date-block{width:77px;padding:4px}#view-schedule .ev-day-num{font-size:31px}#view-schedule .ev-weekday{font-size:13px;margin-top:2px}#view-schedule .ev-cell{padding:6px 8px}#view-schedule .ev-time{font-size:21px}#view-schedule .ev-title{font-size:24px}#view-schedule .ev-desc{font-size:20px}#view-schedule .ev-tag{font-size:16px;padding:2px 9px}
/* Fixed-capacity lists retain their paging controls. */
#view-song table{table-layout:fixed}#view-song tbody tr{height:51px}#view-song tbody td{padding:7px 10px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#view-song thead th{padding:10px}#view-song .table-box{min-height:925px}#view-song .song-pagination{padding-top:18px}#view-song .toolbar{margin-bottom:14px}#view-song .hero .title{font-size:42px}
#view-upbo .member-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px;min-height:928px}#view-upbo .member-card{padding:15px 12px;height:220px;overflow:hidden}#view-upbo .member-avatar{width:78px;height:78px;margin-bottom:10px}#view-upbo .member-nick{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#view-upbo .search-input{margin-bottom:18px;padding:10px 18px}#view-upbo .hero .title{font-size:42px}#view-upbo .upbo-pagination{padding:15px 0 0}
@media(prefers-reduced-motion:reduce){.quick-dock a{transition:none}.quick-dock a:hover,.quick-dock a:active{transform:none}}

.app-view>footer{position:absolute;bottom:20px;left:0;right:0;margin:0!important;height:25px;font-size:15px;text-align:center}
#view-schedule .cal-grid,#view-schedule .cal-weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}#view-schedule .cal-cell{min-width:0;height:76px;min-height:76px}#view-schedule .cal-ev{max-width:100%;min-width:0}#view-schedule .event-card{height:59px}
.profile-panel .bio{overflow:visible}.profile-panel .bio .v{min-width:0;max-height:29px;overflow:auto}.profile-panel .bio .row{font-size:19px;padding:4px 0}
#view-home .hero-note{overflow:visible}#view-home .hero-note p{max-height:100px;overflow:auto}

/* Upbo navigation follows the main page's quiet text-and-underline style. */
#view-upbo nav.tabs {
  align-items: center;
  justify-content: flex-start;
  gap: 30px;
  height: 78px;
  padding: 0 26px;
  background: transparent;
}
#view-upbo nav.tabs a,
#view-upbo nav.tabs a:nth-child(n) {
  font-family: Arial, "Malgun Gothic", sans-serif;
  font-size: 16px;
  font-weight: 700;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid transparent;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
  color: #24232a;
  transition: color .18s, border-color .18s;
}
#view-upbo nav.tabs a.active {
  color: #cc8074;
  border-bottom-color: #cc8074;
}
#view-upbo nav.tabs a:hover { color: #cc8074; }
@media (prefers-reduced-motion: reduce) {
  #view-upbo nav.tabs a { transition: none; }
}
