:root{color:#f7f2e9;background:#172f48;font-family:"Noto Serif SC","Songti SC",serif}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:linear-gradient(160deg,#173957,#0f253b 52%,#172f48);color:#f7f2e9}
.site-header{position:relative;background:rgba(9,29,47,.72);border-bottom:1px solid rgba(255,255,255,.12)}
main{width:min(1120px,calc(100% - 32px));margin:auto;padding:64px 0 96px}
.intro{max-width:800px;margin-bottom:46px}.kicker{margin:0 0 10px;color:#e8c58f;font:700 11px/1.4 system-ui;letter-spacing:.22em}
.intro h1{margin:0 0 18px;font-size:clamp(42px,8vw,88px);font-weight:400;line-height:1.08}.intro>p:not(.kicker):not(.personal-slot){max-width:650px;color:#dce5e8;font-size:17px;line-height:1.9}
.progress-copy{display:flex;align-items:baseline;gap:10px;margin-top:28px}.progress-copy strong{color:#f4c980;font:500 clamp(36px,6vw,64px)/1 system-ui}.progress-copy span{color:#c7d7df}.progress-track{width:min(560px,100%);height:7px;margin-top:12px;border-radius:9px;background:rgba(255,255,255,.12);overflow:hidden}.progress-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#f2bd64,#6ea7dc);transition:width .7s}
.personal-slot{display:inline-block;margin-top:20px!important;padding:10px 16px;border:1px solid rgba(244,201,128,.5);border-radius:999px;color:#ffe2aa;background:rgba(244,201,128,.08);font:600 14px/1.4 system-ui}
.art-section{padding:clamp(20px,4vw,44px);border:1px solid rgba(255,255,255,.13);border-radius:28px;background:rgba(255,255,255,.055);box-shadow:0 30px 90px rgba(0,0,0,.16)}.art-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.art-heading h2{margin:0;font-size:clamp(28px,5vw,48px);font-weight:400}.art-heading a{color:#f7db9b;text-decoration:none}
.poster-shell{width:min(690px,100%);margin:auto;padding:clamp(18px,4vw,38px);background:#f3ead9;box-shadow:0 18px 55px rgba(0,0,0,.35)}.day-grid{display:grid;grid-template-columns:repeat(25,1fr);gap:clamp(1px,.28vw,3px);aspect-ratio:5/8;padding:8%;background:linear-gradient(#f7f0e4,#e6dcc6)}
.day-cell{position:relative;display:grid;place-items:center;border-radius:18%;opacity:.1;transition:opacity .3s,transform .3s,box-shadow .3s;background-color:var(--motif-color)}
.day-cell.lit{z-index:1;opacity:1;background-color:var(--lit-color);outline:1px solid rgba(255,255,255,.72)}.day-cell.mine{z-index:2;outline:3px solid #80536a;outline-offset:2px}
.legend{display:flex;justify-content:center;align-items:center;gap:8px;color:#c4d2d8;font:13px/1.4 system-ui}.legend i,.legend span{width:14px;height:14px;border-radius:3px;background:#4f88ad}.legend span{margin-left:12px;background:#c7bea9;opacity:.25}
.lit-days{margin:28px auto 0;max-width:760px;text-align:center}.lit-days h3{margin:0 0 14px;color:#e8c58f;font:500 18px/1.4 "Songti SC",serif}.lit-days>div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.lit-days b{padding:7px 11px;border:1px solid rgba(255,224,156,.28);border-radius:999px;color:#d8e9f5;background:linear-gradient(120deg,rgba(255,209,116,.13),rgba(82,146,207,.18));font:500 12px/1.2 system-ui}
.download-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px}.download-actions button{padding:12px 18px;border:1px solid #e4c58d;border-radius:999px;color:#ffe8b8;background:transparent;font:600 14px/1 system-ui;cursor:pointer}.status{text-align:center;color:#f2d49b;font:13px/1.5 system-ui}footer{padding:32px;text-align:center;color:#aec1ca;border-top:1px solid rgba(255,255,255,.1)}
@media(max-width:620px){main{padding-top:38px}.art-heading{align-items:start;flex-direction:column}.poster-shell{padding:15px}.day-grid{gap:1px}.intro h1{font-size:43px}}
.progress-copy span b{color:#f7dda9;font-weight:700}.stage-message{margin:10px 0 0!important;color:#f3ce8d!important;font:600 14px/1.6 system-ui!important}.day-cell{opacity:var(--motif-opacity,.045)}.day-cell.stage-star{opacity:.72;background:#e5bd66;box-shadow:0 0 8px #f3cf76}.day-cell.stage-star::after{content:"";width:35%;height:35%;border-radius:50%;background:#fff3b5;box-shadow:0 0 7px #fff2a5}.day-cell.lit{opacity:1}
.day-grid.completed .day-cell{opacity:1;background-color:var(--motif-color)}.day-grid.completed .day-cell.stage-star{background-color:#e5bd66}
.poster-shell.complete{padding:0;background:transparent}.poster-artwork{width:100%;aspect-ratio:420/594;display:grid;place-items:center;background:#f7f0e4}.poster-artwork>svg{display:block;width:100%;height:auto}.poster-loading{padding:24px;color:#315f7d;text-align:center;font:15px/1.7 system-ui}.poster-artwork .personal-marker{pointer-events:none}.poster-artwork .personal-marker rect{fill:none;stroke:#944d71;stroke-width:8;stroke-linejoin:round}.intro>.completion-note{font:13px/1.8 system-ui!important;color:#c1d0d8!important}.download-actions button:disabled{opacity:.6;cursor:wait}
