:root{--plum-deep: #140f1d;--plum: #2b2138;--plum-2: #342843;--plum-3: #3d2f52;--line: #443456;--ink: #f4ecda;--ink-dim: #b9add0;--gold: #f2c94e;--gold-dark: #a9822a;--teal: #48b4d2;--teal-dark: #1c6d86;--grass: #6cae3c;--grass-dark: #356b2b;--red: #cd5330;--shadow: rgba(0, 0, 0, .5);--font: "Trebuchet MS", "Verdana", system-ui, sans-serif;--wood-dark: var(--plum-deep);--wood: var(--plum-3);--wood-light: #4a3a63;--panel: var(--plum-2);--parchment: var(--ink);--parchment-dark: #ddd0ee;--ink-legacy: var(--ink)}*{box-sizing:border-box}#board{position:fixed;inset:0;display:block;touch-action:none;background:#274d24;z-index:0}#overlay{position:fixed;inset:0;pointer-events:none;font-family:var(--font);color:var(--ink);z-index:10}#overlay .screen{pointer-events:auto}.farmhud{position:fixed;inset:0;width:100%;height:100%;display:none;z-index:5;pointer-events:none;image-rendering:pixelated}.farm-mode .scores,.farm-mode .topright,.farm-mode .dock,.farm-mode .confirmbtn{display:none!important}.guide-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#080c08c7;backdrop-filter:blur(3px);padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));pointer-events:auto}.guide-panel{display:flex;flex-direction:column;width:100%;max-width:720px;height:100%;max-height:900px;background:linear-gradient(180deg,#356b2b,#1f3f1d 60%,#16311a);border:5px solid #7a512e;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 2px #4a2f18,0 22px 60px #0009}.guide-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(180deg,#a9713f,#6a431f);border-bottom:3px solid #4a2f18}.guide-title{font-family:var(--font);font-weight:900;font-size:18px;color:#ffe9a8;text-shadow:1px 1px 0 #3a2410}.guide-tabs{display:flex;gap:6px;margin-left:auto}.guide-tab{font-family:var(--font);font-weight:800;font-size:14px;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;color:#3a2a1a;background:linear-gradient(180deg,#e0a768,#c98b53);border:2px solid #4a2f18;border-radius:5px;padding:8px 14px;box-shadow:0 3px #6a431f,inset 0 1px #fff0c880}.guide-tab.on{background:linear-gradient(180deg,#ffe27a,#f2c94e);color:#3a2410;box-shadow:0 3px #b8922f,inset 0 1px #fff9}.guide-tab:active{transform:translateY(2px);box-shadow:0 1px #6a431f}.guide-close{font-size:18px;font-weight:800;cursor:pointer;color:#3a2a1a;background:linear-gradient(180deg,#e0a768,#c98b53);border:2px solid #4a2f18;border-radius:5px;width:40px;height:40px;flex:none;box-shadow:0 3px #6a431f,inset 0 1px #fff0c880}.guide-close:active{transform:translateY(2px);box-shadow:0 1px #6a431f}.guide-scroll{overflow-y:auto;padding:6px 18px 44px;-webkit-overflow-scrolling:touch}.guide-body{color:#f6f0dc;font-family:var(--font);line-height:1.55}.g-h2{font-size:19px;font-weight:900;color:#ffe082;margin:24px 0 8px;text-shadow:1px 1px 0 rgba(0,0,0,.45);border-bottom:2px solid rgba(242,201,78,.28);padding-bottom:5px}.g-h{font-size:15px;font-weight:800;color:#ffe9a8;margin:16px 0 6px}.g-p{font-size:15.5px;margin:7px 0;color:#f6f0dc}.g-p b,.g-note b,.g-ul b,.g-table b,.g-h2 b{color:#fff}.g-p u,.g-ul u{text-decoration-color:#ffe082}.g-ul{margin:6px 0 6px 2px;padding-left:20px}.g-ul li{font-size:15.5px;margin:6px 0;color:#f6f0dc}.g-ul li::marker{color:#ffe082}.g-row{display:flex;flex-wrap:wrap;gap:14px;margin:14px 0;align-items:flex-start}.g-tile{margin:0;display:flex;flex-direction:column;align-items:center;gap:6px}.g-tile canvas{image-rendering:pixelated;border-radius:4px;border:3px solid #7a512e;box-shadow:0 0 0 1px #4a2f18;background:#274d24}.g-tile figcaption{font-size:12.5px;color:#e6d6ad;text-align:center;max-width:100px;font-weight:600}.g-note{font-size:14.5px;margin:14px 0;padding:11px 13px;background:#0c1c0c8c;border-left:4px solid #48b4d2;border-radius:8px;color:#f6f0dc}.g-role{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:800;color:#f6f0dc}.g-role .g-dot{width:16px;height:16px;border-radius:50%;box-shadow:0 0 0 2px #ffffff2e}.g-tablewrap{overflow-x:auto;margin:12px 0;border-radius:8px}.g-table{border-collapse:collapse;width:100%;font-size:14.5px}.g-table th,.g-table td{border:1px solid #6a4a2e;padding:8px 11px;text-align:left}.g-table th{background:#5a3a1e;color:#ffe082;font-weight:800}.g-table td{color:#f6f0dc;background:#0a180a59}.btn.guide{background:#48b4d224;border-color:var(--teal-dark);color:var(--ink)}.btn.guide:hover{border-color:var(--teal)}.settings-overlay{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#080c08c7;backdrop-filter:blur(3px);padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));pointer-events:auto}.settings-panel{display:flex;flex-direction:column;width:100%;max-width:440px;background:linear-gradient(180deg,#356b2b,#1f3f1d 60%,#16311a);border:5px solid #7a512e;border-radius:14px;overflow:hidden;box-shadow:inset 0 0 0 2px #4a2f18,0 22px 60px #0009}.settings-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(180deg,#a9713f,#6a431f);border-bottom:3px solid #4a2f18}.settings-title{font-family:var(--font);font-weight:900;font-size:18px;color:#ffe9a8;text-shadow:1px 1px 0 #3a2410}.settings-bar .guide-close{margin-left:auto}.settings-body{padding:8px 16px 18px;color:#f6f0dc;font-family:var(--font)}.settings-row{display:flex;align-items:center;gap:14px;padding:12px 0}.settings-text{flex:1}.settings-label{font-size:16px;font-weight:800;color:#f6f0dc}.settings-desc{font-size:13px;color:#d8c9a0;margin-top:2px;line-height:1.35}.settings-toggle{flex:none;min-width:62px;cursor:pointer;font-family:var(--font);font-weight:800;font-size:15px;color:#3a2a1a;background:linear-gradient(180deg,#e0a768,#c98b53);border:2px solid #4a2f18;border-radius:5px;padding:8px 12px;box-shadow:0 3px #6a431f,inset 0 1px #fff0c880}.settings-toggle.on{background:linear-gradient(180deg,#6fd0e6,#48b4d2);box-shadow:0 3px #1c6d86,inset 0 1px #ffffff80}.settings-toggle:active{transform:translateY(2px);box-shadow:0 1px #6a431f}.aidiffs{display:flex;flex-direction:column;gap:6px}.aidiff-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.aidiff-name{font-weight:700;color:var(--ink)}.aidiff-sel{font-family:var(--font);font-size:15px;color:var(--ink);background:#f4ecda14;border:2px solid var(--line);border-radius:8px;padding:6px 10px}.aidiff-sel option{color:#201608}.turnannounce{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:taFade 1.15s ease forwards}.ta-card{display:flex;align-items:center;gap:14px;padding:15px 26px;background:#140f1deb;border:2px solid var(--gold-dark);border-radius:16px;box-shadow:0 10px 34px #00000080}.ta-dot{width:34px;height:34px;border-radius:50%;box-shadow:0 0 0 3px #ffffff29}.ta-name{font-family:var(--font);font-size:26px;font-weight:900;color:var(--ink);letter-spacing:.5px}@keyframes taFade{0%{opacity:0;transform:scale(.9)}16%{opacity:1;transform:scale(1)}78%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.03)}}.farmui{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:50;touch-action:none;image-rendering:pixelated}.screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:max(20px,env(safe-area-inset-top)) 20px;background:radial-gradient(130% 100% at 50% -10%,#3a2c52,#241b34 45%,#140f1d);overflow-y:auto}.screen:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:radial-gradient(1.5px 1.5px at 20% 30%,rgba(244,236,218,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 70% 20%,rgba(72,180,210,.5) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 85% 60%,rgba(242,201,78,.4) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 35% 75%,rgba(244,236,218,.35) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 55% 50%,rgba(244,236,218,.3) 50%,transparent 51%)}.title{font-size:clamp(38px,11vw,78px);font-weight:900;color:var(--ink);text-shadow:0 3px 0 var(--plum-deep),0 0 22px rgba(72,180,210,.35),0 6px 12px var(--shadow);letter-spacing:1px;text-align:center;line-height:1;position:relative}.subtitle{color:var(--teal);opacity:.95;margin-top:-8px;font-size:clamp(13px,3.5vw,18px);position:relative}.panel{background:linear-gradient(180deg,var(--plum-2) 0%,var(--plum) 100%);border:3px solid var(--line);border-radius:14px;box-shadow:0 6px 0 var(--plum-deep),0 12px 24px var(--shadow);padding:18px;width:min(440px,92vw);display:flex;flex-direction:column;gap:12px;position:relative}.btn{font-family:var(--font);font-weight:800;font-size:clamp(16px,4.5vw,20px);color:var(--ink);background:linear-gradient(180deg,var(--plum-3) 0%,var(--plum) 100%);border:2px solid var(--line);border-radius:12px;padding:14px 18px;box-shadow:0 4px 0 var(--plum-deep);cursor:pointer;transition:transform .05s,box-shadow .05s,background .1s,color .1s;user-select:none;text-align:center}.btn:hover{border-color:var(--gold)}.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--plum-deep)}.btn.gold{background:linear-gradient(180deg,#f7dc78,var(--gold));color:var(--plum-deep);border-color:var(--gold-dark)}.btn.small{font-size:15px;padding:10px 12px;box-shadow:0 3px 0 var(--plum-deep)}.btn.ghost{background:#f4ecda14;color:var(--ink);border-color:var(--line);box-shadow:none}.btn.sel{outline:3px solid var(--teal);outline-offset:1px}.btn:disabled{opacity:.4;cursor:default}.row{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.label{font-weight:800;color:var(--ink);font-size:15px}.field{display:flex;flex-direction:column;gap:6px}input.name{font-family:var(--font);font-size:16px;padding:10px 12px;border:2px solid var(--line);border-radius:10px;background:#1f1830;color:var(--ink)}input.name:focus{outline:none;border-color:var(--teal)}.hud{position:absolute;inset:0;pointer-events:none}.hud>*{pointer-events:auto}.scores{position:absolute;top:max(8px,env(safe-area-inset-top));left:8px;display:flex;flex-direction:column;gap:6px}.scorechip{display:flex;align-items:center;gap:8px;background:#140f1ddb;color:var(--ink);border:2px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px;font-weight:800;font-size:14px;box-shadow:0 2px 6px var(--shadow)}.scorechip.active{outline:3px solid var(--gold)}.dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--plum-deep)}.scorechip .mp{opacity:.85;font-weight:700;font-size:12px;display:inline-flex;align-items:center}.scorechip .mpicon{width:1.15em;height:1.15em;vertical-align:middle}.topright{position:absolute;top:max(8px,env(safe-area-inset-top));right:8px;display:flex;gap:8px}.iconbtn{width:44px;height:44px;border-radius:12px;border:2px solid var(--line);background:linear-gradient(180deg,var(--plum-3),var(--plum));color:var(--ink);font-size:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 0 var(--plum-deep);cursor:pointer}.iconbtn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--plum-deep)}.dock{position:absolute;left:0;right:0;bottom:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:12px;justify-content:center;background:linear-gradient(180deg,#140f1d00,#140f1da6 60%)}.handtile{width:84px;height:84px;border-radius:12px;border:2px solid var(--line);background:#274d24;box-shadow:0 3px 0 var(--plum-deep);flex:0 0 auto;image-rendering:pixelated}.dock .prompt{background:#140f1ddb;color:var(--ink);border:2px solid var(--line);border-radius:10px;padding:8px 12px;font-weight:800;font-size:14px;max-width:46vw}.banner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:linear-gradient(180deg,var(--plum-2),var(--plum));border:3px solid var(--gold);border-radius:16px;padding:22px 28px;box-shadow:0 8px 0 var(--plum-deep),0 16px 32px var(--shadow);text-align:center;font-weight:900;font-size:22px;color:var(--ink);animation:pop .25s ease-out}@keyframes pop{0%{transform:translate(-50%,-50%) scale(.8);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.toast{position:absolute;left:50%;top:18%;transform:translate(-50%);background:linear-gradient(180deg,#f7dc78,var(--gold));color:var(--plum-deep);border:2px solid var(--gold-dark);border-radius:12px;padding:8px 16px;font-weight:900;font-size:16px;box-shadow:0 4px 10px var(--shadow);animation:floatup 1.6s ease-out forwards}@keyframes floatup{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-24px)}}.tilecount{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:46px;padding:4px 8px;background:#140f1ddb;color:var(--ink);border:2px solid var(--line);border-radius:10px;box-shadow:0 2px 6px var(--shadow);line-height:1.05}.tilecount b{font-size:20px;font-weight:900;color:var(--gold)}.tilecount span{font-size:10px;opacity:.85}.scoreboard{position:absolute;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);width:min(420px,94vw);background:linear-gradient(180deg,var(--plum-2) 0%,var(--plum) 100%);border:3px solid var(--line);border-radius:14px;box-shadow:0 6px 0 var(--plum-deep),0 12px 24px var(--shadow);padding:10px 14px;z-index:30}.scoreboard h3{margin:0 0 8px;text-align:center;color:var(--ink);font-size:18px;font-weight:900}.scorerow{display:flex;align-items:center;gap:10px;padding:5px 6px;border-radius:8px;font-weight:800;color:var(--ink)}.scorerow.lead{background:#f2c94e38}.scorerow .dot{width:18px;height:18px}.scorerow .nm{flex:1}.scorerow .sc{font-size:20px;font-variant-numeric:tabular-nums;min-width:44px;text-align:right;color:var(--gold)}.scorerow .sc.bump{animation:scpop .4s ease-out}@keyframes scpop{0%{transform:scale(1)}40%{transform:scale(1.45);color:var(--red)}to{transform:scale(1)}}.scorestatus{position:absolute;left:50%;bottom:calc(96px + env(safe-area-inset-bottom));transform:translate(-50%);background:#140f1de6;color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:8px 16px;font-weight:800;font-size:15px;text-align:center;z-index:30;max-width:90vw;display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.scorestatus .sicon{width:22px;height:22px;image-rendering:pixelated;flex:0 0 auto}.scorebtns{position:absolute;left:0;right:0;bottom:calc(14px + env(safe-area-inset-bottom));display:flex;gap:10px;justify-content:center;padding:0 12px;z-index:30;pointer-events:auto}.rotatebtn{position:absolute;transform:translate(-50%,-50%);background:transparent;border:none;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;z-index:5}.rotatebtn .rring{position:absolute;width:56%;height:56%;border-radius:50%;border:1.5px solid rgba(244,236,218,.28);transition:transform .24s cubic-bezier(.34,1.56,.64,1),border-color .15s;pointer-events:none}.rotatebtn .rico{line-height:1;color:#f4ecda80;text-shadow:0 1px 3px rgba(0,0,0,.6);transition:transform .24s cubic-bezier(.34,1.56,.64,1),opacity .15s,filter .15s;pointer-events:none}.rotatebtn:active .rico{opacity:.98;filter:drop-shadow(0 0 5px rgba(242,201,78,.8))}.rotatebtn:active .rring{border-color:#f2c94eb3}.confirmbtn{position:absolute;right:16px;bottom:calc(118px + env(safe-area-inset-bottom));width:68px;height:68px;border-radius:50%;border:3px solid var(--plum-deep);background:linear-gradient(180deg,#6fd0e6,var(--teal));color:#08303c;font-size:34px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 5px 0 var(--plum-deep),0 12px 22px var(--shadow);cursor:pointer;transition:transform .05s,box-shadow .05s,filter .1s,opacity .1s}.confirmbtn:active{transform:translateY(4px);box-shadow:0 1px 0 var(--plum-deep)}.confirmbtn.off{background:linear-gradient(180deg,#6a6280,#4a4360);filter:grayscale(.5);opacity:.55;cursor:default}.confirmbtn.skipmode{background:linear-gradient(180deg,#b98c9a,#8a5a68);filter:none;opacity:1;font-size:32px;overflow:hidden}.confirmbtn.skipmode:after{content:"";position:absolute;left:10%;right:10%;top:47%;height:5px;background:#e23b2e;border-radius:3px;transform:rotate(-45deg);box-shadow:0 0 0 1.5px #0006}.hidden{display:none!important}.spacer{flex:1}.mutewrap{display:flex;gap:8px}
