@font-face{font-family:RoomSans;src:local('Pretendard'),local('Apple SD Gothic Neo'),local('Noto Sans CJK KR');font-display:swap}
:root{--bg:#10131c;--panel:#181c27;--line:#2b303e;--text:#f0f0ed;--muted:#a0a5b4;--accent:#e9d2a4;--wuwa:#d6bd8d;--genshin:#9cd9d3;--nikke:#ed9369;--nte:#cbe686;--sans:RoomSans,'Apple SD Gothic Neo','Malgun Gothic',sans-serif;--display:'Avenir Next','Trebuchet MS',var(--sans);--mono:'SFMono-Regular',Consolas,monospace;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;color:var(--text);background:var(--bg);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}body:has(dialog[open]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button{border:0;background:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:hover,a:hover{color:#fff}svg{display:block}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}.skip{position:absolute;top:-80px;left:20px;padding:12px;background:var(--panel);z-index:100}.skip:focus{top:12px}
.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;padding:0 4.2%;border-bottom:1px solid var(--line);background:#10131cf5;gap:30px}.brand{display:flex;gap:12px;align-items:center;font:800 19px var(--display);letter-spacing:.5px}.brand>svg{width:33px;fill:none;stroke:var(--accent);stroke-width:1.5}.brand-light{font-weight:400}.brand small{display:block;color:#999eaa;font:11px var(--sans);letter-spacing:3px;margin-top:4px}.topbar nav{display:flex;align-items:center;gap:32px;height:100%;font-size:13px;color:var(--muted)}.topbar nav a,.topbar nav button{padding:31px 0}.topbar nav .active{color:var(--accent);border-bottom:2px solid var(--accent)}.topbar nav button span{margin-left:5px}.private{display:flex;gap:7px;align-items:center;color:#bec2cc;font-size:11px;padding:7px 10px;border:1px solid #353946;border-radius:5px}.private svg{width:13px;fill:none;stroke:currentColor;stroke-width:1.3}
main{max-width:1600px;padding:0 4.2%;margin:auto}.intro{padding:48px 0 33px;display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font:10px var(--mono);letter-spacing:2px;color:var(--muted);margin:0 0 13px}h1{font-size:clamp(27px,3vw,43px);letter-spacing:-1.8px;line-height:1.25;margin:0;font-weight:700}h1 span{color:var(--accent)}.intro-copy{color:var(--muted);margin:14px 0 0;font-size:13px}.today-block{text-align:right;min-width:180px}.timezone{font:9px var(--mono);letter-spacing:1px;color:#9ba0ae}.clock-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:#98b49c;margin:0 5px 1px}.today-block time{display:block;font:500 30px var(--display);letter-spacing:1px;margin:6px 0}.today-block p{margin:0;font-size:11px;color:var(--muted)}.today-block strong{color:var(--accent);font-weight:500}.filterbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:21px;border-top:1px solid var(--line);padding-top:23px}.game-filters{display:flex;gap:6px}.game-filter{padding:8px 16px;font-size:12px;color:#abb0bd;border:1px solid transparent;border-radius:4px;white-space:nowrap}.game-filter.selected{background:#292d37;border-color:#3a3e49;color:#f4f3ec}.game-filter:not(.selected):hover{background:#1c202c}.game-filter i{width:5px;height:5px;display:inline-block;border-radius:50%;background:var(--game-color);vertical-align:middle;margin-right:7px}.game-filter[data-game=all] i{display:none}.verified{font-size:10px;color:#9198a8;white-space:nowrap}.verified time{font-family:var(--mono);margin-left:5px}.verified button{border:1px solid #666d7c;border-radius:50%;width:14px;height:14px;margin-left:7px;padding:0;font:10px Georgia,serif}.notice{padding:13px 18px;margin-bottom:18px;border:1px solid #615237;background:#25241f;color:#e3d2ae;font-size:12px}
.game-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.game-grid.filtered{grid-template-columns:minmax(280px,400px)}.game-card{position:relative;border:1px solid #3b3c41;border-radius:8px;overflow:hidden;background:#191d23;transition:transform .25s,border-color .25s}.game-card:hover{transform:translateY(-4px);border-color:var(--game-color)}.poster{display:block;width:100%;height:395px;text-align:left;padding:0;position:relative;overflow:hidden;color:#fff}.poster::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#07101a24 15%,transparent 40%,#11141bcc 73%,#11141b 100%);pointer-events:none}.poster-art{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .65s ease;object-position:center 20%}.poster:hover .poster-art{transform:scale(1.04)}.game-top{position:absolute;top:20px;left:20px;right:20px;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.game-logo{font:800 28px var(--display);letter-spacing:-1px;line-height:1.1;text-shadow:0 2px 10px #0007}.game-logo small{display:block;font:7px var(--mono);letter-spacing:1.15px;margin-top:7px}.version-label{font:9px var(--mono);border:1px solid #ffffff66;padding:4px 7px;border-radius:3px;background:#13192750;backdrop-filter:blur(4px);white-space:nowrap}.card-decoration{position:absolute;z-index:0;pointer-events:none}.poster-caption{position:absolute;z-index:3;left:20px;right:20px;bottom:19px}.tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;line-height:1.2;padding:5px 7px;border-radius:3px;border:1px solid #ffffff30;background:#161a22ad;color:#e6e6e5}.tag.live{color:#cee0c7}.tag.live::before{content:'';width:4px;height:4px;border-radius:50%;background:currentColor}.tag.upcoming{color:var(--game-color)}.tag.ended{color:#999daa}.tag.check{color:#edc388}.phase-inline{color:#b2b5bd;font-size:10px;margin-left:8px}.character-title{font-size:26px;font-weight:700;line-height:1.3;letter-spacing:-.9px;margin:10px 0 3px;text-shadow:0 2px 14px #000}.character-subtitle{font-size:11px;color:#b6bbc8;margin:0}.poster-arrow{position:absolute;right:0;bottom:6px;border:1px solid #ffffff40;border-radius:50%;width:26px;height:26px;display:grid;place-items:center;color:#f0e9d9;transition:background .2s}.poster:hover .poster-arrow{background:#ffffff24}.card-meta{padding:15px 18px 12px;min-height:100px;background:#171b24}.date-row{display:flex;justify-content:space-between;align-items:center;font:12px var(--mono);color:#d6d8df;gap:8px}.date-row small{font:9px var(--sans);color:#9299a8}.time-left{margin-top:7px;font-size:11px;color:var(--game-color);display:flex;justify-content:space-between}.time-left small{color:#8f97a7;font-size:10px}.progress{height:2px;background:#363842;margin-top:13px;overflow:hidden}.progress span{display:block;height:100%;background:var(--game-color)}.card-next{border-top:1px solid #32333d;padding:12px 17px;display:flex;gap:10px;width:100%;align-items:center;text-align:left;min-height:54px;background:#191d27}.card-next>span:first-child{font:8px var(--mono);color:#8a919f;border:1px solid #464956;border-radius:2px;padding:3px 5px;white-space:nowrap}.card-next .next-name{font-size:11px;flex:1;color:#c4c8d3}.card-next .next-date{font:10px var(--mono);color:#999eab;white-space:nowrap}.card-next:hover{background:#222733}
.theme-wuwa{--game-color:var(--wuwa)}.theme-wuwa .poster{background:radial-gradient(ellipse at 75% 15%,#909085,#404749 55%,#1d252b)}.theme-wuwa .poster-art{height:108%;width:150%;max-width:none;left:-35%;top:6%;object-fit:cover;object-position:50% 0}.theme-wuwa .game-logo{font-family:'Songti SC','Nanum Myeongjo',serif;font-weight:600;letter-spacing:4px}.theme-wuwa .card-decoration{width:320px;height:320px;left:-75px;top:25px;border:1px solid #d5d4ba50;border-radius:50%;box-shadow:0 0 0 12px #ddd6b509,0 0 0 45px #ddd6b509}.theme-wuwa .card-decoration:after{content:'';position:absolute;inset:20px;border:1px dashed #d5d4ba50;border-radius:50%}
.theme-genshin{--game-color:var(--genshin);border-color:#60777a}.theme-genshin .poster{background:radial-gradient(ellipse at 50% 30%,#a8c6c4,#58868d 45%,#243e57)}.theme-genshin .poster-art{width:182%;height:114%;left:-46%;top:3%;object-fit:cover;object-position:50% 0}.theme-genshin .game-logo{font-family:'Songti SC',Georgia,serif;letter-spacing:4px;font-weight:700}.theme-genshin .card-decoration{border:1px solid #eee2b3a8;inset:10px;border-radius:30px 4px 30px 4px;z-index:1}.theme-genshin .card-decoration:after{content:'';position:absolute;inset:8px;border:1px solid #ead9a155;border-radius:24px 2px 24px 2px}.theme-genshin .poster-caption{bottom:23px}
.theme-nikke{--game-color:var(--nikke);border-radius:8px 8px 22px 8px}.theme-nikke .poster{background:#4e4657}.theme-nikke .poster-art{object-position:50% 50%;width:205%;max-width:none;left:-55%;filter:saturate(.72)}.theme-nikke .game-logo{font-size:30px;font-weight:900;font-stretch:condensed;letter-spacing:-2px}.theme-nikke .game-logo small{letter-spacing:.2px;font-size:6px}.theme-nikke .card-decoration{height:5px;left:0;right:0;top:0;z-index:3;background:repeating-linear-gradient(125deg,#f0a34b 0 10px,#302b2b 10px 20px)}.theme-nikke .version-label{border-color:#e6a774}.theme-nikke .character-title{font-size:21px;letter-spacing:-1px}
.theme-nte{--game-color:var(--nte);border-color:#687056}.theme-nte .poster{background:linear-gradient(155deg,#7f75a4,#4d567a 54%,#41435f)}.theme-nte .poster-art{width:132%;left:-17%;top:2%;height:104%;object-fit:cover;object-position:50% 10%}.theme-nte .game-logo{font-style:italic;font-weight:900;font-size:32px;transform:rotate(-5deg);letter-spacing:-3px;color:#d8ec99;text-shadow:2px 3px #303045}.theme-nte .game-logo small{letter-spacing:.3px;font-style:normal;transform:rotate(5deg);margin-top:8px;color:#fff}.theme-nte .card-decoration{height:160px;left:0;right:0;top:75px;background-image:radial-gradient(#d5ed9a60 1px,transparent 1px);background-size:7px 7px;transform:skewY(-12deg)}.theme-nte .tag.live{border-radius:0;background:#d0e690;color:#242d1c;transform:rotate(-2deg)}
.calendar-section{margin-top:47px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:23px}.section-heading .eyebrow{font-size:9px;margin-bottom:8px;color:#8b92a3}h2{font-size:21px;font-weight:600;letter-spacing:-.8px;margin:0}.calendar-controls{display:flex;align-items:center;gap:5px}.calendar-controls>span{font:12px var(--mono);margin-right:13px;color:#b4bbcb}.calendar-controls button{height:30px;min-width:32px;border:1px solid #393f4e;border-radius:4px;color:#b7c0d0;padding:0 9px;font-size:11px}.calendar-controls button:hover{background:#29303d}.timeline-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:6px;background:#151925;scrollbar-color:#535764 #1a1e29;scrollbar-width:thin}.timeline{min-width:780px}.timeline-header{display:grid;grid-template-columns:150px 1fr;height:43px;border-bottom:1px solid var(--line);font:9px var(--mono);color:#9096a5}.timeline-header .row-label{padding-left:22px;display:flex;align-items:center;font:10px var(--sans);color:#828b9f}.week-labels{position:relative;height:42px}.week-label{position:absolute;top:14px;transform:translateX(-50%);white-space:nowrap}.timeline-row{display:grid;grid-template-columns:150px 1fr;border-bottom:1px solid #272d3c;min-height:98px}.timeline-row:last-child{border:0}.timeline-game{padding:21px 10px 18px 21px;align-self:center;border-right:1px solid #2a303e;font-size:12px}.timeline-game small{display:block;color:#81899c;font-size:9px;margin-top:5px}.timeline-game i{background:var(--game-color);width:5px;height:5px;border-radius:50%;display:inline-block;margin-right:7px;vertical-align:middle}.track{position:relative;padding:12px 0;background:repeating-linear-gradient(to right,transparent 0,transparent calc(20% - 1px),#ffffff06 calc(20% - 1px),#ffffff06 20%)}.today-line{position:absolute;top:0;bottom:0;border-left:1px dashed #e9d2a4a8;pointer-events:none;z-index:2}.today-line.top{height:43px;top:0}.today-line.top:before{content:'오늘';position:absolute;left:-14px;top:11px;font:9px var(--sans);color:#10131c;background:#e9d2a4;border-radius:2px;padding:2px 5px}.lane{height:31px;position:relative;margin-bottom:4px}.lane:last-child{margin:0}.timeline-bar{position:absolute;height:27px;top:2px;border:1px solid color-mix(in srgb,var(--game-color),transparent 65%);background:color-mix(in srgb,var(--game-color),#141a24 86%);color:var(--game-color);border-radius:3px;min-width:3px;overflow:hidden;display:flex;align-items:center;gap:7px;padding:0 9px;text-align:left;z-index:3;font-size:10px;white-space:nowrap;transition:filter .15s}.timeline-bar.upcoming{background:repeating-linear-gradient(135deg,#ffffff06 0 3px,transparent 3px 8px);border-style:dashed}.timeline-bar.ended{opacity:.46}.timeline-bar:hover{filter:brightness(1.45);z-index:5}.timeline-bar img{width:20px;height:20px;object-fit:cover;object-position:center 20%;border-radius:50%;background:#2c3440}.timeline-bar .bar-name{overflow:hidden;text-overflow:ellipsis}.timeline-bar .bar-version{opacity:.65;font:8px var(--mono);margin-left:auto}.timeline-empty{font-size:11px;color:#929aad;padding:22px}.timeline-caption{display:flex;justify-content:space-between;margin-top:13px;font-size:10px;color:#9199a9;gap:14px}.legend-line{display:inline-block;border-left:1px dashed var(--accent);height:10px;margin-right:6px;vertical-align:middle}.caption-dot{display:inline-block;width:2px;height:2px;background:#7d8596;vertical-align:middle;margin:0 10px}.mobile-hint{display:none;font-size:10px;color:var(--muted)}
.schedule-section{margin-top:43px}.status-filters{display:flex;gap:3px;padding:3px;background:#181d29;border:1px solid #2c3342;border-radius:5px}.status-filters button{font-size:11px;padding:6px 16px;color:#989fae;border-radius:3px}.status-filters .selected{background:#303744;color:#f2efe6}.schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.schedule-item{display:flex;align-items:center;gap:14px;border:1px solid #2a303e;border-radius:5px;padding:14px 16px;text-align:left;background:#171b26;min-width:0}.schedule-item:hover{border-color:var(--game-color);background:#1c222f}.list-portrait{width:48px;height:52px;object-fit:cover;object-position:center 20%;background:color-mix(in srgb,var(--game-color),#2b313c 80%);border-radius:4px;flex-shrink:0}.list-info{flex:1;min-width:0}.list-info small{font-size:9px;color:var(--game-color)}.list-info strong{display:block;font-size:13px;font-weight:500;margin:3px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-info p{margin:0;font:10px var(--mono);color:#a4acbc}.list-status{text-align:right;flex-shrink:0}.list-status .tag{font-size:8px}.list-status p{font-size:10px;color:#bcc1cb;margin:7px 0 0}.empty-state{padding:32px;color:#b4bdce;border:1px dashed #3a4458;border-radius:5px;grid-column:1/-1;text-align:center;font-size:13px}.empty-state button{display:block;margin:10px auto 0;color:var(--accent);text-decoration:underline}
footer{margin-top:52px;padding:25px 0 30px;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;flex-wrap:wrap;color:#7d8699;font-size:10px}.footer-brand{font:700 12px var(--display);color:#a5adbc}.footer-brand span{font:10px var(--sans);margin-left:9px;color:#737e92}footer p{flex:1;margin:0}footer button{font-size:10px;color:#adb6c7}
dialog{width:min(700px,calc(100% - 30px));max-height:90dvh;padding:0;border:1px solid #50586c;border-radius:12px;background:#171d2a;color:#edf0f5;box-shadow:0 30px 100px #0008;overflow:auto}dialog::backdrop{background:#070912bf;backdrop-filter:blur(7px)}.dialog-close{position:absolute;right:14px;top:14px;width:32px;height:32px;border-radius:50%;background:#10131ddd;border:1px solid #ffffff30;color:#fff;font-size:25px;line-height:1;z-index:5}.dialog-hero{height:230px;background:radial-gradient(ellipse at 40% 50%,color-mix(in srgb,var(--game-color),#1c2435 65%),#171d2a);position:relative;overflow:hidden}.dialog-hero img{width:100%;height:100%;object-fit:contain}.dialog-hero.banner img{object-fit:cover}.dialog-content{padding:26px 30px 32px}.dialog-content>.eyebrow{color:var(--game-color)}.dialog-content h2{font-size:25px;padding-right:25px;line-height:1.4}.dialog-content p{color:#aeb8c9;font-size:12px;line-height:1.8}.detail-dates{display:grid;grid-template-columns:1fr 1fr;margin:23px 0;border-top:1px solid #343e51;border-bottom:1px solid #343e51;gap:20px;padding:18px 0}.detail-dates dt{color:#8f9cb2;font-size:10px;margin-bottom:7px}.detail-dates dd{margin:0;font:13px var(--mono);line-height:1.7}.detail-dates small{font:11px var(--sans)}.character-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.character-chip{padding:6px 9px 6px 6px;display:flex;align-items:center;gap:8px;background:#232d3e;border:1px solid #35445a;border-radius:5px;font-size:11px}.character-chip img{width:36px;height:36px;object-fit:cover;object-position:center 20%;border-radius:3px;background:#354251}.character-chip small{display:block;font-size:9px;color:#aeb8c8;margin-top:2px}.detail-note{border-left:2px solid var(--game-color);padding:0 0 0 12px}.source-link{font-size:11px;color:#e5d0a8;display:inline-block;border:1px solid #4b4c47;padding:8px 11px;border-radius:3px;margin:5px 5px 0 0}.source-link:hover{background:#3a3b35}.source-section{border-top:1px solid #364155;padding-top:18px;margin-top:22px}.source-section h3{font-size:14px}.source-section ul{padding-left:20px;font-size:12px;color:#abb6c8;line-height:1.9}.source-section a{color:var(--accent)}.source-section a:hover{text-decoration:underline}.source-section summary{cursor:pointer;font-size:12px;color:#c4cbd7}.asset-list{word-break:break-word}.load-error{position:fixed;inset:30% 20%;background:#222938;border:1px solid #60677b;padding:30px;z-index:20}.load-error button{background:#ddd0b5;color:#182131;padding:8px 15px}
@media(min-width:1500px){.poster{height:440px}.character-title{font-size:30px}.theme-nikke .character-title{font-size:25px}}
@media(max-width:1100px){.topbar{gap:15px}.topbar nav{gap:20px}.poster{height:335px}.game-top{left:14px;right:14px}.game-logo{font-size:23px}.poster-caption{left:14px;right:14px}.character-title{font-size:22px}.theme-nikke .character-title{font-size:18px}.card-meta{padding:13px 12px}.date-row{font-size:10px}.card-next{padding:11px 12px;gap:6px}.card-next .next-name{font-size:10px}.card-next .next-date{font-size:9px}.game-grid{gap:12px}}
@media(max-width:850px){.topbar nav{gap:18px}.topbar nav a,.topbar nav button{font-size:11px}.private{font-size:0;border:0;padding:0}.private svg{width:17px}.topbar{height:75px}.topbar nav a,.topbar nav button{padding:26px 0}.brand{font-size:16px}.brand>svg{width:28px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.poster{height:380px}.game-logo{font-size:30px}.game-top{top:20px;left:20px;right:20px}.poster-caption{left:20px;right:20px}.character-title{font-size:28px}.theme-nikke .character-title{font-size:23px}.card-meta{padding:15px 18px}.date-row{font-size:12px}.card-next{padding:12px 17px}.card-next .next-name{font-size:11px}.card-next .next-date{font-size:10px}.verified{font-size:9px}.game-filter{padding:8px 10px}.schedule-list{grid-template-columns:1fr}.intro{padding-top:35px}.today-block time{font-size:24px}.intro-copy{font-size:12px}.calendar-section{margin-top:36px}}
@media(max-width:560px){main{padding:0 18px}.topbar{padding:0 18px;height:65px}.brand{font-size:16px;gap:9px}.brand small{font-size:8px;letter-spacing:2px}.brand>svg{width:26px}.topbar nav{margin-left:auto}.topbar nav a{display:none}.topbar nav button{font-size:10px;padding:0}.private{display:none}.intro{padding:31px 0 25px;align-items:flex-start}.eyebrow{font-size:8px;letter-spacing:1.3px}h1{font-size:29px;line-height:1.35;letter-spacing:-1.2px;max-width:220px}.intro-copy{font-size:11px;line-height:1.75;max-width:225px;margin-top:9px}.today-block{min-width:82px;padding-top:4px}.timezone{font-size:7px;letter-spacing:0}.today-block time{font-size:18px;margin-top:7px}.today-block p{font-size:9px;line-height:1.7;max-width:105px}.clock-dot{width:3px;height:3px;margin:0 2px 1px}.filterbar{align-items:flex-start;flex-direction:column;gap:12px;padding-top:16px;margin-bottom:16px}.game-filters{width:100%;gap:4px;justify-content:space-between}.game-filter{font-size:11px;padding:7px 9px}.game-filter i{width:4px;height:4px;margin-right:4px}.verified{align-self:flex-end;font-size:9px}.game-grid{gap:12px}.poster{height:288px}.game-top{top:13px;left:12px;right:12px;display:block}.game-logo{font-size:24px}.game-logo small{font-size:5px;letter-spacing:.45px;margin-top:5px}.version-label{display:inline-block;font-size:7px;margin-top:9px;padding:3px 4px}.theme-nikke .game-logo{font-size:27px}.theme-nikke .game-logo small{font-size:5px}.theme-nte .game-logo{font-size:27px}.theme-nte .game-logo small{font-size:5px}.poster-caption{left:12px;right:12px;bottom:15px}.tag{font-size:8px;padding:4px 5px}.phase-inline{font-size:8px;margin-left:5px}.character-title{font-size:21px;letter-spacing:-.8px;margin-top:8px}.theme-nikke .character-title{font-size:17px;max-width:130px}.character-subtitle{font-size:8px;max-width:110px}.poster-arrow{width:21px;height:21px;right:0;bottom:3px;font-size:11px}.card-meta{padding:12px 11px;min-height:87px}.date-row{font-size:10px;display:block;line-height:1.6}.date-row small{font-size:8px;display:block}.time-left{font-size:9px;margin-top:5px}.time-left small{font-size:8px}.progress{margin-top:9px}.card-next{padding:10px 10px;min-height:57px;gap:6px;flex-wrap:wrap}.card-next .next-name{font-size:9px}.card-next .next-date{font-size:8px;width:100%;padding-left:36px;margin-top:-2px}.card-next>span:first-child{font-size:6px;padding:2px 4px}.theme-genshin .card-decoration{inset:7px}.theme-genshin .card-decoration:after{inset:5px}.theme-wuwa .poster-art{height:95%;top:10%;width:163%;left:-45%;object-position:50% 0}.theme-genshin .poster-art{width:190%;left:-49%;top:3%}.theme-nikke .poster-art{width:245%;left:-75%}.theme-nte .poster-art{width:152%;left:-27%;top:5%}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:17px}h2{font-size:19px}.calendar-controls{width:100%;justify-content:flex-end}.calendar-controls>span{margin-right:auto;font-size:11px}.calendar-section{margin-top:34px}.mobile-hint{display:block}.timeline-caption{font-size:9px;flex-direction:column;gap:5px}.schedule-section{margin-top:32px}.schedule-section .section-heading{align-items:center}.status-filters button{font-size:10px;padding:5px 10px}.schedule-item{padding:12px 10px;gap:10px}.list-info strong{font-size:11px}.list-info p{font-size:9px}.list-status p{font-size:9px}.list-status .tag{font-size:7px}.list-portrait{width:39px;height:45px}footer{margin-top:35px;gap:13px;padding:24px 0}footer p{flex-basis:100%;font-size:9px}.dialog-content{padding:24px 20px}.dialog-hero{height:200px}.dialog-content h2{font-size:23px}.detail-dates{gap:10px}.detail-dates dd{font-size:11px}.game-grid.filtered{grid-template-columns:1fr}.game-grid.filtered .poster{height:390px}.game-grid.filtered .character-title{font-size:30px}.load-error{inset:25% 18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
.poster-art{top:0}
.today-line.top:before{white-space:nowrap}
h1 span{display:inline-block;white-space:nowrap}

/* Full lineups: retain the four game identities and make every featured character visible. */
.game-grid{align-items:start}
.poster{height:350px}
.character-title.long-title{font-size:24px;line-height:1.35}
.hero-duo{position:absolute;inset:0;display:flex;overflow:hidden}
.hero-duo>span{position:absolute;inset:0 auto 0 0;width:57%;overflow:hidden}
.hero-duo>span:last-child{left:auto;right:0;clip-path:polygon(13% 0,100% 0,100% 100%,0 100%)}
.hero-duo img{width:100%;height:100%;object-fit:cover;object-position:55% 30%;transition:transform .6s}
.hero-duo>span:last-child img{object-position:59% 30%}
.poster:hover .hero-duo img{transform:scale(1.035)}
.theme-genshin:has(.hero-duo) .game-logo{color:#fff;text-shadow:0 1px 4px #124c59,0 2px 12px #124c59}
.card-roster{padding:17px 15px 13px;background:#191e2a;border-top:1px solid #ffffff0a}
.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px}
.roster-heading h4{font-size:11px;font-weight:600;margin:0;color:#e0e4ec;line-height:1.5}
.roster-heading h4>span{margin-left:4px;font-size:9px;color:#9da8bb;font-weight:400}
.roster-heading>span{font-size:9px;color:#919db0;text-align:right}
.roster-grid{display:grid;grid-template-columns:repeat(var(--roster-columns),minmax(0,1fr));gap:7px}
.roster-character{min-width:0;padding:8px 3px;border:1px solid transparent;border-radius:5px;display:flex;align-items:center;flex-direction:column;gap:8px;background:#202735;text-align:center;transition:background .15s,border-color .15s}
.roster-character:hover{border-color:color-mix(in srgb,var(--game-color),transparent 35%);background:#2a3343;color:#fff}
.roster-image{width:min(64px,100%);aspect-ratio:1;display:block;overflow:hidden;border-radius:5px;border:1px solid #ffffff18;background:color-mix(in srgb,var(--game-color),#273142 85%);flex-shrink:0}
.roster-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.roster-name{display:flex;align-items:center;flex-direction:column;gap:4px;min-width:0;line-height:1.35}
.roster-name strong{font-size:11px;font-weight:500;color:#e3e8f1;word-break:keep-all;overflow-wrap:anywhere}
.name-variant{font-size:9px;color:#b1bdd0;word-break:keep-all;overflow-wrap:anywhere}
.kind-badge{display:inline-block;font:9px var(--sans);padding:2px 5px;line-height:1.3;border:1px solid #516075;border-radius:3px;white-space:nowrap;font-weight:400}
.kind-badge.new{color:var(--game-color);background:color-mix(in srgb,var(--game-color),transparent 93%);border-color:color-mix(in srgb,var(--game-color),transparent 73%)}
.kind-badge.rerun{color:#bec9dc;background:#7b90b312;border-color:#50607977}
.roster-deadline{font:9px var(--mono);color:#aeb8ca;margin-top:5px;white-space:nowrap;letter-spacing:-.4px}
.shared-deadline{display:flex;gap:5px;justify-content:space-between;align-items:center;color:#abb6c9;font-size:9px;margin:13px 0 0;line-height:1.5}
.shared-deadline time{font:10px var(--mono);color:#c6cedc;white-space:nowrap}
.urgent,.urgent time{color:#ffc594!important}
.time-left.urgent{font-weight:500}
.time-left.urgent small{color:#ffc594c9}
.choice-roster{margin-top:17px;border-top:1px solid #364052;padding-top:15px}
.choice-grid{gap:6px}
.choice-grid .roster-image{width:43px}
.choice-grid .roster-character{padding:7px 3px;gap:5px}
.choice-grid .roster-name strong{font-size:10px}
.choice-grid .name-variant{font-size:8px}
.choice-grid .kind-badge{font-size:8px;padding:1px 4px}
.choice-grid .roster-name{gap:3px}
.next-roster{border-top:1px solid #333c4b;padding:15px;background:#171c28}
.next-roster .roster-heading{margin-bottom:10px}
.preview-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.roster-character.compact{flex-direction:row;text-align:left;padding:6px;gap:7px;align-items:center;background:transparent}
.roster-character.compact:hover{background:#242d3d}
.compact .roster-image{width:33px;height:33px;aspect-ratio:auto}
.compact .roster-name{align-items:flex-start;gap:3px}
.compact .roster-name strong{font-size:10px}
.compact .name-variant{font-size:8px}
.compact .kind-badge{font-size:8px;padding:1px 4px}
.next-empty{border-top:1px solid #333c4b;padding:14px 15px;color:#919caf;font-size:10px}
.bar-faces{display:flex;flex-shrink:0;padding-left:3px}
.timeline-bar .bar-faces img{margin-left:-3px;border:1px solid #273142;object-position:top}
.timeline-bar .bar-version{display:none}
.schedule-list{align-items:start}
.schedule-item{display:block;padding:0;overflow:hidden;transition:border-color .15s}
.schedule-item-header{width:100%;display:flex;align-items:center;gap:15px;padding:17px 18px 13px;text-align:left}
.schedule-item .list-info strong{white-space:normal;overflow:visible;line-height:1.5}
.list-lineup{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0 12px 12px}
.list-lineup .roster-character{background:#ffffff03}
.list-lineup .roster-image{width:39px;height:39px}
.list-lineup .roster-name strong{font-size:11px}
.list-lineup .name-variant{font-size:9px}
.list-deadline{background:#ffffff03;border-top:1px solid #ffffff09;display:flex;justify-content:space-between;gap:12px;padding:10px 18px;font-size:10px;color:#93a0b4}
.list-deadline time{font:10px var(--mono);color:#b8c4d7}
.schedule-item.ending-soon{border-left:2px solid #b38a59}
.character-chip{cursor:pointer;text-align:left}
.character-chip.selected{border-color:var(--game-color);background:color-mix(in srgb,var(--game-color),#202838 91%)}
.character-chip img{object-position:top}
.dialog-content .lineup-caption{font-size:10px;margin-top:22px;color:#a5b2c8}
.dialog-content .character-chips{margin-top:9px}
.dialog-content h2 .kind-badge{vertical-align:middle;margin-left:3px;font-size:10px;letter-spacing:0}
.dialog-hero.portrait-hero{height:200px;display:grid;place-items:center}
.portrait-hero img{width:150px;height:150px;border-radius:8px;border:1px solid #ffffff20;image-rendering:auto}
.roster-character[data-banner="nte14"][data-character="0"] .roster-image img{object-position:72% center}
@media(min-width:1500px){.poster{height:390px}}
@media(max-width:1100px){.poster{height:310px}.card-roster,.next-roster{padding-left:11px;padding-right:11px}.roster-grid{gap:5px}.roster-name strong{font-size:10px}.roster-image{width:min(56px,100%)}.roster-deadline{font-size:8px}.compact .roster-image{width:27px;height:27px}.roster-character.compact{gap:5px;padding:4px}.compact .roster-name strong{font-size:9px}.preview-roster{gap:4px}.character-title.long-title{font-size:20px}.choice-grid .roster-image{width:37px}}
@media(max-width:850px){.poster{height:350px}.card-roster,.next-roster{padding-left:17px;padding-right:17px}.roster-image{width:68px}.roster-name strong{font-size:12px}.name-variant{font-size:10px}.roster-heading h4{font-size:12px}.roster-heading>span{font-size:10px}.roster-deadline{font-size:10px}.compact .roster-image{width:33px;height:33px}.compact .roster-name strong{font-size:11px}.choice-grid .roster-image{width:49px}.choice-grid .roster-name strong{font-size:11px}.choice-grid .name-variant{font-size:9px}.list-lineup{grid-template-columns:repeat(3,minmax(0,1fr))}.character-title.long-title{font-size:24px}}
@media(max-width:560px){.poster{height:260px}.character-title.long-title{font-size:18px}.theme-genshin .hero-duo>span{width:59%}.card-roster{padding:12px 9px 10px}.roster-heading{gap:4px;flex-wrap:wrap;margin-bottom:10px}.roster-heading h4{font-size:10px}.roster-heading h4>span{font-size:8px;margin-left:2px}.roster-heading>span{font-size:8px}.roster-grid{gap:4px}.roster-character{padding:5px 2px;gap:5px}.roster-image{width:min(50px,100%)}.roster-name strong{font-size:10px}.roster-name{gap:4px}.name-variant{font-size:8px}.kind-badge{font-size:8px;padding:1px 3px}.shared-deadline{display:block;font-size:8px;line-height:1.8;margin-top:9px}.shared-deadline>span{margin-right:5px}.shared-deadline time{font-size:9px}.roster-deadline{white-space:normal;font-size:8px;line-height:1.65}.choice-roster{margin-top:13px;padding-top:11px}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid .roster-image{width:38px}.choice-grid .roster-name strong{font-size:10px}.choice-grid .name-variant{font-size:8px}.choice-grid .roster-character{padding:6px 2px}.next-roster{padding:11px 9px}.preview-roster{grid-template-columns:1fr;gap:3px}.compact .roster-image{width:30px;height:30px}.roster-character.compact{padding:4px;gap:6px}.compact .roster-name strong{font-size:10px}.compact .name-variant{font-size:8px}.next-empty{padding:12px 10px;font-size:9px}.schedule-item-header{padding:14px 13px 12px}.list-lineup{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 9px 10px}.list-lineup .roster-image{width:35px;height:35px}.list-lineup .roster-name strong{font-size:10px}.list-lineup .name-variant{font-size:8px}.list-deadline{padding:9px 13px;font-size:9px}.list-deadline time{font-size:9px}.roster-character.compact{min-height:42px}.game-grid.filtered .roster-grid{grid-template-columns:repeat(var(--roster-columns),minmax(0,1fr))}.game-grid.filtered .roster-image{width:64px}.game-grid.filtered .preview-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.game-grid.filtered .compact .roster-image{width:32px;height:32px}}

/* Compact game cards, a shared selection strip, and a chronological agenda. */
.game-grid{align-items:stretch}
.game-card{display:flex;flex-direction:column}
.game-card .next-roster,.game-card .next-empty{margin-top:auto}
.card-roster{padding-bottom:17px}
.face{display:inline-block;overflow:hidden;flex-shrink:0;background:#283343;border-radius:5px;vertical-align:middle}
.face img{display:block;width:100%;height:100%;object-fit:cover}
.chip-face{width:36px;height:36px}
.character-chip .chip-face img{width:100%;height:100%;border:0}
.bar-face{width:20px;height:20px;border-radius:50%;margin-left:-3px;border:1px solid #283343}
.timeline-bar .bar-faces .bar-face img{width:100%;height:100%;margin:0;border:0}
.choice-section{margin-top:18px}
.selection-band{display:grid;grid-template-columns:180px 1fr;align-items:center;gap:20px;border:1px solid #3c414d;border-left:3px solid var(--nikke);border-radius:6px;padding:20px;background:#181d27}
.selection-intro h3{font-size:17px;margin:0;font-weight:600;letter-spacing:-.5px}
.selection-intro .eyebrow{font-size:10px;margin-bottom:8px;color:var(--nikke)}
.selection-intro>p:not(.eyebrow){font-size:12px;color:#aab5c8;margin:7px 0 0}
.selection-intro strong{font-weight:500;color:#dce3ee}
.selection-intro .shared-deadline{display:block;line-height:1.8}
.selection-intro .shared-deadline>span{margin-right:5px}
.selection-intro .shared-deadline time{font-size:11px}
.selection-characters{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.selection-characters .roster-character.compact{flex-direction:column;text-align:center;background:#222b39;padding:12px 4px;gap:7px}
.selection-characters .roster-name{align-items:center}
.selection-characters .roster-image{width:48px;height:48px}
.selection-characters .roster-name strong{font-size:12px}
.selection-characters .name-variant{font-size:10px}
.selection-characters .kind-badge{font-size:10px}
.agenda{display:block;border:1px solid #30384a;border-radius:6px;overflow:hidden}
.agenda-row{display:grid;grid-template-columns:105px 90px minmax(0,1fr) 170px;align-items:center;gap:22px;width:100%;padding:18px 22px;text-align:left;background:#181d28;border-bottom:1px solid #30384a;min-height:88px}
.agenda-row:last-child{border-bottom:0}
.agenda-row:hover{background:#242e3d}
.agenda-row.past{opacity:.65}
.agenda-row.ending-soon{box-shadow:inset 3px 0 #c4a176}
.agenda-date strong{display:block;font:500 19px var(--mono);color:#e0e6f0;letter-spacing:-.6px}
.agenda-date small{display:block;font:11px var(--mono);color:#afbacd;margin-top:6px;white-space:nowrap}
.agenda-timezone{display:none}
.event-kind{font-size:11px;padding:5px 8px;border:1px solid #485365;border-radius:4px;width:fit-content;white-space:nowrap;color:#c4ccda}
.event-kind.start{color:#b5d8d7;border-color:#4d7577;background:#526b7712}
.event-kind.end{color:#e2cda5;border-color:#77684b;background:#77684b12}
.event-kind.check{color:#e4b99a;border-color:#77584d}
.agenda-info{min-width:0}
.agenda-info small{display:block;font-size:11px;color:var(--game-color);margin-bottom:5px}
.agenda-info strong{font-size:14px;font-weight:500;line-height:1.6;color:#e1e7f0;word-break:keep-all}
.agenda-info strong+small{color:#a1afc3;margin-top:5px;margin-bottom:0}
.agenda-remaining{font-size:12px;color:#aeb9ce;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:right}
.agenda-remaining>span:last-child{font-size:17px;color:#8f9bb0}
.today-block{min-width:230px}
.today-block p{line-height:1.8}
@media(max-width:1100px){.selection-band{grid-template-columns:155px 1fr;gap:14px;padding:16px}.selection-characters{gap:6px}.selection-characters .name-variant{font-size:9px}.selection-characters .roster-image{width:43px;height:43px}.agenda-row{grid-template-columns:95px 78px minmax(0,1fr) 140px;gap:15px}}
@media(max-width:850px){.selection-band{grid-template-columns:1fr;gap:15px}.selection-intro{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 14px}.selection-intro .eyebrow{width:100%;margin:0}.selection-intro .shared-deadline{margin-left:auto!important}.selection-characters{grid-template-columns:repeat(3,minmax(0,1fr))}.selection-characters .roster-character.compact{flex-direction:row;text-align:left;padding:10px;gap:9px}.selection-characters .roster-name{align-items:flex-start}.selection-characters .name-variant{font-size:11px}.agenda-row{grid-template-columns:90px 72px minmax(0,1fr);gap:12px}.agenda-remaining{grid-column:3;justify-content:flex-start;text-align:left;font-size:11px;margin-top:-5px}.agenda-row{padding:15px 17px}}
@media(max-width:560px){
 main{padding:0 16px}.intro{padding:25px 0 21px;gap:12px}.intro h1{font-size:26px}.intro-copy{font-size:12px}.today-block{min-width:110px}.today-block p{font-size:10px;max-width:130px}.today-block time{font-size:21px}.timezone{font-size:8px}
 .filterbar{gap:12px}.game-filter{font-size:12px;padding:8px 10px}.verified{font-size:11px}.verified button{width:18px;height:18px;font-size:12px}.game-grid,.game-grid.filtered{grid-template-columns:1fr;gap:19px}
 .game-card{display:grid;grid-template-columns:110px minmax(0,1fr);grid-template-rows:auto auto auto;border-radius:7px;overflow:hidden}
 .game-card .poster,.game-grid.filtered .poster{grid-column:1;grid-row:1/3;width:100%;height:100%;min-height:268px;align-self:stretch}
 .game-card .card-meta{grid-column:2;grid-row:1;padding:14px 13px 10px;min-height:0}
 .game-card .card-roster{grid-column:2;grid-row:2;padding:10px 10px 12px}
 .game-card .next-roster,.game-card .next-empty{grid-column:1/-1;grid-row:3;margin-top:0;padding:12px}
 .poster-caption{left:10px;right:8px;bottom:15px}.poster-caption .character-title,.game-grid.filtered .character-title{font-size:17px;line-height:1.4;margin-top:9px;word-break:keep-all;overflow-wrap:anywhere}
 .poster-caption .character-subtitle{display:none}.poster-caption .phase-inline{display:block;margin:5px 0 0;font-size:11px}.poster-arrow{display:none}.poster-caption .tag{font-size:10px;padding:4px 5px}.game-top{left:10px;right:7px;top:13px}.game-logo{font-size:25px}.game-logo small{display:none}.theme-nte .game-logo small,.theme-nikke .game-logo small{display:none}.version-label{font-size:9px;margin-top:8px}.theme-wuwa .game-logo{letter-spacing:1px}.theme-genshin .game-logo{letter-spacing:2px}
 .theme-wuwa .poster-art{width:260%;left:-98%;height:100%;top:0;object-position:50% 0}.theme-genshin .poster-art{width:260%;left:-80%;height:100%;top:0}.theme-nte .poster-art{width:260%;left:-92%;height:100%;top:0;object-position:50% 15%}.theme-nikke .poster-art{width:340%;left:-126%;height:100%;top:0}.theme-genshin .hero-duo>span{width:60%}.hero-duo img{object-position:53% 30%}.hero-duo>span:last-child img{object-position:62% 30%}
 .date-row{display:block;font-size:12px;line-height:1.7}.date-row small{display:inline-block;font-size:10px;margin-top:3px}.time-left{display:block;font-size:12px;margin-top:6px;line-height:1.6}.time-left small{display:block;font-size:10px;margin-top:3px}.progress{margin-top:8px}
 .roster-heading{gap:5px;margin-bottom:9px}.roster-heading h4{font-size:12px}.roster-heading h4>span{font-size:11px}.roster-heading>span{font-size:10px}
 .game-card .roster-grid,.game-grid.filtered .game-card .roster-grid{grid-template-columns:1fr;gap:5px}
 .game-card .roster-character{flex-direction:row;align-items:center;text-align:left;padding:7px;gap:9px;min-height:58px}
 .game-card .roster-name{align-items:flex-start;gap:4px;flex:1}.game-card .roster-name strong{font-size:13px;line-height:1.45}.game-card .name-variant{font-size:12px;line-height:1.45}
 .game-card .roster-image,.game-grid.filtered .game-card .roster-image{width:40px;height:40px;aspect-ratio:auto}
 .kind-badge,.compact .kind-badge{font-size:11px;padding:2px 5px}.roster-deadline{font-size:11px;letter-spacing:-.4px;margin-top:1px;line-height:1.6}.shared-deadline{font-size:11px;margin-top:9px;line-height:1.8}.shared-deadline time{display:block;font-size:12px;letter-spacing:-.4px}
 .preview-roster,.game-grid.filtered .preview-roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.next-roster .roster-character.compact{padding:6px;gap:7px}.next-roster .roster-image,.game-grid.filtered .next-roster .roster-image{width:33px;height:33px}.next-roster .roster-name strong{font-size:12px}.next-roster .name-variant{font-size:11px}.next-roster .kind-badge{font-size:10px}.next-roster .roster-heading>span{font-size:11px}.next-empty{font-size:12px;line-height:1.6}
 .selection-band{padding:16px 12px;gap:13px}.selection-intro{display:block}.selection-intro .eyebrow{font-size:11px;margin-bottom:5px}.selection-intro h3{font-size:18px}.selection-intro>p:not(.eyebrow){font-size:12px}.selection-intro .shared-deadline time{display:inline;font-size:12px}
 .selection-characters{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.selection-characters .roster-character.compact{padding:9px 6px;gap:7px;align-items:flex-start}.selection-characters .roster-image{width:36px;height:36px}.selection-characters .roster-name strong{font-size:13px}.selection-characters .name-variant{font-size:12px;line-height:1.5}.selection-characters .kind-badge{font-size:11px}.selection-characters .roster-name{gap:4px}
 .calendar-section,.schedule-section{margin-top:30px}.status-filters button{font-size:12px;padding:7px 10px}.status-filters{width:100%;justify-content:space-between}.status-filters button{flex:1}.calendar-controls>span{font-size:12px}.calendar-controls button{font-size:12px;min-height:36px}.mobile-hint,.timeline-caption{font-size:11px}
 .agenda-row{grid-template-columns:72px minmax(0,1fr);gap:8px 12px;padding:15px 12px;min-height:105px}.agenda-date{grid-column:1;grid-row:1/4;align-self:start}.agenda-date strong{font-size:18px}.agenda-date small{font-size:11px;white-space:normal;line-height:1.6}.event-kind{grid-column:2;grid-row:1;font-size:11px;padding:3px 6px}.agenda-info{grid-column:2;grid-row:2}.agenda-info small{font-size:11px;margin:3px 0}.agenda-info strong{font-size:13px;line-height:1.6}.agenda-remaining{grid-column:2;grid-row:3;font-size:12px;margin-top:0;justify-content:space-between}
 .character-chip{min-height:50px}.character-chip span{font-size:12px}.character-chip small{font-size:11px}.dialog-content p{font-size:13px}.detail-dates dd{font-size:12px}.source-link{font-size:12px}.dialog-content .lineup-caption{font-size:12px}
}
@media(max-width:350px){.game-card{grid-template-columns:90px minmax(0,1fr)}.game-card .card-meta{padding:12px 10px 8px}.game-card .card-roster{padding:9px 7px}.game-card .roster-character{gap:7px;padding:6px}.game-card .roster-image{width:33px;height:33px}.selection-characters .roster-character.compact{flex-direction:column;align-items:center;text-align:center}.selection-characters .roster-name{align-items:center}.intro h1{font-size:23px}.game-filter{padding:8px 7px}}
