/* Shared component skeleton; theme.css overrides the look. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--font-b);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,p,ul,ol,dl,dd,figure{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-decoration:none}
button,input{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
img,svg{display:block;max-width:100%}
:focus-visible{outline:3px solid var(--focus,var(--sc,currentColor));outline-offset:2px;border-radius:4px}
.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;left:12px;top:12px;z-index:200;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:8px}
.wrap{width:100%;max-width:var(--maxw,1240px);margin:0 auto;padding:0 var(--gut,24px)}
[hidden]{display:none!important}

.s-ny{--sc:var(--ny);--sc-ink:var(--ny-ink)}
.s-bg{--sc:var(--bn);--sc-ink:var(--bn-ink)}

/* ---------- Balls ---------- */
.balls{display:grid;gap:var(--ball-gap,6px)}
.balls.k-orig{grid-template-columns:repeat(10,minmax(0,1fr))}
.balls.k-hk6{grid-template-columns:repeat(7,minmax(0,var(--ball-max,54px)));padding-bottom:12px}
.balls.k-digits{grid-template-columns:repeat(5,minmax(0,var(--ball-max,54px)))}
.balls.k-racing{grid-template-columns:repeat(5,minmax(0,var(--ball-max,54px)));row-gap:calc(var(--ball-gap,6px) + 15px);padding-bottom:15px}
.ball{position:relative;display:flex;align-items:center;justify-content:center;width:100%;max-width:var(--ball-max,54px);aspect-ratio:1;border-radius:var(--ball-r,50%);
  background:var(--ball-bg);color:var(--ball-fg);border:var(--ball-bw,0) solid var(--ball-bd,transparent);box-shadow:var(--ball-sh,none);
  font-family:var(--font-n);font-weight:var(--ball-fw,700);font-variant-numeric:tabular-nums;line-height:1;
  transition:transform .22s cubic-bezier(.3,1.5,.5,1),box-shadow .2s,background-color .2s,color .2s,opacity .2s,border-color .2s;cursor:default}
.ball b{font-weight:inherit;font-size:var(--bf,16px)}
.k-orig .ball b{--bf:clamp(10px,3.3cqw,17px)}
.k-hk6 .ball b{--bf:clamp(13px,5.6cqw,22px)}
.k-digits .ball b{--bf:clamp(18px,10cqw,34px)}
.k-racing .ball b{--bf:clamp(13px,6cqw,22px)}
.ball i{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:3px;font:600 10px/1 var(--font-n);font-style:normal;color:var(--ink2);letter-spacing:.04em;pointer-events:none}
.ball.sp{background:var(--sp-bg);color:var(--sp-fg);border-color:var(--sp-bd,var(--ball-bd,transparent));box-shadow:var(--sp-sh,var(--ball-sh,none))}
.ball.sp i{color:var(--sp-bg);color:var(--sp-label,var(--ink2))}
.ball[data-top="1"]{background:var(--t1-bg,var(--sp-bg));color:var(--t1-fg,var(--sp-fg))}
.ball[data-top="2"]{background:var(--t2-bg,var(--ball-bg));color:var(--t2-fg,var(--ball-fg))}
.ball[data-top="3"]{background:var(--t3-bg,var(--ball-bg));color:var(--t3-fg,var(--ball-fg))}
.ball:hover{transform:translateY(-3px) scale(1.1);z-index:3;box-shadow:var(--ball-hover-sh,var(--ball-sh,none))}
.balls.ghost .ball{background:var(--ghost,rgba(127,127,127,.18));border-color:transparent;box-shadow:none;animation:ghost 1.4s ease-in-out infinite;animation-delay:calc(var(--d,0)*70ms)}
.balls.ghost .ball:hover{transform:none}
@keyframes ghost{0%,100%{opacity:.45}50%{opacity:1}}

