@font-face{font-family:Caveat;font-weight:500 700;font-display:block;src:url(/fonts/caveat.woff2)format("woff2")}@font-face{font-family:Patrick Hand;font-weight:400;font-display:block;src:url(/fonts/patrickhand.woff2)format("woff2")}:root{--paper:#f6f0e1;--paper-edge:#e9dfc6;--desk:#6d4f36;--pencil:#3b3a38;--pencil-dark:#2b2a28;--graphite:#55534f;--ink-blue-rgb:31 63 143;--ink-red-rgb:194 53 43;--ink-blue:rgb(var(--ink-blue-rgb));--ink-red:rgb(var(--ink-red-rgb));--ink-green:#14703a;--highlighter:#f5c518;--rule:#5a82be47;--margin:#c846468c;--sticky:#fbe98a;--sticky-warning:#ffc9b8;--font-hand:"Caveat", "Patrick Hand", cursive;--font-body:"Patrick Hand", "Caveat", cursive;--space-2:8px;--space-3:12px;--space-4:16px;--line:32px;--chrome:448px;--scoreline-h:66px;--slot-h:86px;--board-max:384px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}body{font-family:var(--font-body);color:var(--pencil);background:radial-gradient(ellipse at 30% 20%, #ffffff14, transparent 60%), repeating-linear-gradient(90deg, #00000009 0 2px, transparent 2px 7px), var(--desk);touch-action:manipulation;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.desk{min-height:100dvh;padding:max(28px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));grid-template-columns:minmax(0,1fr);place-items:center;display:grid;position:relative}.desk:before{content:"";pointer-events:none;opacity:0;background:radial-gradient(60% 55% at 50% 42%,#ffd68c38,#0000 70%),radial-gradient(#0000 40%,#0000008c);position:fixed;inset:0}@media (prefers-color-scheme:dark){:root{--paper:#e8dcc0;--paper-edge:#d6c9a8;--desk:#3a2a1c;--rule:#4669a04d}.desk:before{opacity:1}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.filter-defs{position:absolute}.sheet{width:min(560px,100%)}@media (width>=700px) and (height>=860px){:root{--board-max:460px}.sheet{width:min(680px,100%)}}.page{background:linear-gradient(90deg, transparent 58px, var(--margin) 58px 60px, transparent 60px), repeating-linear-gradient(180deg, transparent 0 calc(var(--line) - 1px), var(--rule) calc(var(--line) - 1px) var(--line)), url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .45  0 0 0 0 .38  0 0 0 0 .25  0 0 0 .11 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"), var(--paper);box-shadow:0 1px 0 var(--paper-edge), 0 2px 0 color-mix(in srgb, var(--paper-edge), black 5%), 0 3px 0 color-mix(in srgb, var(--paper-edge), black 10%), 0 22px 40px #00000073;border-radius:3px 6px 4px 3px;padding:32px 28px 32px 76px;position:relative;transform:rotate(-.6deg)}.page:after{content:"";background:linear-gradient(135deg, transparent 50%, #00000024 50%, var(--paper-edge) 56%, color-mix(in srgb, var(--paper), white 55%) 100%);clip-path:polygon(100% 0,100% 100%,0 100%);pointer-events:none;border-top-left-radius:8px;width:44px;height:44px;position:absolute;bottom:0;right:0;box-shadow:-3px -3px 6px #0000001f}[hidden]{display:none!important}.page.flip{animation:.6s cubic-bezier(.2,.8,.2,1) both page-in}@keyframes page-in{0%{translate:90px 14px;rotate:5deg}to{translate:0;rotate:0deg}}.holes{flex-direction:column;justify-content:space-around;padding:24px 0;display:flex;position:absolute;top:0;bottom:0;left:14px}.holes span{background:var(--desk);border-radius:50%;width:20px;height:20px;box-shadow:inset 2px 3px 5px #0009,0 1px #ffffff59}.page-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);display:flex}.page-head h1{font:700 clamp(22px, 1.2vw + 16px, 28px) / 1.1 var(--font-hand);color:var(--ink-blue);white-space:nowrap;margin:0;transform:rotate(-1deg)}.page-head h1 span{color:var(--ink-red)}.scoreline{min-height:var(--scoreline-h);margin-bottom:var(--space-3);align-items:flex-end;display:flex}.scoreline>*{width:100%}.slot{min-height:var(--slot-h);align-content:center;align-items:center;display:flex;position:relative}footer{padding-top:var(--space-2)}.scorecard{align-items:flex-end;gap:var(--space-3);display:flex}.scorecard>*{justify-items:center;min-width:60px;display:grid}.scorecard>div{border-bottom:2.5px solid #3b3a38bf;border-radius:0 0 6px 3px/0 0 3px 8px;padding:0 4px 2px}.scorecard>div>span:first-child{color:var(--pencil-dark);font-size:19px;line-height:22px}.scorecard>.game-number{font:700 22px / 1.1 var(--font-hand);color:var(--ink-red);text-align:left;align-self:center;margin-right:auto;display:block}.score{font:400 34px / 36px var(--font-body);color:var(--pencil-dark)}.board-wrap{width:min(100%, var(--board-max), max(220px, calc(100dvh - var(--chrome))));margin:0 auto;position:relative}.board{aspect-ratio:1;grid-template:repeat(3,1fr)/repeat(3,1fr);display:grid;position:relative}.board.is-thinking{cursor:progress}.board.shake{animation:.5s .5s shake}@keyframes shake{20%,60%{transform:translate(-5px)rotate(-.6deg)}40%,80%{transform:translate(5px)rotate(.6deg)}}.grid-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.grid-line,.win-line,.stroke{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px}@keyframes draw{to{stroke-dashoffset:0}}.grid-line{stroke:var(--graphite);stroke-width:3.4px;opacity:.9;animation:.55s ease-out forwards draw}.win-line{stroke:var(--highlighter);stroke-width:24px;opacity:.7;mix-blend-mode:multiply;animation:.5s ease-out .25s forwards draw}.cell{font:inherit;cursor:pointer;background:0 0;border:0;border-radius:12px;padding:0;position:relative}.cell[aria-disabled=true]{cursor:default}.cell:focus-visible{outline:3px dashed var(--ink-blue);outline-offset:-10px;border-radius:50%}.cell:not([aria-disabled=true]):after{content:"";opacity:0;pointer-events:none;background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%231f3f8f' stroke-width='7' stroke-linecap='round'><path d='M24 22Q50 48 78 80'/><path d='M78 20Q52 52 22 80'/></svg>") 50%/contain no-repeat;transition:opacity .15s,transform .15s;position:absolute;inset:8%;transform:scale(.85)rotate(-4deg)}.cell:not([aria-disabled=true]):focus-visible:after{opacity:.32;transform:none}.cell:not([aria-disabled=true]):active:after{opacity:.5;transform:scale(.94)}.cell:not([aria-disabled=true]).ghost-O:after{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23c2352b' stroke-width='7' stroke-linecap='round'><ellipse cx='50' cy='50' rx='27' ry='29'/></svg>")}@media (hover:hover){.cell:not([aria-disabled=true]):hover:after{opacity:.32;transform:none}}.cell.pulse:before{content:"";border:3px dashed rgb(var(--ink-blue-rgb) / .5);border-radius:50%;animation:1.6s ease-in-out infinite pulse;position:absolute;inset:14%}.cell.last:after{content:"";background:repeating-linear-gradient(90deg, var(--pencil) 0 6px, transparent 6px 9px);opacity:.45;border-radius:4px;height:4px;position:absolute;bottom:6%;left:22%;right:22%}@keyframes pulse{0%,to{opacity:.4;transform:scale(.92)}50%{opacity:1;transform:scale(1.06)}}.mark{filter:url(#ink);width:100%;height:100%;display:block;overflow:visible}.mark.drawing{filter:none}.mark .stroke{stroke-width:6.5px}.mark .stroke.bleed{stroke-width:11px;opacity:.16}.ink-cross .stroke{stroke:var(--ink-blue)}.ink-cross .first{animation:.28s ease-out forwards draw}.ink-cross .second{animation:.28s ease-out .28s forwards draw}.ink-nought .stroke{stroke:var(--ink-red)}.ink-nought .first{animation:.5s ease-out forwards draw}.hand{pointer-events:none}.stamp{z-index:2;background:color-mix(in srgb, var(--paper) 78%, transparent);font:700 clamp(30px, 8vw, 48px) var(--font-hand);letter-spacing:2px;white-space:nowrap;pointer-events:none;border:6px double;border-radius:10px;padding:0 14px;animation:.4s cubic-bezier(.2,1.4,.4,1) .7s both stamp;position:absolute;top:46%;left:50%;translate:-50% -50%;rotate:-12deg;-webkit-mask:radial-gradient(circle at 20% 30%,#0000 1px,#000 1.5px) 0 0/11px 11px;mask:radial-gradient(circle at 20% 30%,#0000 1px,#000 1.5px) 0 0/11px 11px}.stamp.stamp-win{color:var(--ink-green)}.stamp.stamp-loss{color:var(--ink-red)}.stamp.stamp-draw{color:var(--ink-blue)}@keyframes stamp{0%{opacity:0;scale:2.4}to{opacity:.95;scale:1}}.confetti{z-index:3;pointer-events:none;position:absolute;inset:-20px;overflow:visible}.confetti i{opacity:0;border-radius:2px;animation:linear forwards fall;position:absolute;top:-10px;box-shadow:0 0 0 1px #00000014}@keyframes fall{0%{opacity:1;transform:translateY(-10px)rotate(0)}to{opacity:0;transform:translate(var(--drift), 460px) rotate(calc(var(--rotation) + 540deg))}}.status-line{justify-content:space-between;align-items:center;gap:var(--space-2);height:var(--line);display:flex}.status{font:700 clamp(22px, 6.4vw, 30px) / var(--line) var(--font-hand);color:var(--ink-blue);margin:0}.thinking-pencil{vertical-align:-8px;transform-origin:2px 100%;margin-left:10px;animation:.55s ease-in-out infinite tap}@keyframes tap{0%,to{transform:rotate(0)}50%{transform:rotate(-16deg)translateY(2px)}}.opponent-chip{border:1.5px solid var(--ink-blue);font:500 18px / 24px var(--font-hand);color:var(--ink-blue);white-space:nowrap;border-radius:12px;flex:none;padding:0 9px}.opponent-chip.minimax{border-style:dashed;border-color:var(--ink-red);color:var(--ink-red)}.sticky{background:var(--sticky);width:fit-content;max-width:100%;color:var(--pencil);border-radius:2px 2px 14px;align-items:flex-start;gap:10px;margin:14px 0 16px;padding:10px 16px 12px 12px;font-size:21px;line-height:1.2;animation:.35s cubic-bezier(.3,1.5,.5,1) stick;display:flex;position:relative;rotate:-1.2deg;box-shadow:0 5px 10px #00000038,inset 0 -18px 18px -18px #966e0040}.sticky:before{content:"";background:#ffffff80;width:54px;height:18px;position:absolute;top:-9px;left:50%;translate:-50%;rotate:-3deg;box-shadow:0 1px 2px #00000026}.sticky p{margin:0}.sticky .face{flex:none;width:34px;height:34px}.sticky.warn{background:var(--sticky-warning)}.sticky.warn b{font-family:var(--font-hand);color:var(--ink-red);font-size:26px}@keyframes stick{0%{opacity:0;rotate:4deg;scale:1.15}}.actions{flex-wrap:wrap;align-items:center;gap:10px 14px;display:flex}.pen-button{border:2.5px solid var(--ink-blue);min-height:44px;font:700 24px var(--font-hand);color:var(--ink-blue);cursor:pointer;background:0 0;border-radius:255px 15px 225px/15px 225px 15px 255px;padding:2px 18px 4px;transition:transform .15s,background .15s;display:inline-block}.pen-button:hover,.pen-button:focus-visible{background:rgb(var(--ink-blue-rgb) / .09);outline:none;transform:rotate(-1.5deg)scale(1.03)}.pen-button:focus-visible{box-shadow:0 0 0 3px rgb(var(--ink-blue-rgb) / .3)}.pen-button:disabled{opacity:.6;cursor:progress}.pen-button.share{color:var(--ink-red);border-color:var(--ink-red);animation:2.4s 1.2s 2 nudge}.pen-button.share:hover{background:rgb(var(--ink-red-rgb) / .09)}@keyframes nudge{0%,to{transform:none}10%,30%{transform:rotate(-3deg)scale(1.05)}20%{transform:rotate(3deg)scale(1.05)}}.credit{text-align:center;color:#3b3a38bf;margin:0;font-size:17px;line-height:20px;position:absolute;bottom:5px;left:0;right:0}.credit .heart{color:var(--ink-red)}.credit a{color:var(--ink-blue);text-underline-offset:3px;margin:-10px 0;padding:10px 2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.credit a:hover,.credit a:focus-visible{text-decoration-style:solid}.toast{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:10;background:var(--sticky);max-width:calc(100vw - 32px);color:var(--pencil);font:700 24px var(--font-hand);border-radius:2px 2px 14px;padding:8px 20px;animation:.3s cubic-bezier(.3,1.5,.5,1) stick;position:fixed;translate:-50%;rotate:-1deg;box-shadow:0 8px 20px #00000059}@media (width<=480px),(height<=700px){.desk{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left))}.page{box-shadow:0 1px 0 var(--paper-edge), 0 8px 18px #0006;background-position:-20px 0,0 0,0 0,0 0;padding:12px 12px 14px 44px;transform:none}.page:after{display:none}.holes{padding:14px 0;left:8px}.holes span{width:13px;height:13px}.holes span:nth-child(n+5){display:none}:root{--scoreline-h:58px;--slot-h:67px}.page-head{gap:var(--space-2);padding-bottom:var(--space-2)}.scoreline{margin-bottom:var(--space-2)}.stage{padding:8px}.name-input{font-size:24px}.scorecard{gap:var(--space-2);width:100%}.scorecard>*{flex:1;min-width:0}.scorecard>div>span:first-child{font-size:18px}.scorecard>.game-number{white-space:nowrap;flex:1.3;font-size:19px}.score{font-size:30px;line-height:32px}.of{font-size:0}.of:after{content:"/";font-size:19px}.status{line-height:30px}.status-line{height:30px}.opponent-chip{font-size:16px;line-height:22px}.sticky{margin:12px 0 10px;padding:8px 12px 9px 10px;font-size:18px}.sticky .face{width:28px;height:28px}.sticky.warn b{font-size:22px}.actions{flex-wrap:nowrap;gap:10px}.pen-button{white-space:nowrap;flex:1;padding:2px 8px 4px;font-size:21px}.credit{margin-top:4px;font-size:15px;line-height:18px;position:static}.toast{top:max(12px, env(safe-area-inset-top));font-size:21px;bottom:auto}}@media (width<=480px) and (orientation:portrait){:root{--chrome:342px}.desk{align-items:stretch}.sheet{flex-direction:column;display:flex}.page{flex-direction:column;flex:1;display:flex}.board-wrap{margin-block:auto}}@media (width>=481px) and (width<=767px) and (height>=500px){.desk{padding:max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left))}.page{padding:22px 20px 24px 60px}}@media (width<=340px){.opponent-chip{padding:0 6px;font-size:14px}.page{padding-left:38px;padding-right:8px}.pen-button{font-size:19px}.thinking-pencil{display:none}}@media (orientation:landscape) and (height<=700px){.sheet{width:min(820px,100%)}.page{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:20px;padding-bottom:18px;display:grid}.credit{margin:0;font-size:13px;line-height:14px;position:absolute}.page-head{grid-column:1/-1}.page-head h1{font-size:clamp(22px,7vh,28px)}.scoreline{grid-area:2/2;align-self:end}.scorecard{flex:none;width:auto}.scorecard>*{flex:none;min-width:58px}footer{grid-area:3/2}.board-wrap{grid-area:2/1/span 2;width:min(100%,max(200px,100dvh - 130px));margin:0}footer{align-self:start}}@media (height<=340px){.score{font-size:26px;line-height:28px}.scorecard>div>span:first-child{font-size:16px;line-height:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation-duration:1ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.confetti{display:none}}.mode-toggle{flex:none;position:relative}.mode-bar{background:#ffffff59;border:2px solid #3b3a3899;border-radius:16px 7px 14px 8px/9px 14px 8px 16px;grid-template-columns:1fr 1fr;padding:3px;display:grid;position:relative}.mode-bar:before{content:"";background:#f5c518bf;border-radius:12px 5px 10px 6px/7px 10px 6px 12px;width:calc(50% - 3px);transition:translate .25s cubic-bezier(.3,1.3,.5,1);position:absolute;inset:3px auto 3px 3px;box-shadow:0 1px #0000002e}.mode-bar[data-mode=online]:before{translate:100%}.mode-tab{min-width:64px;height:34px;font:700 20px / 1 var(--font-hand);color:var(--graphite);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 12px;position:relative}.mode-tab:before{content:"";position:absolute;inset:-6px 0}.mode-tab:hover:not(:disabled){color:var(--ink-blue)}.mode-tab:focus-visible{outline:2px solid rgb(var(--ink-blue-rgb) / .6);outline-offset:1px}.mode-tab.active{color:var(--pencil-dark)}.mode-tab:disabled{opacity:.45;cursor:not-allowed;text-decoration:line-through}.mode-confirm{z-index:30;background:var(--paper);border:1.5px solid #3b3a3899;border-radius:4px 10px 6px;gap:6px;width:min(250px,78vw);padding:10px 12px;animation:.2s cubic-bezier(.3,1.5,.5,1) stick;display:grid;position:absolute;top:calc(100% + 10px);right:0;box-shadow:0 10px 24px #00000059}.mode-confirm p{font:500 21px / 1.15 var(--font-hand);color:var(--pencil);margin:0}.mode-confirm-actions{gap:8px;display:flex}.mode-confirm-actions button{border:2px solid var(--ink-blue);min-height:44px;font:700 21px / 1 var(--font-hand);color:var(--ink-blue);cursor:pointer;background:0 0;border-radius:10px 4px 9px;flex:1}.mode-confirm-actions button.danger{border-color:var(--ink-red);color:var(--ink-red)}.mode-confirm-actions button:hover,.mode-confirm-actions button:focus-visible{background:rgb(var(--ink-blue-rgb) / .09);outline:none}.name-field{border-bottom:2.5px solid #3b3a38bf;border-radius:0 0 6px 3px/0 0 3px 8px;align-items:center;gap:10px;min-height:50px;padding:0 4px 2px 0;display:flex}.name-field:focus-within{border-bottom-color:var(--ink-blue)}.name-input{min-width:0;min-height:44px;font:700 28px / 1 var(--font-hand);color:var(--ink-blue);background:0 0;border:0;outline:none;flex:1;padding:0 4px}.name-input::placeholder{color:#3b3a3873;font-weight:400}.name-input:read-only{cursor:default}.name-count{font:400 17px / 1 var(--font-hand);color:var(--graphite);opacity:.75}.stage{aspect-ratio:1;background:#ffffff38;border:2.5px dashed #3b3a3852;border-radius:14px 6px 12px 8px/8px 12px 6px 14px;place-items:center;padding:12px;display:grid;container-type:size}.stage-body{text-align:center;justify-items:center;gap:12px;display:grid}.stage-title{font:700 clamp(24px, 6vw, 30px) / 1.1 var(--font-hand);color:var(--ink-blue);margin:0}.dots{gap:4px;margin-left:6px;display:inline-flex}.dots i{background:currentColor;border-radius:50%;width:6px;height:6px;animation:1.2s infinite blink}.dots i:nth-child(2){animation-delay:.2s}.dots i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}.join{gap:6px;width:min(100%,320px);display:grid}.join-title{font:700 26px / 1 var(--font-hand);color:var(--ink-blue);text-align:center;margin:0}.join-row{gap:8px;display:flex}.join-input{min-width:0;min-height:44px;font:400 22px / 1 var(--font-body);letter-spacing:.06em;color:var(--pencil-dark);background:#ffffff73;border:2px solid #3b3a388c;border-radius:12px 5px 10px/6px 10px 5px 12px;outline:none;flex:1;padding:0 10px}.join-input:focus-visible{border-color:var(--ink-blue);box-shadow:0 0 0 3px rgb(var(--ink-blue-rgb) / .2)}.join-input[aria-invalid=true]{border-color:var(--ink-red);animation:.35s shake-x}@keyframes shake-x{25%{translate:-5px}75%{translate:5px}}.join-error{min-height:40px;font:500 20px / 1.05 var(--font-hand);color:var(--ink-red);text-align:center;margin:0}@container (height<=250px){.join-title{display:none}.join-error{min-height:34px;font-size:17px}.stage-body{gap:6px}}.invite-code{border:2.5px dashed var(--ink-red);color:var(--ink-red);font:700 clamp(32px, 9vw, 44px) / 1.1 var(--font-hand);border-radius:6px 2px 8px;justify-content:center;gap:6px;margin:0;padding:6px 14px;display:flex}.invite-code span{animation:.3s cubic-bezier(.3,1.5,.5,1) backwards stick;display:inline-block}.invite-code span:nth-child(2){animation-delay:40ms}.invite-code span:nth-child(3){animation-delay:80ms}.invite-code span:nth-child(4){animation-delay:.12s}.invite-code span:nth-child(5){animation-delay:.16s}.invite-code span:nth-child(6){animation-delay:.2s}.slot-note{font:400 21px / 1.2 var(--font-body);color:var(--graphite);margin:0}.slot-note.err{color:var(--ink-red)}.status.err{color:var(--ink-red);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pen-button.danger{color:var(--ink-red);border-color:var(--ink-red)}.avatar{background:#ffffff80;border-radius:50%;flex:none;display:inline-flex;overflow:hidden;box-shadow:0 0 0 1.5px #3b3a3880,0 1px 3px #00000040}.avatar img{display:block}.multi-chip{border:1.5px solid var(--ink-blue);min-width:0;color:var(--ink-blue);font:700 19px / 24px var(--font-hand);white-space:nowrap;background:#ffffff4d;border-radius:18px;flex:none;align-items:center;gap:6px;padding:2px 10px 2px 3px;display:inline-flex}.multi-chip-name{text-overflow:ellipsis;overflow:hidden}.dot{background:var(--ink-green);border-radius:50%;width:9px;height:9px}.dot.off{background:var(--ink-red)}.scorecard.multi .who{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.scorecard.multi .who b{font-weight:400}.chat{width:100%;position:relative}.chat-bar{width:100%;min-height:44px;font:400 19px / 1.1 var(--font-body);color:var(--graphite);text-align:left;cursor:pointer;background:#ffffff59;border:1.5px dashed #3b3a3880;border-radius:12px 6px 10px/6px 10px 6px 12px;align-items:center;gap:10px;padding:0 12px;display:flex}.chat-bar:hover,.chat-bar:focus-visible{border-color:var(--ink-blue);outline:none}.chat-bar.unread{border-style:solid;border-color:var(--ink-red)}.chat-bar-label{font:700 22px / 1 var(--font-hand);color:var(--ink-blue)}.chat-bar-preview{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.chat-badge{background:var(--ink-red);min-width:24px;height:24px;font:700 16px / 24px var(--font-hand);color:#fff;text-align:center;border-radius:12px;padding:0 6px}.chat-panel{z-index:20;background:var(--paper);border:1.5px solid #3b3a3899;border-radius:4px 10px 6px;grid-template-rows:auto minmax(0,1fr) auto auto auto;height:min(340px,52dvh);padding:6px 10px 10px;animation:.2s cubic-bezier(.3,1.5,.5,1) stick;display:grid;position:absolute;bottom:0;left:0;right:0;box-shadow:0 10px 24px #00000059}.chat-head{justify-content:space-between;align-items:center;min-height:32px;display:flex}.chat-head h2{font:700 22px / 1 var(--font-hand);color:var(--ink-blue);margin:0}.chat-head h2 span{color:var(--graphite);font-weight:500}.chat-close{width:44px;height:44px;font:400 18px / 1 var(--font-body);color:var(--graphite);cursor:pointer;background:0 0;border:0;margin:-6px -8px -6px 0}.chat-close:hover,.chat-close:focus-visible{color:var(--ink-red);outline:none}.chat-list{overscroll-behavior:contain;flex-direction:column;gap:6px;min-height:0;padding:2px;display:flex;overflow-y:auto}.chat-empty{font:400 20px / 1.2 var(--font-body);color:var(--graphite);text-align:center;margin:auto}.chat-msg{max-width:90%;font:400 19px / 1.2 var(--font-body);color:var(--pencil);align-items:flex-end;gap:6px;margin:0;display:flex}.chat-msg.mine{flex-direction:row-reverse;align-self:flex-end}.chat-msg.filtered .chat-body{opacity:.6;font-style:italic}.chat-body{overflow-wrap:anywhere;background:#fbe98ab3;border-radius:12px 12px 12px 3px;min-width:0;padding:5px 10px 6px}.mine .chat-body{background:rgb(var(--ink-blue-rgb) / .12);color:var(--ink-blue);border-radius:12px 12px 3px}.chat-quick{scrollbar-width:none;gap:6px;padding:6px 0 2px;display:flex;overflow-x:auto}.chat-quick button{height:32px;font:700 18px / 1 var(--font-hand);color:var(--graphite);cursor:pointer;background:0 0;border:1.5px solid #3b3a3866;border-radius:16px;flex:none;padding:0 12px;position:relative}.chat-quick button:before{content:"";position:absolute;inset:-6px -2px}.chat-quick button:hover,.chat-quick button:focus-visible{border-color:var(--ink-blue);color:var(--ink-blue);outline:none}.chat-who{font:700 16px / 1.1 var(--font-hand);color:var(--graphite);display:block}.chat-error{min-height:18px;font:400 17px / 18px var(--font-hand);color:var(--ink-red);margin:0}.chat-row{gap:8px;display:flex}.chat-input{min-width:0;min-height:44px;font:400 19px / 1 var(--font-body);color:var(--pencil-dark);background:#ffffff8c;border:2px solid #3b3a388c;border-radius:12px 5px 10px/6px 10px 5px 12px;outline:none;flex:1;padding:0 10px}.chat-input:focus-visible{border-color:var(--ink-blue);box-shadow:0 0 0 3px rgb(var(--ink-blue-rgb) / .2)}.chat-send{flex:none;min-width:76px;padding-inline:12px;font-size:21px}@media (width<=480px),(height<=700px){.mode-tab{min-width:56px;padding:0 8px;font-size:19px}}.stage{background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='none' stroke='%233b3a38' stroke-opacity='.09' stroke-width='3' stroke-linecap='round'><path d='M40 8Q42 60 40 112M80 8Q78 60 80 112M8 40Q60 42 112 40M8 80Q60 78 112 80'/><path d='M12 12l20 20M32 12L12 32'/><ellipse cx='98' cy='98' rx='10' ry='11'/></svg>") 50%/min(78%,260px) no-repeat,#ffffff38;position:relative}.presence{background:var(--paper);font:700 19px / 1.1 var(--font-hand);color:var(--graphite);white-space:nowrap;border:1.5px solid #3b3a3859;border-radius:14px;align-items:center;gap:7px;margin:0;padding:3px 12px 4px 10px;display:inline-flex;position:absolute;top:10px;left:50%;translate:-50%}.presence.idle{opacity:.6}.live-dot{background:var(--ink-green);border-radius:50%;width:9px;height:9px;animation:2s infinite live;box-shadow:0 0 #14703a80}.idle .live-dot{background:var(--graphite);animation:none}@keyframes live{70%{box-shadow:0 0 0 7px #14703a00}to{box-shadow:0 0 #14703a00}}.pen-button.primary{background:rgb(var(--ink-blue-rgb) / .12);box-shadow:2px 3px 0 rgb(var(--ink-blue-rgb) / .3)}.pen-button.primary:hover:not(:disabled),.pen-button.primary:focus-visible{background:rgb(var(--ink-blue-rgb) / .2)}.pen-button.primary:disabled{box-shadow:none}.actions{justify-content:flex-end;min-height:44px}@container (height<=250px){.presence{font-size:16px;top:6px}}@media (width<=480px),(height<=700px){.actions .pen-button.primary{flex:1.25}}
