:root{--w:min(100vw,480px);--bg1:#b7e3fa;--bg2:#dcf0fc;--head:#2a7ba6;--ink:#24485c;--mut:#5e8296;--card:#f4fbff;--t1:#d8effd;--t2:#b6e4f9;--acc:#3a9bd4;--line:#b6e4f9;color-scheme:only light;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px);min-height:100%;background:linear-gradient(180deg,var(--bg1),var(--bg2)) fixed}
body{margin:0;color:var(--ink);font:400 1.05rem/1.65 "Figtree",system-ui,sans-serif}
h2,h3{font-weight:800;line-height:1.2;margin:0}
#cv{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:60}
.app{max-width:480px;margin:0 auto;padding:calc(var(--w)*.042)}
.card{background:var(--card);border-radius:calc(var(--w)*.083);padding:calc(var(--w)*.062);box-shadow:0 calc(var(--w)*.05) calc(var(--w)*.1) calc(var(--w)*-.04) rgba(42,123,166,.35)}
.dots{display:flex;gap:.3rem;margin:0 .3rem .9rem}
.dots i{flex:1;height:5px;border-radius:9px;background:rgba(255,255,255,.65);transition:background .5s}
.dots i.d{background:var(--head)}
.page{display:none}
.page.on{display:block;animation:in .7s cubic-bezier(.2,.8,.2,1)}
@keyframes in{from{opacity:0;transform:translateY(16px)}}
h2{font-size:calc(var(--w)*.064);font-weight:700;color:var(--head);margin-bottom:calc(var(--w)*.04)}
.sb{color:var(--mut);font-size:calc(var(--w)*.034);margin:0 0 calc(var(--w)*.05)}
#ld{position:fixed;inset:0;z-index:50;background:linear-gradient(180deg,var(--bg1),var(--bg2));color:var(--ink);display:flex;align-items:center;justify-content:center;padding:calc(var(--w)*.042);clip-path:circle(150% at 50% 50%);transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
#ld.out{clip-path:circle(0 at 50% 50%)}
.lc{width:100%;max-width:420px;background:var(--card);border-radius:calc(var(--w)*.083);padding:calc(var(--w)*.1) calc(var(--w)*.062);text-align:center;display:flex;flex-direction:column;align-items:center;gap:calc(var(--w)*.03);box-shadow:0 calc(var(--w)*.05) calc(var(--w)*.1) calc(var(--w)*-.04) rgba(42,123,166,.35)}
#ld svg{width:calc(var(--w)*.24)}
#pc{font-size:calc(var(--w)*.064);font-weight:700;color:var(--head)}
#ls{color:var(--mut);font-size:calc(var(--w)*.034)}
#ld .go{width:100%;margin:0;animation:pu 1.4s infinite}
@keyframes pu{50%{transform:scale(1.07)}}
.hero{text-align:center;padding:1rem 0 2.4rem}
.nm{font-size:1.3rem;font-weight:500;color:var(--mut)}
.days{font-size:clamp(5.5rem,30vw,9rem);font-weight:800;line-height:1;background:linear-gradient(100deg,var(--head) 30%,#8fd6fb 50%,var(--head) 70%) 0 0/250% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:sh 4s linear infinite;font-variant-numeric:tabular-nums}
@keyframes sh{to{background-position:-250% 0}}
.tag{min-height:3.4rem;font-size:1.15rem;margin:.6rem 0}
.live{color:var(--mut);font-variant-numeric:tabular-nums}
.next{display:inline-block;margin-top:1.2rem;padding:.8rem 1.4rem;border-radius:999px;background:linear-gradient(160deg,var(--t1),var(--t2))}
.next b{color:var(--head);font-size:1.3rem}
.tl{margin:1.2rem 0 0 .5rem;padding:0 0 0 1.8rem;list-style:none;border-left:2px dashed var(--acc)}
.tl li{position:relative;padding-bottom:1.8rem}
.tl li::before{content:"";position:absolute;left:-2.55rem;top:.35rem;width:1.1rem;height:1.1rem;border-radius:50%;background:var(--acc);box-shadow:0 0 0 5px var(--t1)}
.tl small{color:var(--mut)}
.tl h3{font-size:1.35rem;margin:.1rem 0 .3rem;color:var(--ink)}
.tl p{margin:0}
.rv{opacity:0;transform:translateY(18px) scale(.97);transition:opacity .7s,transform .7s}
.rv.v{opacity:1;transform:none}
button{font:inherit;color:var(--ink);background:linear-gradient(150deg,var(--t1),var(--t2));border:0;border-radius:calc(var(--w)*.06);padding:1rem 1.3rem;margin:0 0 .6rem;width:100%;text-align:left;cursor:pointer;transition:transform .2s,background .2s}
button:hover{background:var(--t2)}
button:focus-visible{outline:3px solid var(--acc);outline-offset:2px}
button.ok{background:var(--acc);color:#fff}
button.no{opacity:.5;animation:sk .4s}
@keyframes sk{25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
button.go,.nb{text-align:center;font-weight:700;color:#fff;background:linear-gradient(160deg,#5db6e8,#2a7ba8)}
.nb{margin:2.2rem 0 .4rem;padding:1rem}
.nb:disabled{background:var(--t2);color:var(--mut);cursor:not-allowed;opacity:.8}
.hint{text-align:center;color:var(--mut);margin:0;min-height:1.6rem}
.bar{height:6px;background:var(--t2);border-radius:9px;overflow:hidden;margin-bottom:1rem}
.bar i{display:block;height:100%;background:var(--acc);transition:width .5s}
.st{color:var(--mut);margin:0 0 .3rem}
.qz h3{font-size:1.5rem;margin-bottom:1rem;color:var(--ink)}
.msg{min-height:1.5rem;margin:0;color:var(--mut)}
.cnt{color:var(--mut);margin:0 0 1.2rem}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.ph.l{grid-column:span 2}
.ph{position:relative;display:block;width:100%;padding:0;border:0;margin:0;border-radius:1.3rem;overflow:hidden;background:none}
.pb{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:2.2rem;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5);pointer-events:none}
.ph img,.ph video,.ph span,.fk{width:100%;height:100%;display:flex;align-items:center;justify-content:center;object-fit:cover;color:#fff;font-weight:800;font-size:1.6rem}
.ph:hover{transform:scale(1.04) rotate(-.8deg);background:none}
.lb{position:fixed;inset:0;z-index:30;background:rgba(8,32,50,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:1rem;touch-action:pan-y}
.lb[hidden]{display:none}
#lbc{width:min(92vw,30rem);height:68vh;border-radius:1.4rem;overflow:hidden}
#lbc img,#lbc video{width:100%;height:100%;object-fit:contain}
.lb p{color:#d6efff;margin:0}
.lb .nv{display:flex;gap:.6rem}
.lb button{width:auto;text-align:center;margin:0}
.tile{display:block;border-radius:calc(var(--w)*.083);padding:calc(var(--w)*.065) calc(var(--w)*.055);margin:0 0 calc(var(--w)*.044);min-height:calc(var(--w)*.417);background:linear-gradient(150deg,var(--t1),var(--t2))}
.tile:hover{transform:translateY(-3px);background:linear-gradient(150deg,var(--t1),var(--t2))}
.tile .em{display:block;font-size:calc(var(--w)*.1);line-height:1;margin-bottom:calc(var(--w)*.04)}
.tile b{display:block;font-size:calc(var(--w)*.043);color:var(--ink)}
.tile small{display:block;color:var(--mut);font-size:calc(var(--w)*.035);margin-top:calc(var(--w)*.012);line-height:1.5}
.tile.open{animation:pop .5s}
@keyframes pop{40%{transform:scale(1.04)}}
.bh{width:7.5rem;height:7.5rem;border-radius:50%;margin:1rem auto;display:block;text-align:center;font-size:3.4rem;padding:0;background:linear-gradient(160deg,var(--t1),var(--t2));animation:hb 1.3s infinite}
@keyframes hb{20%{transform:scale(1.12)}40%{transform:scale(1)}}
#rl{list-style:none;margin:0;padding:0}
#rl li{background:linear-gradient(160deg,var(--t1),var(--t2));border-radius:1.2rem;padding:.9rem 1.1rem;margin-bottom:.6rem;animation:pop .5s}
.chk{display:flex;align-items:center;gap:.8rem;border-radius:1.2rem}
.chk i{flex:none;width:1.5rem;height:1.5rem;border-radius:50%;border:2px solid var(--acc);display:flex;align-items:center;justify-content:center;font-style:normal;color:#fff;font-size:.9rem}
.chk.ok i{background:#fff;color:var(--acc);border-color:#fff}
.lt{white-space:pre-line;font-size:1.15rem;line-height:1.8;margin:1rem 0 0}
.fin{text-align:center;padding:1rem 0}
.fin .big{font-size:4rem;animation:hb 1.3s infinite;filter:drop-shadow(0 4px 10px rgba(42,123,166,.35))}
a.wa{display:block;text-decoration:none;text-align:center;font-weight:700;border-radius:calc(var(--w)*.06);margin:1rem 0 0}
a.wa.no{background:linear-gradient(150deg,var(--t1),var(--t2));color:var(--ink)}
.sl{text-align:center}
.sh{height:calc(var(--w)*.5);display:flex;align-items:center;justify-content:center;font-size:calc(var(--w)*.1)}
.sh span{display:inline-block;transition:transform .15s;filter:drop-shadow(0 4px 10px rgba(42,123,166,.35))}
#rg{width:100%;accent-color:var(--acc);margin:1rem 0 .4rem}
.sv{font-weight:700;color:var(--head);min-height:3rem;margin:0}
.jp{background:linear-gradient(150deg,var(--t1),var(--t2));border-radius:calc(var(--w)*.06);padding:.9rem 1.1rem;margin:0 0 .6rem;animation:pop .5s}
.hold{position:relative;overflow:hidden;text-align:center;font-weight:700;padding:1.2rem;margin-top:1rem;user-select:none;-webkit-user-select:none;touch-action:manipulation}
.hold i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--acc);opacity:.5}
.hold span{position:relative}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