.balls.mini,.balls.mid,.balls.big{display:flex;flex-wrap:wrap;padding-bottom:0}
.balls.mini{--ball-gap:4px;gap:4px}
.balls.mini .ball{width:var(--bs-mini,28px);max-width:none;--bf:12px}
.balls.mini .ball b{--bf:12px;font-size:var(--bf)!important}
.balls.mini .ball i{display:none}
.balls.mini .ball:hover{transform:scale(1.14)}
.balls.big{gap:10px 12px}
.balls.big .ball{width:var(--bs-big,64px);max-width:none}
.balls.big .ball b{font-size:calc(var(--bs-big,64px)*.4)!important}
.balls.big.k-racing,.balls.big.k-hk6{padding-bottom:18px;row-gap:28px}
.balls.big.k-orig{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));container-type:inline-size}
.balls.big.k-orig .ball{width:100%;--bs-big:52px}
.balls.big.k-orig .ball b{font-size:clamp(12px,4cqw,24px)!important}
.balls.mid{gap:8px;padding-bottom:20px;counter-reset:o}
.balls.mid .ball{width:var(--bs-mid,44px);max-width:none;counter-increment:o}
.balls.mid .ball b{font-size:calc(var(--bs-mid,44px)*.4)!important}
.balls.mid.idx .ball::after{content:counter(o);position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:4px;font:600 10px/1 var(--font-n);color:var(--ink2)}
.balls.mid.k-orig{display:grid;grid-template-columns:repeat(10,minmax(0,56px));gap:26px 10px}
.balls.mid.k-orig .ball{width:100%}
.has-hl .ball{opacity:.3}
.has-hl .ball.hl{opacity:1;transform:translateY(-4px) scale(1.14);box-shadow:var(--hl-sh,0 0 0 3px var(--sc,currentColor))}
.card-main,.c-res,.d-result{container-type:inline-size}

/* ---------- Cards ---------- */
.grid{display:grid;gap:var(--card-gap,16px);grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));grid-auto-flow:dense}
.card{position:relative;display:flex;flex-direction:column;min-width:0;cursor:pointer;color:var(--ink);
  background:var(--surface);border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);box-shadow:var(--card-sh,none);
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .28s,background-color .28s;
  opacity:0;transform:translateY(10px)}
