@font-face{font-family:"Noto Sans TC";src:url("./fonts/noto-tc-v10.ttf") format("truetype");font-style:normal;font-weight:100 900;font-display:swap}
:root{color-scheme:dark;--ink:#eee5cc;--muted:#b6c2ba;--gold:#dfbd79;--jade:#70cbb3;--panel:#0a1e23eb;--line:#9b805e61;font-family:"Noto Sans TC",system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:#071117;color:var(--ink);font-size:0.9375rem;line-height:1.65}.scene{position:fixed;inset:0;z-index:-2;background:url('./assets/salon-v1.png') center top/cover no-repeat}.scene:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#020b1161,#020b11c9 70%,#020b11f0)}header{max-width:1300px;margin:auto;padding:32px 32px 20px;display:flex;justify-content:space-between;align-items:center;gap:20px}.eyebrow{font-size:0.625rem;font-weight:600;letter-spacing:.22em;color:var(--gold)}h1{font-family:Georgia,"Noto Sans TC",serif;letter-spacing:.18em;font-size:2.125rem;font-weight:400;line-height:1.4;margin:5px 0}.subtitle{font:0.6875rem Georgia,serif;letter-spacing:.5em;color:var(--muted)}.demo-tag{border-left:1px solid var(--gold);padding:4px 0 4px 16px;font-size:0.6875rem;color:var(--muted)}.demo-tag strong{font-size:0.8125rem;color:var(--ink);font-weight:500}main{max-width:1300px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;padding:0 28px 30px}.game{overflow:hidden;background:#06171cc9;border:1px solid var(--line);border-radius:22px;box-shadow:0 20px 60px #0007}.game-top{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:22px 26px 0}h2{margin:4px 0 12px;font-size:1.125rem;font-weight:500} .game-top h2{font-family:Georgia,"Noto Sans TC",serif;font-size:1.4375rem}.balance{text-align:right;font-size:0.6875rem;color:var(--muted);white-space:nowrap}.balance strong{display:block;font-size:1.75rem;line-height:1.2;color:var(--gold);font-weight:500;font-variant-numeric:tabular-nums}.balance span{font-size:0.625rem}.table{height:390px;position:relative;margin:0 0 -20px}.table-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.table-content{position:relative;display:flex;align-items:center;flex-direction:column;padding-top:77px}.table-label{font:0.6875rem Georgia,serif;letter-spacing:.5em;color:#e1c489a1}.dice{display:flex;gap:12px;margin:18px 0 6px;filter:drop-shadow(0 10px 8px #0007)}.die{width:clamp(60px,8vw,96px);aspect-ratio:1;overflow:hidden;display:block;transform-origin:50% 90%}.die svg{display:block;width:100%;height:100%}.rolling .die{animation:shake .22s infinite alternate}.rolling .die:nth-child(2){animation-delay:-.13s}.rolling .die:nth-child(3){animation-delay:-.07s}.result{font-size:1.3125rem;letter-spacing:.04em;font-weight:500;min-height:35px}.table-content p{margin:0;font-size:0.75rem;color:#c2cfc4}.won .result{color:#a9edce}.controls{padding:0 30px 24px;position:relative}.sides{display:grid;grid-template-columns:1fr 1fr;gap:12px}button{font:inherit;cursor:pointer;color:var(--ink);touch-action:manipulation}button:focus-visible,summary:focus-visible{outline:3px solid #f5d08c;outline-offset:4px}button:disabled{cursor:default;opacity:.5}.side{background:#0a272c;border:1px solid #688c8366;border-radius:12px;padding:9px 12px;display:grid;grid-template-columns:auto 1fr;align-items:center;text-align:left;gap:0 14px}.side span{font-size:1.1875rem;grid-row:span 2}.side strong{font-size:1.0625rem;letter-spacing:.15em;font-weight:400;text-align:right}.side small{color:var(--muted);text-align:right;font-size:0.625rem}.side.selected{border-color:var(--gold);background:#23423b;box-shadow:inset 0 0 25px #dabd7110}fieldset{border:0;padding:12px 0 0;margin:0}legend{text-align:center;font-size:0.6875rem;color:var(--muted);padding-top:15px}.stakes{display:flex;justify-content:center;gap:20px}.stake{position:relative;width:64px;height:70px;padding:0;background:none;border:0;transition:transform .15s}.stake img{width:64px;height:64px;object-fit:contain;filter:brightness(.72)}.stake span{position:absolute;bottom:-1px;left:50%;transform:translateX(-50%);font-size:0.75rem;font-weight:600;background:#071a1ef0;border:1px solid #6c816e;border-radius:6px;padding:0 7px;line-height:22px;min-width:32px}.stake.selected{transform:translateY(-4px)}.stake.selected img{filter:brightness(1.2) drop-shadow(0 0 8px #dabd7133)}.stake.selected span{border-color:var(--gold);color:var(--gold)}.primary{display:block;width:100%;border:1px solid #f2d18e;border-radius:10px;background:linear-gradient(105deg,#c49a56,#efd398,#c9a666);color:#211a0d;font-weight:650;letter-spacing:.1em;min-height:52px;margin:19px 0 6px;box-shadow:0 6px 20px #0003}.primary:hover:enabled{filter:brightness(1.08)}.text-button{display:block;margin:auto;background:none;border:0;color:var(--gold);text-decoration:underline;text-underline-offset:4px;min-height:36px;font-size:0.75rem}#status{text-align:center;margin:5px 0 0;font-size:0.6875rem;color:var(--muted);min-height:35px}aside{display:grid;gap:15px;align-content:start}.panel{padding:19px 20px;border:1px solid var(--line);border-radius:16px;background:var(--panel);backdrop-filter:blur(8px)}.panel p{font-size:0.75rem;color:var(--muted);margin:9px 0}.panel .fine{font-size:0.6875rem;line-height:1.8;color:#a7b9b4}table{width:100%;border-collapse:collapse;font-size:0.6875rem}td,th{text-align:left;padding:7px 3px;border-bottom:1px solid #64827842}th{font-weight:500;color:var(--gold)}#history{list-style:none;padding:0;margin:0;font-size:0.75rem}#history li{padding:6px 0;border-bottom:1px solid #64827832;display:flex;justify-content:space-between;gap:12px}#history strong{font-weight:500;color:var(--jade);white-space:nowrap}.notice{border-color:#b8985d74}summary{color:var(--gold);font-size:0.75rem;cursor:pointer;min-height:35px;padding-top:7px}footer{text-align:center;font-size:0.625rem;letter-spacing:.1em;color:#a0b6b1;padding:12px 20px 28px}.noscript{text-align:center;border:1px solid var(--gold);padding:20px}@keyframes shake{from{transform:translateY(-5px) rotate(-8deg)}to{transform:translateY(5px) rotate(8deg)}}@media(max-width:980px){main{grid-template-columns:minmax(0,1fr) 290px;gap:14px;padding:0 18px 25px}.game-top{padding:20px 20px 0}.game-top h2{font-size:1.1875rem}.table{height:340px}.table-content{padding-top:65px}.controls{padding:0 22px 22px}.dice{gap:8px}.result{font-size:1.125rem}}@media(max-width:760px){header{padding:22px 18px 16px}h1{font-size:1.6875rem}.eyebrow{font-size:0.5625rem}.subtitle{font-size:0.5625rem}.demo-tag{font-size:0.5625rem;padding-left:10px}.demo-tag strong{font-size:0.6875rem}main{grid-template-columns:1fr;max-width:580px;padding:0 12px 20px}.scene{background-position:50% 0}.game-top{padding:18px 18px 0}.game-top h2{font-size:1.0625rem}.balance strong{font-size:1.625rem}.balance span{font-size:0.5625rem}.table{height:290px;margin:4px -6px -6px}.table-content{padding-top:55px}.dice{margin:14px 0 7px}.die{width:70px}.table-label{font-size:0.5625rem}.table-content p{font-size:0.625rem}.result{font-size:1.125rem}.controls{padding:0 18px 16px}.stakes{gap:17px}.stake,.stake img{width:60px}.panel{padding:18px 20px}aside{gap:12px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:350px){.die{width:60px}.stakes{gap:10px}.game-top h2{font-size:0.875rem}.balance strong{font-size:1.375rem}.demo-tag{max-width:125px}.side{padding:8px}.table-content{padding-top:63px}}

.control-history{margin-top:14px;border-top:1px solid var(--line);padding-top:6px;overflow-wrap:anywhere}.control-history summary{min-height:44px}.control-history-body ol{padding-left:22px;font-size:.75rem}.control-history .session-button{white-space:normal;height:auto;min-height:44px}

.game{align-self:start}.record-navigation{margin-top:12px;border-top:1px solid var(--line);padding-top:6px}.record-navigation .session-button,#archive-detail>.session-button{white-space:normal;min-height:44px;height:auto}#play-controls{scroll-margin-top:12px}

.rule-examples{border-top:1px solid var(--line);padding-top:8px;margin-top:14px;overflow-wrap:anywhere}.rule-examples>summary{min-height:44px;scroll-margin-top:12px}.example-area h3{font-size:1rem;font-weight:500;color:var(--gold);line-height:1.5}.example-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:5px;font-size:.75rem}.example-fields select{width:100%;min-width:0;min-height:44px;font:inherit;color:var(--ink);background:#0b2629;border:1px solid var(--line);border-radius:6px;padding:8px}.example-fields select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.example-dice{display:flex;gap:8px;justify-content:center;margin:18px 0}.example-dice[hidden]{display:none}.example-dice svg{width:min(21vw,64px);height:auto;aspect-ratio:1;flex:0 1 64px}.panel .example-result{border-left:2px solid var(--gold);padding:10px;background:#06171c;color:var(--ink)}
