@import"https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:wght@400;600;700&family=Literata:wght@600;700&display=swap";:root{font-family:Be Vietnam Pro,system-ui,sans-serif;line-height:1.5;font-weight:400;color:#2a241b;background-color:#f4ead6;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{height:100%}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(255,244,225,.9),transparent 55%),radial-gradient(circle at bottom right,rgba(209,238,220,.7),transparent 50%),linear-gradient(140deg,#f6edd8,#e6d0ab 55%,#d9c29a);color:#2a241b;overflow:hidden}#app{height:100%}.app{padding:clamp(14px,2.4vw,32px);display:flex;flex-direction:column;gap:24px;animation:floatIn .8s ease forwards;height:100%;overflow-y:auto}.top{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-end}.title h1{margin:6px 0 8px;font-family:Literata,serif;font-size:clamp(32px,4vw,44px);letter-spacing:.02em}.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:12px;color:#6b5b42;margin:0}.subtitle{margin:0;max-width:540px;color:#4c3f2f}.status{display:flex;gap:10px;flex-wrap:wrap}.pill{padding:8px 14px;border-radius:999px;background:#f7edd8;border:1px solid #d7c2a1;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.pill.ok{background:#e2f4e8;border-color:#94c7a4}.pill.warn{background:#fff1d1;border-color:#f0c981}.pill.error{background:#ffe3dc;border-color:#e39a88}.layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:24px;align-items:start}.board-card{background:#fff;border-radius:20px;border:2px solid #2f2a22;padding:clamp(16px,2vw,24px);box-shadow:0 18px 34px #2f2a222e;display:flex;flex-direction:column;gap:12px}.board-stage{width:100%;display:flex;justify-content:center}canvas#board{border-radius:18px;background:#fff;box-shadow:inset 0 0 0 2px #231e1866}.board-footer{display:flex;flex-wrap:wrap;gap:12px 20px;justify-content:space-between}.panel{display:flex;flex-direction:column;gap:16px}.panel-block{background:#fff5e4;border-radius:18px;padding:18px;border:1px solid #e1caa5;box-shadow:0 12px 24px #4e3c2224}.panel-block h2{margin:0 0 8px;font-size:18px;color:#2f271c}.stat-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:14px;color:#4c3f2f}.stat-row strong{font-size:16px}.meta{margin:0;font-size:13px;color:#5a4c39}.meta-list{margin:0;padding-left:18px;color:#5a4c39;font-size:13px}.guide-list{margin:0;padding-left:18px;color:#5a4c39;font-size:13px;display:grid;gap:6px}.guide-list strong{color:#2f6f55}.legal-links{display:grid;gap:8px}.legal-link{display:inline-flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid #d8c19d;background:#f8ebd2;color:#2f6f55;font-weight:600;text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.legal-link:after{content:"↗";color:#6d5b46;font-weight:700}.legal-link:hover{transform:translateY(-1px);border-color:#2f6f55;box-shadow:0 10px 16px #2f6f552e}button{font-family:inherit}.controls{margin-top:12px;display:grid;gap:12px}.field{display:grid;gap:6px}.label{font-size:12px;text-transform:uppercase;letter-spacing:.18em;color:#6a5841}.segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.segmented.columns-3{grid-template-columns:repeat(3,minmax(0,1fr))}.segmented.columns-4{grid-template-columns:repeat(4,minmax(0,1fr))}.seg-btn{border:1px solid #d6bd94;background:#f4e6cf;color:#3a2d1f;padding:8px 12px;border-radius:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.seg-btn.active{background:#2f6f55;color:#f1f7f0;border-color:#2f6f55;box-shadow:0 10px 16px #2f6f5540}.seg-btn:disabled{opacity:.5;cursor:not-allowed}.select select{width:100%;border-radius:10px;border:1px solid #d6bd94;background:#f4e6cf;padding:8px 12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#3a2d1f}.select select:disabled{opacity:.5;cursor:not-allowed}.action{margin-top:12px;width:100%;border:none;border-radius:12px;padding:12px 16px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:linear-gradient(120deg,#2f6f55,#4a8b6c);color:#f0f7f1;cursor:pointer;box-shadow:0 12px 18px #2f6f5540;transition:transform .2s ease,box-shadow .2s ease}.action:hover{transform:translateY(-1px);box-shadow:0 16px 28px #2f6f554d}.action:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.ghost{background:transparent;color:#3a2d1f;border:1px solid #d6bd94;box-shadow:none;padding:8px 14px;border-radius:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}.ghost:hover{box-shadow:0 12px 20px #342a1c1f}.dice-row{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:12px;align-items:center}.dice-shell{display:grid;gap:6px;justify-items:center}.dice{--dice-accent: #2f6f55;width:66px;aspect-ratio:1;border-radius:16px;border:2px solid rgba(35,30,24,.65);background:radial-gradient(circle at 28% 24%,#fffffff5 8%,#f7f2eaf2 48%,#e2d8c8f2);position:relative;box-shadow:0 12px 18px #2a211640,0 0 0 2px var(--dice-accent),inset 0 2px #fffc,inset 0 -7px 11px #3d302029;transform-origin:50% 50%}.dice.rolling{animation:diceSpin .95s cubic-bezier(.22,.9,.33,1)}.dice-caption{margin:0;min-height:2.2em;font-size:10px;text-transform:uppercase;letter-spacing:.08em;text-align:center;color:#6f5c45;line-height:1.25}.dice.rolling+.dice-caption{color:#2f6f55;animation:diceCaptionPulse .34s ease-in-out infinite alternate}.pip{position:absolute;width:10px;height:10px;border-radius:999px;background:#273f35;box-shadow:inset 0 1px #ffffff73;opacity:0;transform:scale(.52);transition:opacity .1s ease,transform .1s ease}.pip-1{top:50%;left:50%;margin-top:-5px;margin-left:-5px}.pip-2{top:14px;left:14px}.pip-3{top:14px;right:14px}.pip-4{top:calc(50% - 5px);left:14px}.pip-5{top:calc(50% - 5px);right:14px}.pip-6{bottom:14px;left:14px}.pip-7{right:14px;bottom:14px}.dice[data-face="1"] .pip-1,.dice[data-face="2"] .pip-2,.dice[data-face="2"] .pip-7,.dice[data-face="3"] .pip-1,.dice[data-face="3"] .pip-2,.dice[data-face="3"] .pip-7,.dice[data-face="4"] .pip-2,.dice[data-face="4"] .pip-3,.dice[data-face="4"] .pip-6,.dice[data-face="4"] .pip-7,.dice[data-face="5"] .pip-1,.dice[data-face="5"] .pip-2,.dice[data-face="5"] .pip-3,.dice[data-face="5"] .pip-6,.dice[data-face="5"] .pip-7,.dice[data-face="6"] .pip-2,.dice[data-face="6"] .pip-3,.dice[data-face="6"] .pip-4,.dice[data-face="6"] .pip-5,.dice[data-face="6"] .pip-6,.dice[data-face="6"] .pip-7{opacity:1;transform:scale(1)}.scoreboard{display:grid;gap:8px}.score-row{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-radius:10px;background:#f2e2c5;border:1px solid #e0c8a2;font-size:13px}.score-name{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:#3a2d1f}.dot{width:10px;height:10px;border-radius:999px}.log{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#3d3326;max-height:220px;overflow:hidden}.log-item{padding:8px 10px;border-radius:10px;background:#f2e2c5;border:1px solid #e0c8a2}.log-item.last{background:#fff7ea;border-color:#d8a670}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a130c8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:20px;opacity:1;transition:opacity .2s ease;z-index:10}.overlay.hidden{opacity:0;pointer-events:none}.overlay-card{background:#fff3de;border-radius:20px;padding:26px;border:1px solid #e1caa5;box-shadow:0 24px 44px #1e160d66;min-width:min(360px,90vw);text-align:center}.overlay-eyebrow{margin:0;letter-spacing:.3em;text-transform:uppercase;font-size:12px;color:#6f5c45}.overlay-card h2{margin:12px 0 8px;font-family:Literata,serif;font-size:28px}.overlay-reason{margin:0 0 16px;color:#5a4c39}.overlay-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.overlay-actions .action{width:auto;margin-top:0}.overlay-stats{margin-top:16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.overlay-stats .stat{background:#f6e4c4;border-radius:12px;padding:10px 12px;border:1px solid #e0c29a;display:grid;gap:6px}.stat-label{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#6c5a42}.final-scores{margin-top:16px;display:grid;gap:8px}.replay{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-radius:14px;background:#201810c7;color:#f5e6cf;box-shadow:0 12px 24px #0003}.replay.hidden{display:none}.replay-label{font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:12px}.replay .ghost{width:auto;margin:0;color:#f5e6cf;border-color:#f5e6cf66}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:12}@media (max-width: 960px){.layout,.overlay-stats{grid-template-columns:1fr}}@media (max-width: 560px){.dice-row{grid-template-columns:1fr}.dice-shell{grid-template-columns:66px minmax(0,1fr);align-items:center;gap:10px;justify-items:start}.dice-caption{min-height:auto;text-align:left}}@media (max-height: 760px){.layout{grid-template-columns:1fr}.app{gap:16px}.board-card{padding:12px}}@keyframes floatIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes diceSpin{0%{transform:rotate(0) scale(.95)}28%{transform:rotate(105deg) translateY(-1px)}56%{transform:rotate(225deg) scale(1.04)}82%{transform:rotate(320deg) translateY(-2px)}to{transform:rotate(360deg) scale(1)}}@keyframes diceCaptionPulse{0%{opacity:.55}to{opacity:1}}