.is-ready .card{opacity:1;transform:none;transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s,border-color .28s,background-color .28s,opacity .5s ease calc(var(--i,0)*45ms)}
.card:hover{transform:var(--card-hover-t,translateY(-4px));box-shadow:var(--card-hover-sh,var(--card-sh,none));border-color:var(--card-hover-bd,var(--line))}
.card.wide{grid-column:span 2}
.card-h{display:flex;align-items:center;gap:12px;padding:var(--pad,18px) var(--pad,18px) 0}
.card-t{min-width:0;flex:1}
.card-t .kick{display:block;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-t h3{font:var(--h3-w,700) var(--h3-s,19px)/1.15 var(--font-d);letter-spacing:var(--h3-ls,0)}
.card-t h3 a:hover{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;text-decoration-color:var(--sc)}
.bullet{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sc);color:var(--sc-ink);font:var(--bullet-w,800) 14px/1 var(--font-d)}
.status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink2);white-space:nowrap}
.status .dot,.live .dot{width:8px;height:8px;border-radius:50%;background:var(--ok,#2fbf71);box-shadow:0 0 0 0 var(--ok,#2fbf71);animation:pulse 2s infinite}
.card[data-state="drawing"] .status .dot{background:var(--warn,#f5a524);animation:pulse-w 1s infinite}
.card[data-state="closed"] .status .dot{background:var(--ink2);animation:none;opacity:.6}
@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ok,#2fbf71) 55%,transparent)}70%,100%{box-shadow:0 0 0 7px transparent}}
@keyframes pulse-w{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--warn,#f5a524) 60%,transparent)}70%,100%{box-shadow:0 0 0 7px transparent}}
.card-main{padding:var(--pad,18px);flex:1;display:flex;flex-direction:column;justify-content:center;min-height:var(--main-h,96px)}
.card.wide .card-main{--ball-max:48px}
.card.wide .k-racing,.card.wide .k-orig{grid-template-columns:repeat(10,minmax(0,var(--ball-max)))}
.voided{font:600 14px var(--font-b);color:var(--ink2);padding:16px 0}
.drawing{display:flex;align-items:center;gap:10px;margin-top:14px;color:var(--ink)}
.drawing strong{font:var(--h3-w,700) 15px var(--font-d);letter-spacing:.02em}
.drawing small{font-size:12px;color:var(--ink2)}
.spin{display:inline-flex;gap:3px}
.spin i{width:6px;height:6px;border-radius:50%;background:var(--sc);animation:bounce 1s infinite ease-in-out}
.spin i:nth-child(2){animation-delay:.15s}.spin i:nth-child(3){animation-delay:.3s}
@keyframes bounce{0%,80%,100%{transform:scale(.5);opacity:.4}40%{transform:scale(1);opacity:1}}
.card-f{display:flex;align-items:flex-end;justify-content:space-between;gap:8px 14px;flex-wrap:wrap;padding:12px var(--pad,18px) var(--pad,18px);border-top:var(--card-sep,1px solid var(--line));font-size:12.5px;color:var(--ink2)}
.card-f .meta{display:flex;flex-direction:column;gap:2px;min-width:0}
.card-f .qi{font:700 13px var(--font-n);color:var(--ink);font-variant-numeric:tabular-nums}
.card-f .act{display:flex;align-items:center;gap:12px}
.nx em{font-style:normal;margin-right:4px}
.nx b{font:700 13px var(--font-n);color:var(--ink);font-variant-numeric:tabular-nums}
.card .hist{font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--sc);text-decoration-thickness:2px;position:relative}
.card .hist:hover{text-decoration-thickness:4px}
.card-prev{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px var(--pad,18px) 14px;background:var(--prev-bg,rgba(127,127,127,.08));border-radius:0 0 calc(var(--radius,12px) - 1px) calc(var(--radius,12px) - 1px);font-size:12px;color:var(--ink2)}
.card-prev .pv-l{font-weight:700;letter-spacing:.04em}
.card-prev .balls.mini{--bs-mini:22px}
.card.flash{animation:flash 1.3s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 0 var(--sc)}30%{box-shadow:0 0 0 5px color-mix(in srgb,var(--sc) 45%,transparent)}100%{box-shadow:var(--card-sh,0 0 0 0 transparent)}}
.card.flash .ball{animation:rise .6s cubic-bezier(.3,1.4,.5,1) both;animation-delay:calc(var(--k,0)*1ms)}
@keyframes rise{from{opacity:0;transform:translateY(8px) scale(.85)}to{opacity:1;transform:none}}

/* ---------- History ---------- */
.hf{display:grid;gap:16px;margin-bottom:22px}
.seg{display:inline-flex;gap:4px;padding:4px;background:var(--seg-bg,var(--surface2));border-radius:var(--radius-pill,999px);justify-self:start;max-width:100%;overflow:auto}
.seg button{padding:9px 18px;border-radius:var(--radius-pill,999px);font-weight:700;font-size:14px;color:var(--ink2);white-space:nowrap;transition:background .2s,color .2s,transform .15s}
.seg button small{font-weight:500;opacity:.7;margin-left:4px}
.seg button:hover{color:var(--ink)}
.seg button.on{background:var(--seg-on-bg,var(--ink));color:var(--seg-on-fg,var(--bg))}
.seg button:active{transform:scale(.97)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:8px 14px;border-radius:var(--radius-chip,999px);border:1px solid var(--line);font-weight:600;font-size:13.5px;color:var(--ink);background:var(--surface);transition:background .18s,border-color .18s,color .18s,transform .15s}
.chip:hover{border-color:var(--sc);transform:translateY(-1px)}
.chip.on{background:var(--sc);color:var(--sc-ink);border-color:var(--sc)}
.fl{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
.field{display:flex;flex-direction:column;gap:6px;position:relative}
.field>span,.field label>span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.field.date{flex-direction:row;align-items:flex-end;gap:6px}
.field.date label{display:flex;flex-direction:column;gap:6px}
input[type=date],input[type=text]{height:44px;padding:0 14px;background:var(--field-bg,var(--surface));border:1px solid var(--line);border-radius:var(--radius-field,10px);outline:0;min-width:0;transition:border-color .18s,box-shadow .18s}
input:focus{border-color:var(--sc,var(--ink));box-shadow:0 0 0 3px color-mix(in srgb,var(--sc,var(--ink)) 25%,transparent)}
.field.search{min-width:min(260px,100%)}
.field.search input{width:100%;padding-right:38px}
.clr{position:absolute;right:6px;bottom:6px;width:32px;height:32px;border-radius:50%;font-size:20px;line-height:1;color:var(--ink2)}
.clr:hover{background:var(--surface2);color:var(--ink)}
.ic{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-field,10px);border:1px solid var(--line);background:var(--surface);font-size:22px;line-height:1;transition:background .18s,transform .15s,border-color .18s}
.ic:hover:not(:disabled):not(.off){border-color:var(--sc,var(--ink));transform:translateY(-1px)}
.ic:disabled,.ic.off{opacity:.35;cursor:not-allowed}
.mini-btn{height:44px;padding:0 16px;border-radius:var(--radius-field,10px);background:var(--btn-bg,var(--ink));color:var(--btn-fg,var(--bg));font-weight:700;font-size:14px;display:inline-flex;align-items:center;transition:transform .15s,opacity .15s}
.mini-btn:hover{transform:translateY(-1px);opacity:.9}
.h-sum{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.h-sum strong{font:var(--h3-w,700) 20px var(--font-d)}
.h-sum span{color:var(--ink2);font-size:14px}
.h-list{border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);background:var(--surface);overflow:hidden}
.h-row{display:grid;grid-template-columns:150px 110px minmax(0,1fr) 24px;gap:12px 18px;align-items:center;padding:12px 20px;border-top:1px solid var(--line);transition:background .15s,padding .2s}
a.h-row:hover{background:var(--row-hover,var(--surface2));padding-left:26px}
.h-row:first-child{border-top:0}
.h-head{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);background:var(--surface2);padding-top:10px;padding-bottom:10px}
.c-qi{font:700 14px var(--font-n);font-variant-numeric:tabular-nums}
.c-qi em{font-style:normal;color:var(--ink2);margin-right:1px}
.c-time{font:500 14px var(--font-n);color:var(--ink2);font-variant-numeric:tabular-nums}
.c-go{color:var(--ink2);font-size:20px;transition:transform .2s}
a.h-row:hover .c-go{transform:translateX(4px);color:var(--ink)}
.void{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--surface2);font-size:12px;font-weight:700;color:var(--ink2);letter-spacing:.04em}
.balls.mini.k-orig{display:grid;grid-template-columns:repeat(20,minmax(0,1fr));gap:3px}
.balls.mini.k-orig .ball{width:100%}.balls.mini.k-orig .ball b{--bf:11px}
.h-row.is-new{animation:rowin .9s ease-out}
@keyframes rowin{from{background:color-mix(in srgb,var(--sc) 22%,transparent)}to{background:transparent}}
.empty{padding:48px 24px;text-align:center;display:grid;gap:8px;justify-items:center}
.empty strong{font:var(--h3-w,700) 18px var(--font-d)}
.empty p{color:var(--ink2);max-width:42ch}
.pager{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:22px}
.pg{min-width:40px;height:40px;padding:0 10px;border-radius:var(--radius-field,10px);border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;transition:background .15s,transform .15s}
.pg:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}
.pg.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pg:disabled{opacity:.35;cursor:not-allowed}
.pg-gap{align-self:center;color:var(--ink2);padding:0 2px}

