@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Noto+Serif+TC:wght@500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap");:root{--cream:#f5f0e8;--paper:#fbf8f2;--ink:#2a2420;--ink-soft:#6b6056;--clay:#d4b8a8;--clay-deep:#b8957f;--forest:#3a4a3f;--mauve:#9a8aa6;--line:#e4dccf;--ok:#5c7a5e;--no:#b5705f;--shadow:0 1px 2px rgba(42,36,32,.06),0 12px 32px -14px rgba(42,36,32,.22)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Noto Sans TC,system-ui,sans-serif;background:var(--cream);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.wrap{max-width:980px;margin:0 auto;padding:0 18px}header{position:-webkit-sticky;position:sticky;top:0;z-index:40;background:hsla(40,53%,97%,.9);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.bar{gap:14px;height:60px}.bar,.brand{display:flex;align-items:center}.brand{gap:9px;flex-shrink:0;cursor:pointer}.brand .mark{width:32px;height:32px;object-fit:contain;display:block}.brand b{font-family:Cormorant Garamond,serif;font-size:20px;letter-spacing:.5px;font-weight:600}.brand span{font-size:10px;color:var(--ink-soft);display:block;margin-top:-4px;letter-spacing:3px}.menu-btn{flex-shrink:0;margin-left:auto;display:flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;background:var(--ink);color:var(--paper);border:none;cursor:pointer;font-size:13px;font-family:inherit;font-weight:500}.menu-btn:hover{background:#000}.toolbar{border-bottom:1px solid var(--line);background:var(--paper)}nav.pills{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;padding:7px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}nav.pills::-webkit-scrollbar{display:none}.pill{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 14px;border-radius:12px;border:none;background:none;color:var(--ink-soft);cursor:pointer;white-space:nowrap;transition:.16s;font-family:inherit}.pill .ic{font-size:19px;line-height:1}.pill .lb{font-size:12px}.pill:hover{background:var(--cream);color:var(--ink)}.pill.on{color:var(--forest)}.pill.on .lb{font-weight:600}.pill.on:after{content:"";position:absolute}.head{padding:30px 0 4px;text-align:center}.head .eyebrow{font-size:11px;letter-spacing:4px;color:var(--clay-deep);text-transform:uppercase;margin-bottom:6px}.head h1{font-family:"Noto Serif TC",serif;font-weight:600;font-size:clamp(24px,4vw,34px);letter-spacing:1px}.head p{color:var(--ink-soft);font-size:14px;margin-top:6px}.stage{padding:22px 0 50px}.panel{display:none}.panel.show{display:block;animation:fade .3s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:26px}.two{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:20px;gap:20px}@media(max-width:720px){.two{grid-template-columns:1fr}}.center{display:grid;place-items:center;grid-gap:20px;gap:20px;text-align:center;padding:8px 0}h3.lbl{font-size:13px;letter-spacing:1px;color:var(--ink);margin-bottom:9px;font-weight:600}input[type=number],input[type=text],textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:11px 13px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--cream)}textarea{min-height:160px;resize:vertical;line-height:1.85}input:focus,textarea:focus{outline:none;border-color:var(--clay-deep);background:var(--paper)}input[type=number]{width:90px}.btn{border:none;border-radius:12px;padding:12px 20px;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;transition:.15s}.btn-go{background:var(--forest);color:var(--paper)}.btn-go:hover{filter:brightness(1.08)}.btn-go:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default;filter:none;transform:none}.btn-ghost{background:none;border:1px solid var(--line);color:var(--ink-soft);padding:9px 15px;font-size:13px;font-weight:500}.btn-ghost:hover{border-color:var(--clay-deep);color:var(--ink)}.row{gap:10px;flex-wrap:wrap}.field,.row{display:flex}.field{align-items:center;gap:8px;font-size:14px}.field,.hint{color:var(--ink-soft)}.hint{font-size:12px;margin-top:8px}.result{font-family:"Noto Serif TC",serif;font-size:22px;font-weight:600;color:var(--forest);min-height:30px}.chips{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.chip{padding:7px 15px;border-radius:999px;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-family:inherit;font-size:13px;color:var(--ink-soft)}.chip.on,.chip:hover{border-color:var(--forest);color:var(--forest)}.switch{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:var(--ink-soft)}.switch input{width:auto}.wheel-box{position:relative;width:min(300px,70vw);aspect-ratio:1}.wheel{width:100%;height:100%;border-radius:50%;border:9px solid var(--paper);box-shadow:0 0 0 2px var(--line),0 16px 36px -12px rgba(42,36,32,.3);transition:transform 4.3s cubic-bezier(.17,.67,.16,1)}.pointer{top:-3px;transform:translateX(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:20px solid var(--ink);z-index:3;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}.hub,.pointer{position:absolute;left:50%}.hub{top:50%;transform:translate(-50%,-50%);width:50px;height:50px;border-radius:50%;background:var(--paper);border:1px solid var(--line);display:grid;place-items:center;z-index:2;font-family:Cormorant Garamond,serif;font-size:12px;color:var(--clay-deep);box-shadow:0 4px 10px rgba(0,0,0,.08)}.dice-row{display:flex;gap:14px}.die{width:72px;height:72px;border-radius:15px;background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);padding:11px;grid-gap:4px;gap:4px}.die i{border-radius:50%}.die i.f{background:var(--forest)}.die.roll{animation:shake .5s ease}@keyframes shake{0%,to{transform:none}25%{transform:translateY(-9px) rotate(-8deg)}75%{transform:translateY(-5px) rotate(8deg)}}.coin-row{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.coin{width:84px;height:84px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--clay),var(--clay-deep));border:4px solid var(--paper);box-shadow:var(--shadow);display:grid;place-items:center;font-family:Cormorant Garamond,serif;font-size:30px;color:var(--paper);font-weight:700}.coin.flip{animation:flip .7s ease}@keyframes flip{0%{transform:rotateY(0)}to{transform:rotateY(4turn)}}.big-num{font-family:Cormorant Garamond,serif;font-size:clamp(56px,14vw,96px);font-weight:600;color:var(--ink);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1}.big-num,.sub-num{letter-spacing:2px}.sub-num{color:var(--ink-soft);font-size:15px;margin-top:4px}.score-list{display:flex;flex-direction:column;gap:10px;width:100%;max-width:480px}.score-row{display:flex;align-items:center;gap:10px;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:10px 12px}.score-row input.nm{flex:1 1;border:none;background:none;font-size:15px;font-weight:600;color:var(--ink);padding:4px}.score-row input.nm:focus{outline:none}.score-val{font-family:Cormorant Garamond,serif;font-size:30px;font-weight:700;min-width:48px;text-align:center;color:var(--forest)}.sbtn{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--paper);cursor:pointer;font-size:18px;color:var(--ink-soft)}.sbtn:hover{border-color:var(--clay-deep);color:var(--ink)}.sbtn.del{color:var(--no);font-size:15px}.jiao-row{display:flex;gap:26px}.block{width:60px;height:96px;position:relative}.block .body{width:100%;height:100%;border-radius:30px 30px 30px 30px/60px 60px 36px 36px;transition:.4s}.block.up .body{background:linear-gradient(160deg,var(--clay),var(--clay-deep));box-shadow:inset 0 -8px 14px rgba(0,0,0,.18),var(--shadow)}.block.down .body{background:linear-gradient(160deg,#9a8f82,#7d7264);box-shadow:inset 0 8px 14px rgba(0,0,0,.22),var(--shadow)}.block.toss{animation:toss .6s ease}@keyframes toss{0%,to{transform:translateY(0) rotate(0)}30%{transform:translateY(-26px) rotate(-20deg)}60%{transform:translateY(-14px) rotate(18deg)}}.verdict{font-family:"Noto Serif TC",serif;font-size:26px;font-weight:700}.verdict.sheng{color:var(--ok)}.verdict.xiao{color:var(--clay-deep)}.verdict.yin{color:var(--no)}.teams{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));grid-gap:12px;gap:12px;width:100%}.team{background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:14px}.team h4{font-family:"Noto Serif TC",serif;font-size:15px;color:var(--forest);margin-bottom:8px;display:flex;justify-content:space-between}.team h4 small{color:var(--ink-soft);font-weight:400;font-size:12px}.team ul{list-style:none;font-size:14px}.team li{padding:3px 0;border-bottom:1px dashed var(--line)}.team li:last-child{border:none}.ord-list{list-style:none;width:100%;max-width:460px;counter-reset:o}.ord-list li{counter-increment:o;display:flex;gap:12px;align-items:center;padding:9px 12px;background:var(--cream);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;font-size:15px}.ord-list li:before{content:counter(o);font-family:Cormorant Garamond,serif;font-size:18px;font-weight:700;color:var(--clay-deep);min-width:24px}.drawn{font-family:"Noto Serif TC",serif;font-size:30px;font-weight:700;color:var(--forest)}.num-out{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.num-pill{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:700;color:var(--forest);background:var(--cream);border:1px solid var(--line);border-radius:14px;min-width:60px;padding:8px 14px;text-align:center}.scrim{position:fixed;inset:0;background:rgba(42,36,32,.4);opacity:0;pointer-events:none;transition:.25s;z-index:50}.scrim.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;height:100%;width:min(330px,86vw);background:var(--paper);z-index:60;transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:-20px 0 50px -20px rgba(0,0,0,.3);padding:22px;overflow-y:auto}.drawer.open{transform:none}.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.drawer-top h3{font-family:"Noto Serif TC",serif;font-size:19px}.x{border:none;background:none;font-size:22px;cursor:pointer;color:var(--ink-soft);width:32px;height:32px;border-radius:8px}.x:hover{background:var(--cream)}.drawer .sub{font-size:12px;color:var(--ink-soft);margin-bottom:14px}.dcat{font-size:11px;letter-spacing:2px;color:var(--clay-deep);text-transform:uppercase;margin:14px 0 6px}.drow{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:11px;cursor:pointer;transition:.15s}.drow:hover{background:var(--cream)}.drow.on{background:var(--forest);color:var(--paper)}.drow .ic{font-size:17px;width:24px;text-align:center}.drow b{font-size:14px;font-weight:500}footer{border-top:1px solid var(--line);padding:22px 0;text-align:center;color:var(--ink-soft);font-size:12px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-gap:14px;gap:14px}.tool-card{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:20px 18px;transition:.16s;cursor:pointer}.tool-card:hover{border-color:var(--clay-deep);transform:translateY(-2px)}.tool-card .tc-ic{font-size:30px;line-height:1}.tool-card .tc-name{font-family:"Noto Serif TC",serif;font-size:17px;font-weight:600;color:var(--ink)}.tool-card .tc-desc{font-size:13px;color:var(--ink-soft);line-height:1.5}.home-group{margin-bottom:26px}.home-cat{font-family:"Noto Serif TC",serif;font-size:14px;color:var(--clay-deep);letter-spacing:3px;font-weight:600;margin:0 0 12px;padding-left:2px}.img-wrap{display:flex;flex-direction:column;gap:16px;width:100%}.dropzone{border:2px dashed var(--line);border-radius:16px;padding:36px 20px;text-align:center;cursor:pointer;background:var(--cream);transition:.15s}.dropzone.drag,.dropzone:hover{border-color:var(--clay-deep);background:var(--paper)}.dz-ic{font-size:30px;color:var(--clay-deep);line-height:1}.dz-hint{font-weight:600;margin-top:8px;color:var(--ink)}.dz-sub{font-size:12px;color:var(--ink-soft);margin-top:4px}.img-stage{position:relative;display:grid;place-items:center;background:var(--cream);border:1px solid var(--line);border-radius:14px;padding:16px;min-height:160px}.img-stage canvas,.img-stage img{max-width:100%;max-height:58vh;border-radius:8px;display:block}.opt-grid{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;justify-content:center}.opt{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--ink-soft);text-align:left}.opt input[type=number]{width:110px}.opt select{width:140px}.opt input[type=range]{width:200px;accent-color:var(--forest)}.meta-line{font-size:13px;color:var(--ink-soft);text-align:center;line-height:1.7}.meta-line b{color:var(--forest);font-weight:600}select{border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-family:inherit;font-size:14px;color:var(--ink);background:var(--cream)}select:focus{outline:none;border-color:var(--clay-deep);background:var(--paper)}.swatch{width:54px;height:54px;border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow)}.file-list{display:flex;flex-direction:column;gap:6px;width:100%;max-width:520px;font-size:13px}.file-row{display:flex;justify-content:space-between;gap:10px;background:var(--cream);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.file-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row .st{color:var(--ink-soft);flex-shrink:0}.crop-host{position:relative;display:inline-block;max-width:100%;touch-action:none;cursor:crosshair;-webkit-user-select:none;-moz-user-select:none;user-select:none}.crop-host img{display:block;max-width:100%;max-height:56vh}.crop-rect{position:absolute;border:2px solid var(--paper);box-shadow:0 0 0 1px var(--ink),0 0 0 9999px rgba(42,36,32,.45);pointer-events:none}.err{color:var(--no);font-size:13px;text-align:center}