:root{--bg:#fff;--band:#f3f2ef;--ink:#14161a;--muted:#5f636b;--line:#dcdcd8;--red:#b42318;--green:#0f6b46;--slip:#fbf1d6;--led-bg:#0b0c0e;--led:#ffb020;--serif:"Noto Serif TC","PMingLiU","Songti TC",serif;--sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;font-size:16px;line-height:1.75;overflow-x:hidden}a{color:var(--ink);text-decoration-color:var(--red);text-underline-offset:3px}a:hover{color:var(--red)}:focus-visible{outline:3px solid var(--red);outline-offset:2px}.shell{max-width:1120px;margin:0 auto;padding:0 24px}.wrap{max-width:760px;margin:0 auto;padding:0 18px}main{z-index:1;padding-bottom:40px;position:relative}.edge{writing-mode:vertical-rl;font-family:var(--serif);letter-spacing:.95em;white-space:nowrap;color:#e4e2dd;user-select:none;pointer-events:none;z-index:0;font-size:24px;font-weight:700;display:none;position:fixed;top:50%;transform:translateY(-50%)}@media (width>=1360px){.edge{display:block}.edge.l{right:calc(50% + 600px)}.edge.r{left:calc(50% + 600px)}}.board{background:var(--led-bg);color:var(--led);z-index:20;align-items:stretch;display:flex;position:sticky;top:0}.board-tag{background:var(--red);color:#fff;letter-spacing:.08em;flex-direction:column;flex:none;justify-content:center;padding:6px 16px;font-size:15px;font-weight:700;line-height:1.25;display:flex}.board-tag span{letter-spacing:0;opacity:.9;font-size:13px;font-weight:500}.board-track{flex:1;min-width:0;position:relative;overflow:hidden}.belt{--dur:30s;width:max-content;animation:belt var(--dur) linear infinite;padding:9px 0;display:flex}.board:hover .belt{animation-play-state:paused}.run{flex:none;align-items:center;display:flex}.it{white-space:nowrap;color:var(--led);text-shadow:0 0 7px #ffb020a6;padding:0 18px;font-size:21px;font-weight:700;text-decoration:none}.it:hover{color:#fff}.it.hot{color:#ff5a3c;text-shadow:0 0 7px #ff5a3cb3}.it.dim{color:#b88a2e;text-shadow:none}.sep{color:#6a4d12;font-size:12px}.board-track:after{content:"";pointer-events:none;background-image:radial-gradient(circle,#0000 0 .85px,#0b0c0e61 1.3px);background-size:3px 3px;position:absolute;inset:0}@keyframes belt{to{transform:translate(-50%)}}.site{background:var(--bg);border-bottom:1px solid var(--line);z-index:2;position:relative}.site .shell{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px;display:flex}.wordmark{font-family:var(--serif);color:var(--ink);letter-spacing:.06em;font-size:23px;font-weight:900;text-decoration:none}.wordmark small{font-family:var(--sans);color:var(--muted);letter-spacing:0;margin-left:10px;font-size:13px;font-weight:500}.site nav{flex-wrap:wrap;gap:4px 22px;display:flex}.site nav a{color:var(--ink);border-bottom:2px solid #0000;padding:2px 0;font-weight:500;text-decoration:none}.site nav a:hover,.site nav a[aria-current=page]{border-bottom-color:var(--red);color:var(--ink)}.hero{border-bottom:1px solid var(--line);padding:44px 0 56px}.hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,440px);grid-template-areas:"head vis""form vis";align-items:start;gap:28px 64px;display:grid}.hero-head{grid-area:head}.hero-vis{grid-area:vis;position:sticky;top:96px}.hero-form{grid-area:form}.masthead{align-items:flex-start;gap:22px;display:flex}.masthead h1{font-family:var(--serif);writing-mode:vertical-rl;letter-spacing:.05em;margin:0;font-size:112px;font-weight:900;line-height:1}.intro{padding-top:6px}.lead{text-wrap:balance;font-family:var(--serif);margin:0 0 12px;font-size:30px;font-weight:900;line-height:1.35}.intro p{max-width:30em;margin:0 0 8px}.compass{width:100%;max-width:440px;margin:0 auto}.compass svg{width:100%;height:auto;display:block}.c-spin{animation:160s linear infinite cspin}.c-spin.rev{animation-duration:110s;animation-direction:reverse}@keyframes cspin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.belt,.c-spin{animation:none}.board-track{overflow-x:auto}}form{gap:14px;display:grid}.row3{grid-template-columns:1.5fr 1fr 1fr;gap:10px;display:grid}label{margin-bottom:4px;font-size:14px;font-weight:700;display:block}select,input[type=text]{border:1.5px solid var(--ink);background:var(--bg);width:100%;color:var(--ink);font:inherit;border-radius:0;padding:12px 10px;font-size:16px}.draw{background:var(--red);color:#fff;font:inherit;letter-spacing:.12em;cursor:pointer;border:0;border-radius:0;padding:15px;font-size:20px;font-weight:700}.draw:hover{background:#8f1b12}.draw:active{transform:translateY(1px)}.share{background:var(--ink);letter-spacing:.05em;width:100%;margin-top:22px;font-size:17px}.share:hover{background:#2c3038}.err{color:var(--red);margin:0;font-weight:700}.note{color:var(--muted);margin:0;font-size:13px}.result-grid{grid-template-columns:minmax(0,1fr);gap:36px 56px;padding-top:36px;display:grid}.result-left .compass{max-width:360px;margin:26px auto 0}.result-left .block{margin-top:26px}.result-right .block:first-child{margin-top:0}@media (width>=1000px){.result-grid{grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start}.result-left{position:sticky;top:84px}}.slip{background:var(--slip);border:3px solid var(--red);outline:2px solid var(--red);outline-offset:-10px;text-align:center;padding:26px 22px 28px}.slip-head{font-family:var(--serif);color:var(--red);justify-content:space-between;align-items:baseline;padding:0 8px;font-weight:900;display:flex}.slip-head .no{font-size:44px;line-height:1.1}.slip-head .grade{font-size:30px}.slip-label{color:var(--muted);margin:18px 0 0;font-size:14px}.slip-name{font-family:var(--serif);overflow-wrap:anywhere;margin:0;font-size:56px;font-weight:900;line-height:1.2}.slip-meta{color:var(--muted);margin:2px 0 14px;font-size:13px}.slip-rel{font-family:var(--serif);color:var(--red);margin:0;font-size:26px;font-weight:900}.slip-poem{max-width:26em;margin:6px auto 0}.block{margin-top:34px}h2{border-bottom:2px solid var(--ink);font-family:var(--serif);margin:0 0 10px;padding-bottom:6px;font-size:22px;font-weight:900}.pillars{border:1.5px solid var(--ink);background:var(--bg);grid-template-columns:repeat(4,1fr);display:grid}.pillars.three{grid-template-columns:repeat(3,1fr)}.pillar{text-align:center;border-right:1.5px solid var(--ink);padding:8px 4px}.pillar:last-child{border-right:0}.pillar span{color:var(--muted);font-size:13px;display:block}.pillar b{font-family:var(--serif);font-size:30px;font-weight:900}.pillar.me{background:var(--ink);color:#fff}.pillar.me span{color:#b9c0cf}.wx{grid-template-columns:repeat(5,1fr);gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.wx li{border:1.5px solid var(--ink);background:var(--bg);text-align:center;padding:3px 0;font-weight:700}.wx li b{font-family:var(--serif);margin-right:6px}.wx li.lack{background:var(--red);color:#fff;border-color:var(--red)}.wx li.lack b{color:#fff!important}.chartnote{color:var(--muted);margin:8px 0 0;font-size:14px}.quotes{margin:0;padding:0;list-style:none}.q{border-bottom:1px solid var(--line);grid-template-columns:4.4em 1fr auto;align-items:center;gap:10px;padding:11px 2px;display:grid}.q .code{font-variant-numeric:tabular-nums;color:var(--muted);font-weight:700}.q .nm b{font-size:18px;line-height:1.35;display:block}.q .nm b a{color:var(--ink);text-decoration:none}.q .nm b a:hover{color:var(--red);text-decoration:underline}.q .nm small{color:var(--muted);font-size:12px;display:block}.q .nm em{color:var(--red);font-size:14px;font-style:normal;font-weight:700}.q .sc{font-family:var(--serif);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:26px;font-weight:900}.sc.up{color:var(--red)}.sc.down{color:var(--green)}.sc.flat{color:var(--muted)}.qres{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.qres button{border:1.5px solid var(--ink);background:var(--bg);font:inherit;cursor:pointer;border-radius:0;padding:5px 12px}.hint{color:var(--muted);font-size:14px}.band{background:var(--band);border-bottom:1px solid var(--line);padding:44px 0 52px}.band h2{border-bottom-color:var(--ink)}.two{grid-template-columns:minmax(0,1fr);gap:36px 56px;display:grid}@media (width>=900px){.two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.cakes{margin:0;padding:0;list-style:none}.cakes li{border-bottom:1px solid var(--line);grid-template-columns:3.2em 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.cakes .ck{text-align:center;font-size:26px;line-height:1}.cakes b{font-size:18px}.cakes b a{text-decoration:none}.cakes small{color:var(--muted);font-size:13px;display:block}.cakes .age{font-family:var(--serif);font-size:22px;font-weight:900}.cakes .age.hot{color:var(--red)}.cakes .rnd{color:var(--red);border:1px solid var(--red);margin-left:6px;padding:0 6px;font-size:12px;font-weight:700;display:inline-block}.mini{letter-spacing:.05em;background:var(--ink);width:auto;margin-top:16px;padding:10px 18px;font-size:16px}.page{padding-top:38px}.page h1{font-family:var(--serif);text-wrap:balance;margin:0 0 6px;font-size:36px;font-weight:900;line-height:1.3}.page .sub{color:var(--muted);margin:0 0 22px}.crumbs{color:var(--muted);margin-bottom:14px;font-size:13px}.crumbs a{color:var(--muted)}.prose{max-width:40em}.prose h2{margin:34px 0 10px;font-size:24px}.prose h3{font-family:var(--serif);margin:24px 0 6px;font-size:19px;font-weight:900}.prose p{margin:0 0 14px}.prose ul,.prose ol{margin:0 0 14px;padding-left:1.3em}.prose li{margin-bottom:4px}.prose blockquote{border-left:4px solid var(--red);background:var(--band);color:var(--muted);margin:16px 0;padding:6px 16px}.prose table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:15px}.prose th,.prose td{border:1px solid var(--line);text-align:left;padding:6px 10px}.prose th{background:var(--band)}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);padding:14px 0}.list a.t{font-family:var(--serif);color:var(--ink);font-size:20px;font-weight:900;text-decoration:none}.list a.t:hover{color:var(--red)}.list .d{color:var(--muted);font-size:13px;display:block}.list p{margin:4px 0 0}.tagline{color:var(--red);border:1px solid var(--red);margin-right:6px;padding:0 6px;font-size:12px;font-weight:700;display:inline-block}.facts{border:1.5px solid var(--ink);background:var(--bg);grid-template-columns:repeat(4,1fr);margin:16px 0;display:grid}.facts div{border-right:1px solid var(--line);padding:10px 12px}.facts div:last-child{border-right:0}.facts span{color:var(--muted);font-size:12px;display:block}.facts b{font-family:var(--serif);font-size:20px;line-height:1.4;display:block}.chips{flex-wrap:wrap;gap:6px 8px;margin:0 0 14px;padding:0;list-style:none;display:flex}.chips a{border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:2px 10px;font-size:15px;text-decoration:none;display:inline-block}.chips a:hover{border-color:var(--red);color:var(--red)}.cta{text-align:center;background:var(--red);color:#fff;letter-spacing:.05em;margin:22px 0;padding:14px;font-size:18px;font-weight:700;text-decoration:none;display:block}.cta:hover{color:#fff;background:#8f1b12}.monthgrid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:6px;display:grid}.monthgrid a{text-align:center;border:1px solid var(--line);background:var(--bg);color:var(--ink);padding:6px 0;font-size:14px;text-decoration:none;display:block}.monthgrid a:hover{border-color:var(--red);color:var(--red)}.pager{justify-content:space-between;gap:12px;margin:26px 0;font-weight:700;display:flex}input.filter{margin:6px 0 18px}footer.site-foot{background:var(--ink);color:#b9bdc6;margin-top:0;padding:30px 0 44px;font-size:13px;line-height:1.8}footer.site-foot p{margin:0 0 8px}footer.site-foot nav{flex-wrap:wrap;gap:4px 18px;margin-bottom:12px;display:flex}footer.site-foot a{color:#fff}.warn{color:#e8e9ec;border:1px solid #4a4f59;padding:10px 12px;margin-bottom:14px!important}[hidden]{display:none!important}@media (width<=900px){.hero{padding-top:28px}.hero-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head""vis""form"}.hero-vis{position:static}.compass{max-width:300px}.masthead h1{font-size:88px}}@media (width<=480px){.masthead h1{font-size:76px}.lead{font-size:23px}.slip-name{font-size:46px}.it{padding:0 14px;font-size:17px}.q{grid-template-columns:3.8em 1fr auto}.page h1{font-size:30px}.facts{grid-template-columns:repeat(2,1fr)}.facts div:nth-child(2){border-right:0}.facts div:nth-child(-n+2){border-bottom:1px solid var(--line)}}