/* ---------- Detail ---------- */
.crumbs{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--ink2);margin-bottom:18px;flex-wrap:wrap}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs i{font-style:normal;opacity:.5}
.d-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.d-title{display:flex;align-items:center;gap:14px}
.d-title .bullet{width:52px;height:52px;font-size:20px}
.d-title .kick{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2)}
.d-title h1{font:var(--h1-w,800) var(--h1-s,34px)/1.05 var(--font-d);letter-spacing:var(--h1-ls,0)}
.d-nav{display:flex;align-items:center;gap:8px}
.qi-copy{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 16px;border:1px solid var(--line);border-radius:var(--radius-field,10px);background:var(--surface);font:700 14px var(--font-n);font-variant-numeric:tabular-nums;transition:border-color .18s,transform .15s}
.qi-copy svg{width:14px;height:14px;opacity:.55}
.qi-copy:hover{border-color:var(--sc);transform:translateY(-1px)}
.d-sibs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.d-result,.d-order,.d-how,.d-meta,.d-wait{background:var(--surface);border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);padding:var(--pad-l,26px);margin-bottom:16px}
.d-result h2,.d-order h2,.d-how h2{font:var(--h3-w,700) 15px var(--font-d);letter-spacing:.08em;text-transform:uppercase;margin-bottom:18px;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.d-order h2 small{font:400 13px var(--font-b);letter-spacing:0;text-transform:none;color:var(--ink2)}
.d-result{padding-bottom:calc(var(--pad-l,26px) + 4px)}
.voided-box .voided{font-size:16px;padding:6px 0}
.d-how .how-note{color:var(--ink2);max-width:70ch;margin-bottom:18px}
.steps{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px}
.step{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-field,10px);background:var(--surface);transition:border-color .15s,background .15s,transform .15s;outline:0}
.step:hover,.step:focus-visible{border-color:var(--sc);background:var(--surface2);transform:translateX(3px)}
.step .b{flex:none;display:grid;place-items:center;min-width:36px;height:36px;padding:0 6px;border-radius:var(--ball-r,50%);background:var(--ball-bg);color:var(--ball-fg);border:var(--ball-bw,0) solid var(--ball-bd,transparent);font:var(--ball-fw,700) 14px var(--font-n)}
.step .t{font-size:14px;color:var(--ink2)}
.step .t strong{color:var(--ink);font-weight:700}
.step.skip{opacity:.55}
.step.skip .b{background:transparent;color:var(--ink2);border:1px dashed var(--line)}
.step.fill{grid-column:1/-1;border-style:dashed}
.d-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.d-meta dt{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-bottom:4px}
.d-meta dd{font:600 15px var(--font-n);font-variant-numeric:tabular-nums}
.d-wait{display:grid;gap:16px;justify-items:start;padding:40px}

