:root,:host{--ttt-sky: #8fd3f4;--ttt-sky-deep: #1f7fb8;--ttt-sun: #ffc93c;--ttt-coral: #e8503c;--ttt-coral-deep: #c93d2a;--ttt-teal: #137c70;--ttt-grass: #7bc96f;--ttt-ink: #1f2d3a;--ttt-ink-2: #4a5b6b;--ttt-paper: #fffaf0;--ttt-paper-2: #f6eedb;--ttt-line: #d9ccae;--ttt-ok: #1c7a42;--ttt-danger: #b3321f;--ttt-focus: #1d6fd1;--ttt-radius: 14px;--ttt-radius-sm: 9px;--ttt-shadow: 0 10px 28px rgba(31, 45, 58, .18), 0 2px 5px rgba(31, 45, 58, .12);--ttt-font-display: "Barlow Condensed", "Arial Narrow", sans-serif;--ttt-font-body: "Barlow", "Segoe UI", system-ui, sans-serif}.ttt-stage{position:absolute;inset:0;overflow:auto;display:grid;place-items:center;padding:24px 16px;font-family:var(--ttt-font-body);font-size:17px;color:var(--ttt-ink);background:radial-gradient(circle at 82% 14%,#fff3b0 0 7%,#fff3b000 22%),linear-gradient(180deg,var(--ttt-sky) 0%,#d8f1fb 55%,#f4f0d6 68%,var(--ttt-grass) 68.1%,#5fb257 100%)}.ttt-card{width:min(480px,100%);box-sizing:border-box;background:var(--ttt-paper);border:3px solid #fff;border-radius:var(--ttt-radius);box-shadow:var(--ttt-shadow);padding:28px 28px 24px}.ttt-card--wide{width:min(720px,100%)}.ttt-h1{font-family:var(--ttt-font-display);font-weight:800;font-size:44px;line-height:1;letter-spacing:.02em;text-transform:uppercase;margin:0;color:var(--ttt-coral-deep)}.ttt-h2{font-family:var(--ttt-font-display);font-weight:700;font-size:28px;letter-spacing:.03em;text-transform:uppercase;margin:0}.ttt-sub{margin:4px 0 0;color:var(--ttt-ink-2)}.ttt-label{display:block;font-weight:600;font-size:14px;color:var(--ttt-ink-2);margin:0 0 4px}.ttt-hint{display:block;font-size:14px;color:var(--ttt-danger);margin-top:4px}.ttt-error{margin:12px 0 0;padding:10px 12px;border-radius:var(--ttt-radius-sm);background:#fde7e3;color:var(--ttt-danger);font-weight:600}.ttt-note{margin:12px 0 0;padding:10px 12px;border-radius:var(--ttt-radius-sm);background:#e3f6ee;color:var(--ttt-ok);font-weight:600}.ttt-input{width:100%;box-sizing:border-box;font:inherit;color:var(--ttt-ink);background:#fff;border:2px solid var(--ttt-line);border-radius:var(--ttt-radius-sm);padding:10px 12px;min-height:44px}.ttt-input:focus-visible{outline:3px solid var(--ttt-focus);outline-offset:1px;border-color:var(--ttt-focus)}.ttt-input.invalid{border-color:var(--ttt-danger)}.ttt-btn{font:700 18px/1 var(--ttt-font-display);letter-spacing:.05em;text-transform:uppercase;min-height:44px;padding:0 20px;border-radius:999px;border:2px solid var(--ttt-ink);background:#fff;color:var(--ttt-ink);cursor:pointer;box-shadow:0 3px 0 var(--ttt-ink);transition:transform .08s,box-shadow .08s}.ttt-btn:hover:not(:disabled){transform:translateY(-1px)}.ttt-btn:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 var(--ttt-ink)}.ttt-btn:focus-visible{outline:3px solid var(--ttt-focus);outline-offset:2px}.ttt-btn:disabled{opacity:.55;cursor:default}.ttt-btn--primary{background:var(--ttt-coral);color:#fff}.ttt-btn--teal{background:var(--ttt-teal);color:#fff}.ttt-btn--danger{background:var(--ttt-danger);border-color:#7d1f15;color:#fff;box-shadow:0 3px #7d1f15}.ttt-btn--ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--ttt-ink-2);text-decoration:underline}.ttt-btn--sm{min-height:36px;padding:0 14px;font-size:16px}.ttt-chip{font:600 16px var(--ttt-font-body);min-height:40px;padding:0 16px;border-radius:999px;border:2px solid var(--ttt-line);background:#fff;color:var(--ttt-ink);cursor:pointer}.ttt-chip:hover{border-color:var(--ttt-sky-deep)}.ttt-chip:focus-visible{outline:3px solid var(--ttt-focus);outline-offset:1px}.ttt-chip--on{background:var(--ttt-sky-deep);border-color:var(--ttt-sky-deep);color:#fff}.ttt-badge{display:inline-block;font:700 13px/1 var(--ttt-font-display);letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;border-radius:6px;background:var(--ttt-paper-2);color:var(--ttt-ink-2)}.ttt-badge--owner{background:var(--ttt-sun);color:#5a3d00}.ttt-badge--builder{background:#cfeaf8;color:#0f5a82}.ttt-badge--helper{background:#dff3d6;color:#2c6b1d}@media(prefers-reduced-motion:reduce){.ttt-btn{transition:none}}*,*:before,*:after{box-sizing:border-box}:root{color-scheme:only light}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#8fd3f4;color:var(--ttt-ink);font-family:var(--ttt-font-body);font-size:16px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-webkit-user-select:none;user-select:none}input,textarea,button,select{font:inherit;color:inherit}input,textarea{-webkit-user-select:text;user-select:text}.nameplates{position:absolute;inset:0;pointer-events:none}.plate{position:absolute;left:0;top:0;white-space:nowrap;transform-origin:50% 100%;will-change:transform;font-family:var(--ttt-font-display);font-weight:600;font-size:18px;letter-spacing:.02em;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.55)}.ret{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none;opacity:0;transition:opacity .14s ease-out}.ret.on{opacity:1}.ret-dot{position:absolute;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:#fffffff5;box-shadow:0 0 0 1px #0009;transition:background .1s}.ret-ring{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;border:2px solid rgba(255,255,255,.55);box-shadow:0 0 0 1px #00000073,inset 0 0 0 1px #00000059;transition:transform .12s ease-out,border-color .1s}.ret-tick{position:absolute;width:2px;height:6px;margin:-3px 0 0 -1px;background:#fffc;box-shadow:0 0 0 1px #00000073;transition:transform .12s ease-out,background .1s}.ret-tick.t1{transform:translateY(-19px)}.ret-tick.t2{transform:rotate(90deg) translateY(-19px)}.ret-tick.t3{transform:rotate(180deg) translateY(-19px)}.ret-tick.t4{transform:rotate(270deg) translateY(-19px)}.ret.foe .ret-ring{transform:scale(.76);border-color:var(--ttt-coral)}.ret.foe .ret-dot,.ret.foe .ret-tick{background:var(--ttt-coral)}.ret.foe .ret-tick.t1{transform:translateY(-15px)}.ret.foe .ret-tick.t2{transform:rotate(90deg) translateY(-15px)}.ret.foe .ret-tick.t3{transform:rotate(180deg) translateY(-15px)}.ret.foe .ret-tick.t4{transform:rotate(270deg) translateY(-15px)}body.ttt-decorating ttt-town-hud .hint{display:none}body.ttt-decorating ttt-chat .chat{bottom:134px}