/* ---------- Schedule ---------- */
.sc-next{position:relative;display:grid;grid-template-columns:auto 1fr;gap:20px 36px;align-items:center;padding:var(--pad-l,26px);background:var(--surface);border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);margin:22px 0 16px;overflow:hidden}
.sc-next .lbl,.sc-next-meta .lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink2);margin-bottom:4px}
.sc-next .big{display:block;font:var(--big-w,800) clamp(46px,8vw,84px)/1 var(--font-n);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.sc-next-meta{display:flex;flex-wrap:wrap;gap:12px 36px;align-items:center}
.sc-next-meta b{font:700 17px var(--font-n);font-variant-numeric:tabular-nums}
.live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.live em{font-style:normal}
.html[data-ny-state="closed"] .live .dot{background:var(--ink2)}
.bar{grid-column:1/-1;height:6px;border-radius:99px;background:var(--surface2);overflow:hidden}
.bar i{display:block;height:100%;width:calc(var(--p,0)*100%);background:var(--sc);border-radius:inherit;transition:width .3s linear}
.sc-day{background:var(--surface);border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);padding:var(--pad-l,26px);margin-bottom:16px}
.sc-day-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px;flex-wrap:wrap}
.sc-day-h h2,.sc-cols h2{font:var(--h3-w,700) 15px var(--font-d);letter-spacing:.08em;text-transform:uppercase}
.tl{position:relative;height:44px;border-radius:var(--radius-field,10px);background:var(--tl-bg,var(--surface2));cursor:crosshair}
.seg-open{position:absolute;top:0;bottom:0;background:var(--sc);opacity:.9;border-radius:inherit;transition:opacity .2s}
.tl:hover .seg-open{opacity:1}
.tl .now{position:absolute;top:-8px;bottom:-8px;width:3px;margin-left:-1.5px;background:var(--ink);border-radius:3px;pointer-events:none}
.tl .now::before{content:"NOW";position:absolute;top:-18px;left:50%;transform:translateX(-50%);font:700 10px var(--font-n);letter-spacing:.08em}
.tl .now.ping{animation:ping .9s ease-out}
@keyframes ping{0%{box-shadow:0 0 0 0 var(--sc)}100%{box-shadow:0 0 0 18px transparent}}
.tl .tip{position:absolute;bottom:calc(100% + 12px);transform:translateX(-50%);padding:6px 10px;border-radius:8px;background:var(--ink);color:var(--bg);font:600 12px var(--font-n);white-space:nowrap;pointer-events:none}
.tl-axis{display:flex;justify-content:space-between;margin-top:10px;font:600 11px var(--font-n);color:var(--ink2)}
.sc-day .note{margin-top:14px;color:var(--ink2);font-size:14px}
.sc-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.sc-cols section{background:var(--surface);border:var(--card-bw,1px) solid var(--line);border-radius:var(--radius,12px);padding:var(--pad-l,26px)}
.sc-cols h2{margin-bottom:14px}
.sc-list li{display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);font-size:14px}
.sc-list li:first-child{border-top:0}
.sc-list a{display:contents}
.sc-list a:hover .rel{color:var(--ink);text-decoration:underline}
.sc-list time{font:500 14px var(--font-n);color:var(--ink2);font-variant-numeric:tabular-nums}
.sc-list .rel{font-size:12.5px;font-weight:700;color:var(--ink2)}

/* ---------- 404 ---------- */
#balls404{display:flex;gap:14px;justify-content:center;margin:8px 0 28px}
#balls404 .ball{width:clamp(76px,22vw,140px);max-width:none;cursor:pointer;animation:rise .7s cubic-bezier(.3,1.4,.5,1) both;animation-delay:calc(var(--d)*110ms)}
#balls404 .ball b{font-size:clamp(34px,10vw,64px)}
#balls404 .ball.wig{animation:wig .6s ease}
@keyframes wig{0%,100%{transform:none}20%{transform:rotate(-14deg) scale(1.1)}50%{transform:rotate(12deg) scale(1.1)}80%{transform:rotate(-6deg)}}

/* ---------- Misc ---------- */
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);padding:12px 18px;border-radius:10px;background:var(--ink);color:var(--bg);font-weight:600;font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .25s;z-index:150}
.toast.on{opacity:1;transform:translate(-50%,0)}
.tpl-pill{position:fixed;left:14px;bottom:14px;z-index:140;display:flex;gap:2px;padding:4px;border-radius:999px;background:rgba(18,18,18,.88);backdrop-filter:blur(8px);font:600 12px/1 system-ui,sans-serif;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.tpl-pill a{padding:9px 13px;border-radius:999px;color:#fff;transition:background .15s}
.tpl-pill a:hover{background:rgba(255,255,255,.18)}
@media (max-width:1100px){.grid{--cols:3}.d-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.grid{--cols:2}.sc-cols{grid-template-columns:1fr}.sc-next{grid-template-columns:1fr}}
@media (max-width:720px){
  :root{--gut:16px}
  .h-row{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}
  .h-row .c-res{grid-column:1/-1;grid-row:2}
  .h-row .c-go,.h-head{display:none}
  a.h-row:hover{padding-left:14px}
  .balls.mini.k-orig{grid-template-columns:repeat(10,minmax(0,1fr))}
  .tpl-pill{left:50%;transform:translateX(-50%);bottom:10px;white-space:nowrap}
  .tpl-pill a{white-space:nowrap}
  .d-title h1{font-size:calc(var(--h1-s,34px)*.8)}
  .d-result,.d-order,.d-how,.d-meta{padding:18px}
  .balls.big{--bs-big:46px;gap:8px}
  .balls.mid{--bs-mid:34px;gap:6px}
  .balls.mid.k-orig{grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 8px;max-width:340px}
  .balls.mid.k-orig .ball{max-width:48px}
  .step{padding:8px 10px}
  .steps{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){.grid{--cols:1}.card.wide{grid-column:auto}.steps{grid-template-columns:1fr}.d-meta{grid-template-columns:1fr 1fr;gap:14px}.sc-list li{grid-template-columns:110px 1fr auto}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;scroll-behavior:auto!important}
  .card{opacity:1;transform:none}
}
