:root{--bg: #dbe7f3;--bg-paper: #ffffff;--bg-note: #fff9c4;--fg: #2d2d2d;--muted: #e5e0d8;--accent: #ff4d4d;--accent-2: #2d5da1;--border: #2d2d2d;--success: #2f7f3f;--warning: #c16d2a;--danger: #cc3d3d;--focus-ring: rgba(45, 93, 161, .25);--control-bg: #ffffff;--control-bg-hover: #f6f2eb;--control-border: #2d2d2d;--button-primary-hover: #ff4d4d;--button-primary-active: #e53d3d;--button-secondary-hover: #2d5da1;--button-secondary-active: #254d86;--disabled-opacity: .48;--motion-fast: .1s;--motion-base: .15s;--motion-slow: .28s;--ease-standard: cubic-bezier(.2, .7, .2, 1);--font-heading: "Kalam", "Patrick Hand", cursive;--font-body: "Patrick Hand", "Segoe UI", sans-serif;--line-tight: 1.08;--line-base: 1.38;--line-loose: 1.5;--text-xs: 13px;--text-sm: 16px;--text-base: 22px;--text-lg: 30px;--text-xl: 42px;--text-2xl: clamp(46px, 7vw, 84px);--radius-xs: 255px 15px 225px 15px / 15px 225px 15px 255px;--radius-sm: 225px 25px 215px 20px / 22px 205px 18px 210px;--radius-md: 225px 18px 255px 20px / 25px 240px 24px 235px;--radius-lg: 255px 20px 225px 25px / 22px 220px 18px 235px;--shadow-sm: 3px 3px 0 0 var(--border);--shadow-md: 4px 4px 0 0 var(--border);--shadow-lg: 8px 8px 0 0 var(--border);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{min-height:100dvh;margin:0;font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-base);background-color:var(--bg);background-image:radial-gradient(var(--muted) 1px,transparent 1px),linear-gradient(180deg,#fff9,#fdfbf7f5);background-size:24px 24px,100% 100%;color:var(--fg);text-rendering:optimizeLegibility}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-family:var(--font-heading);letter-spacing:.01em}h1{font-size:var(--text-2xl);line-height:var(--line-tight)}h2{font-size:clamp(42px,5vw,62px);line-height:var(--line-tight)}h3{font-size:var(--text-lg);line-height:1.15}h4{font-size:var(--text-sm);line-height:1.2}strong{color:var(--fg);font-weight:700}small{font-size:var(--text-sm)}code{background:var(--bg-paper);border:2px dashed var(--border);border-radius:var(--radius-xs);padding:1px 8px;font-family:var(--font-body)}button,input,select,textarea{font:inherit}input:not([type=checkbox]),select,textarea{width:100%;min-height:50px;padding:10px 14px;border:2px solid var(--control-border);border-radius:var(--radius-sm);background:var(--control-bg);color:var(--fg);box-shadow:2px 2px 0 0 var(--border);transition:background-color var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}input:not([type=checkbox]):hover,select:hover,textarea:hover{background:var(--control-bg-hover)}input:not([type=checkbox]):focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent-2);box-shadow:2px 2px 0 0 var(--border),0 0 0 4px var(--focus-ring)}button{min-height:50px;border:3px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-paper);color:var(--fg);padding:10px 16px;font-family:var(--font-body);font-weight:700;cursor:pointer;box-shadow:var(--shadow-md);transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}button:not(:disabled):hover{background:var(--button-primary-hover);color:#fff;box-shadow:2px 2px 0 0 var(--border);transform:translate(2px,2px) rotate(.25deg)}button:not(:disabled):active{background:var(--button-primary-active);box-shadow:0 0 0 0 var(--border);transform:translate(4px,4px)}button:focus-visible{outline:none;box-shadow:var(--shadow-sm),0 0 0 4px var(--focus-ring)}button:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.button-link{min-height:50px;border:3px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-paper);color:var(--fg);padding:10px 16px;font-weight:700;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.button-link:hover{background:var(--button-primary-hover);color:#fff;box-shadow:2px 2px 0 0 var(--border);transform:translate(2px,2px) rotate(.25deg)}.button-link:active{background:var(--button-primary-active);box-shadow:0 0 0 0 var(--border);transform:translate(4px,4px)}.button-link:focus-visible{outline:none;box-shadow:var(--shadow-sm),0 0 0 4px var(--focus-ring)}.secondary{background:var(--muted);color:var(--fg)}.secondary:not(:disabled):hover{background:var(--button-secondary-hover);color:#fff}.secondary:not(:disabled):active{background:var(--button-secondary-active)}.tertiary-button{border:none;box-shadow:none;min-height:auto;background:transparent;color:var(--accent-2);text-decoration:underline;padding:4px 2px}.tertiary-button:not(:disabled):hover{background:transparent;color:var(--accent);transform:rotate(-1deg)}.danger{background:var(--accent);color:#fff}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-2)}:focus-visible{scroll-margin:14px}@supports not (height: 100dvh){body{min-height:100vh}}:root[data-motion=reduced] *,:root[data-motion=reduced] *:before,:root[data-motion=reduced] *:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}@media(max-width:720px){button{width:100%}}.app-shell{box-sizing:border-box;min-height:100dvh;max-width:1380px;margin:0 auto;padding:calc(22px + var(--safe-top)) calc(20px + var(--safe-right)) calc(30px + var(--safe-bottom)) calc(20px + var(--safe-left))}.page{display:flex;flex-direction:column;gap:20px}.card,.panel{background:var(--bg-paper);border:3px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:relative}.card{padding:24px}.panel{padding:18px}.card:nth-child(odd),.panel:nth-child(odd){transform:rotate(-.35deg)}.card:nth-child(2n),.panel:nth-child(2n){transform:rotate(.25deg)}.panel-section{display:flex;flex-direction:column;gap:10px;padding:14px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:#fffefb}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--fg);font-size:14px;font-weight:700;font-family:var(--font-heading)}.muted{color:color-mix(in srgb,var(--fg) 70%,transparent)}.hint{color:color-mix(in srgb,var(--fg) 70%,transparent);margin-top:6px;font-size:var(--text-sm)}.actions{display:flex;gap:10px;flex-wrap:wrap}.input-row{display:flex;align-items:center;gap:10px}.pill-row{display:flex;flex-wrap:wrap;gap:10px}.pill{display:inline-flex;align-items:center;gap:4px;padding:5px 12px;border:2px solid var(--border);border-radius:var(--radius-xs);background:var(--bg-paper);color:var(--fg);font-size:15px;font-weight:700;box-shadow:2px 2px 0 0 var(--border)}.pill-green{background:#d6f0d4}.pill-yellow{background:#ffe5b4}.pill-orange{background:#ffd3a6}.pill-red{background:#ffc9c9}.pill-gray{background:var(--muted)}.text-green{color:var(--success)}.text-orange{color:var(--warning)}.status-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.stack,.form-control{display:flex;flex-direction:column;gap:8px}.toggle-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--text-sm);line-height:1.35}.toggle-row input{margin-top:3px;flex:0 0 auto}.link-button{min-height:auto;border:none;box-shadow:none;background:none;color:var(--accent-2);text-decoration:underline;padding:0}.link-button:not(:disabled):hover{background:none;color:var(--accent);transform:rotate(-1deg)}.state-card{display:flex;flex-direction:column;gap:12px}.state-title{font-size:clamp(32px,5vw,48px)}.state-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.state-skeleton-block{border:2px dashed var(--border);border-radius:var(--radius-sm);background:#fffefb;min-height:120px;padding:12px;display:flex;flex-direction:column;gap:10px}.state-skeleton-line{height:12px;border-radius:var(--radius-xs);background:linear-gradient(90deg,color-mix(in srgb,var(--muted) 50%,white),#fff,color-mix(in srgb,var(--muted) 50%,white));background-size:180% 100%;animation:skeleton-wave 1.2s linear infinite}.state-skeleton-line.wide{width:85%}.state-skeleton-line.mid{width:60%}.state-skeleton-line.narrow{width:40%}@keyframes skeleton-wave{0%{background-position:0 0}to{background-position:180% 0}}@supports not (height: 100dvh){.app-shell{min-height:100vh}}@media(max-width:900px){.app-shell{padding:calc(16px + var(--safe-top)) calc(12px + var(--safe-right)) calc(20px + var(--safe-bottom)) calc(12px + var(--safe-left))}}@media(max-width:720px){.input-row{flex-direction:column;align-items:stretch}}.home-page{gap:12px;align-items:center}.home-topbar{width:min(980px,100%);padding:10px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;transform:rotate(-.18deg)}.topbar-brand{min-width:0;display:flex;align-items:center;gap:10px}.topbar-logo{width:88px;max-height:88px;object-fit:contain;border:2px solid var(--border);border-radius:var(--radius-sm);box-shadow:2px 2px 0 0 var(--border);background:#fffefb;padding:2px}.topbar-brand-text{display:flex;flex-direction:column;gap:2px}.topbar-brand-text .eyebrow{font-size:13px}.topbar-brand-text strong{font-family:var(--font-heading);font-size:34px;line-height:1}.topbar-settings-button{min-height:44px;min-width:170px}.topbar-profile-button{min-height:44px;min-width:150px}.home-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.topbar-account-button{min-height:44px;min-width:220px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding-block:8px;transform:rotate(-.35deg)}.topbar-account-button strong{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-account-kicker{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#2d2a23bd}.topbar-account-signed-in{background:linear-gradient(180deg,#edf5d8,#dde7bd);border-color:#54633c;color:#233114}.topbar-account-signed-in:hover{background:linear-gradient(180deg,#e7f0d0,#d7e3af);color:#233114}.topbar-account-disabled{opacity:.62}.home-lobby-card{width:min(980px,100%);padding:16px 18px;display:flex;flex-direction:column;gap:12px;background:#fbf7ee;transform:rotate(.15deg);box-shadow:0 6px #2f2a23}.resume-room-card{display:flex;flex-direction:column;gap:10px;padding:12px;border:3px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-note);box-shadow:var(--shadow-sm);transform:rotate(-.2deg)}.resume-room-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 10px}.resume-room-head .eyebrow{font-size:13px}.room-code-badge{display:inline-flex;align-items:center;width:fit-content;border:2px solid var(--border);border-radius:var(--radius-xs);background:#fff;box-shadow:2px 2px 0 0 var(--border);padding:4px 10px;color:var(--fg);line-height:1.1;letter-spacing:.1em;font-family:JetBrains Mono,SFMono-Regular,Menlo,Monaco,Consolas,monospace;transform:translateY(0) scale(1) rotate(-.2deg);animation:room-code-token-place 1.06s cubic-bezier(.1,6,0,5) .12s both;transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard);will-change:transform,box-shadow,opacity}.room-code-badge:hover{transform:translateY(-1px) scale(1) rotate(-.2deg);box-shadow:3px 4px 0 0 var(--border)}.room-code-badge:active{transform:translateY(2px) scale(1) rotate(-.12deg);box-shadow:1px 1px 0 0 var(--border)}.resume-room-code{font-size:22px;letter-spacing:.12em}.resume-room-actions{display:flex;flex-wrap:wrap;gap:8px}.resume-room-actions button{min-height:44px}.resume-room-actions .danger{border-style:dashed}.account-modal{width:min(620px,100%);background:radial-gradient(circle at top right,rgba(214,168,79,.2),transparent 38%),linear-gradient(180deg,#f8f2e4,#f3ebdc)}.account-modal-header{align-items:center}.account-stack{display:flex;flex-direction:column;gap:12px}.account-status-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fffdf8;box-shadow:2px 2px 0 0 var(--border)}.account-status-strip[data-state=signed-in]{background:linear-gradient(180deg,#ebf4d6eb,#dfeac1eb),#fffdf8}.account-status-eyebrow{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#2d2a23ad}.account-status-strip strong{display:block;font-size:22px;line-height:1.05}.account-status-chip{flex:0 0 auto;border:2px dashed var(--border);border-radius:999px;padding:5px 10px;background:#ffffffd6;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.account-message-card{border:2px solid var(--border);border-radius:var(--radius-sm);background:#fffffff2;box-shadow:2px 2px 0 0 var(--border);padding:12px;display:flex;flex-direction:column;gap:4px}.account-ledger-card{transform:rotate(-.25deg)}.account-field{display:flex;flex-direction:column;gap:6px}.account-field span{font-weight:700}.account-field input{min-height:46px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;color:var(--fg);background:#fff;box-shadow:2px 2px 0 0 var(--border)}.account-field input:focus{outline:3px solid rgba(214,168,79,.34);outline-offset:2px}.account-modal-footer{align-items:center}.account-inline-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.account-history-list{display:flex;flex-direction:column;gap:10px;margin:4px 0 0;padding:0;list-style:none}.account-history-entry{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:10px;border-top:1px dashed rgba(45,42,35,.24)}.account-history-entry:first-child{padding-top:0;border-top:0}.account-history-entry strong{display:block}.account-history-stat{flex:0 0 auto;font-weight:700;white-space:nowrap}.account-feedback{border-radius:var(--radius-sm);border:2px solid var(--border);background:#fff8d5;box-shadow:2px 2px 0 0 var(--border);padding:10px 12px;font-weight:600}.lobby-tab-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:6px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:#fffefb}.lobby-tab-button{min-height:44px;font-size:22px;background:#e7dfd1;box-shadow:2px 2px 0 0 var(--border)}.lobby-tab-button:not(.active):hover{background:#ded6c7;color:var(--fg)}.lobby-tab-button.active,.lobby-tab-button.active:hover{background:#fbf7ee;border-color:var(--border);border-bottom-color:transparent;color:var(--fg);box-shadow:2px 2px 0 0 var(--border);transform:none}.lobby-tab-panel{min-height:220px;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-sm);padding:12px 14px}.lobby-panel-content{height:100%;display:flex;flex-direction:column;justify-content:space-between;gap:12px}.lobby-panel-heading{display:flex;flex-direction:column;gap:3px}.lobby-panel-heading h2{font-size:clamp(38px,4vw,54px);line-height:1.02}.host-actions-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.host-actions-row button{min-height:46px}.host-actions-row .home-primary-action{background:#d6a84f;color:#3a2a12;box-shadow:5px 5px #2f2a23}.host-actions-row .home-primary-action:hover{background:#c99634;color:#3a2a12}.host-actions-row .home-primary-action:active{background:#c99634}.host-actions-row .secondary{background:#e8e1d4}.host-actions-row .secondary:hover{background:#ddd3c0;color:var(--fg)}.host-actions-row .tertiary-button{width:auto;min-height:auto;margin-left:4px;color:#2e6f8e}.host-actions-row .tertiary-button:hover{color:#1f5c78}.join-room-form{display:flex;flex-direction:column;gap:8px}.join-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}.join-code-input{font-family:JetBrains Mono,SFMono-Regular,Menlo,Monaco,Consolas,monospace;letter-spacing:.16em;font-weight:700;text-transform:uppercase}.join-submit-button{min-width:148px}.share-room-prefix{margin-right:4px}.share-room-code-badge{font-size:15px;padding:2px 8px;vertical-align:middle}.home-status-line{min-height:20px}@keyframes room-code-token-place{0%{opacity:0;transform:translateY(10px) scale(.98) rotate(-.6deg)}70%{opacity:1;transform:translateY(-1px) scale(1) rotate(-.28deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(-.2deg)}}@keyframes room-code-token-fade{0%{opacity:0}to{opacity:1}}:root[data-motion=reduced] .room-code-badge{animation:room-code-token-fade .18s ease-out both;transform:none}:root[data-motion=reduced] .room-code-badge:hover,:root[data-motion=reduced] .room-code-badge:active{transform:none;box-shadow:2px 2px 0 0 var(--border)}@media(prefers-reduced-motion:reduce){.room-code-badge{animation:room-code-token-fade .18s ease-out both;transform:none}.room-code-badge:hover,.room-code-badge:active{transform:none;box-shadow:2px 2px 0 0 var(--border)}}@media(max-width:900px){.home-topbar,.home-lobby-card{width:min(100%,900px)}.topbar-logo{width:76px;max-height:76px}.topbar-brand-text strong{font-size:30px}}@media(max-width:720px){.home-page{gap:10px}.home-topbar{flex-direction:column;align-items:stretch}.topbar-brand,.home-topbar-actions,.topbar-account-button,.topbar-settings-button{width:100%}.resume-room-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resume-room-actions .danger{grid-column:1 / -1}.lobby-tab-panel{min-height:210px}.host-actions-row{display:grid;grid-template-columns:1fr}.host-actions-row .tertiary-button{width:100%;margin-left:0}.join-input-row{grid-template-columns:1fr}.join-submit-button{min-width:0}.account-status-strip,.account-inline-actions,.account-modal-footer{flex-direction:column;align-items:flex-start}.account-status-chip{align-self:flex-start}}.profile-page{width:min(1120px,100%);gap:14px;align-items:stretch}.profile-topbar{width:100%;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:linear-gradient(180deg,#fffcf6fa,#f5eddcfa),#fffefb;transform:rotate(-.12deg)}.profile-topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.profile-topbar-actions .button-link,.profile-topbar-actions button{min-height:44px}.profile-feedback{width:100%;border-radius:var(--radius-sm);border:2px solid var(--border);background:#fff8d5;box-shadow:2px 2px 0 0 var(--border);padding:10px 12px;font-weight:700}.profile-hero-card{width:100%;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.9fr);gap:14px;padding:18px;background:radial-gradient(circle at top right,rgba(45,93,161,.2),transparent 32%),radial-gradient(circle at 14% 18%,rgba(214,168,79,.26),transparent 26%),linear-gradient(180deg,#fff8ea,#f3ead6);box-shadow:0 8px #2f2a23;position:relative;overflow:hidden}.profile-hero-card:after{content:"";position:absolute;inset:12px;border:2px dashed rgba(45,42,35,.18);border-radius:var(--radius-md);pointer-events:none}.profile-hero-copy,.profile-hero-meta{position:relative;z-index:1}.profile-hero-copy{display:flex;flex-direction:column;gap:8px}.profile-hero-copy h1{font-size:clamp(52px,7vw,88px);line-height:.92;margin:0}.profile-name-field{display:flex;flex-direction:column;gap:6px}.profile-name-field input{min-height:60px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font:inherit;font-size:clamp(34px,5vw,54px);line-height:1;color:var(--fg);background:#fffffff2;box-shadow:2px 2px 0 0 var(--border)}.profile-name-field input:focus,.profile-meta-chip select:focus{outline:3px solid rgba(214,168,79,.34);outline-offset:2px}.profile-hero-blurb{max-width:16ch;font-size:28px;line-height:1.08;margin:0}.profile-hero-meta{display:grid;gap:10px;align-content:center}.profile-meta-chip{border:2px solid var(--border);border-radius:var(--radius-sm);background:#ffffffeb;box-shadow:2px 2px 0 0 var(--border);padding:12px;display:flex;flex-direction:column;gap:4px;transform:rotate(-.22deg)}.profile-meta-chip:nth-child(2){transform:rotate(.18deg)}.profile-meta-chip:nth-child(3){transform:rotate(-.08deg)}.profile-meta-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#2d2a23a3}.profile-meta-chip strong{font-size:26px;line-height:1.02}.profile-meta-chip-editable{gap:8px}.profile-meta-chip select{min-height:46px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;color:var(--fg);background:#fffffff5;box-shadow:2px 2px 0 0 var(--border)}.profile-meta-chip-color{padding-right:56px;position:relative}.profile-color-swatch{position:absolute;right:14px;top:50%;width:28px;height:28px;border-radius:999px;border:2px solid var(--border);background:var(--profile-color, #6c757d);transform:translateY(-50%);box-shadow:2px 2px 0 0 var(--border)}.profile-dashboard-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.9fr);gap:14px}.profile-analytics-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.95fr);gap:14px}.profile-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.profile-stat-card{padding:14px;background:#fffffff5;display:flex;flex-direction:column;gap:6px}.profile-stat-card strong{font-size:clamp(36px,5vw,56px);line-height:.95}.profile-stat-highlight{background:linear-gradient(180deg,#edf5d8f2,#dde7bdf2),#fff}.profile-form-card{padding:14px;background:linear-gradient(180deg,#f7f4edfa,#ede5d6fa),#fff;display:flex;flex-direction:column;gap:12px;transform:rotate(.18deg)}.profile-side-column{display:flex;flex-direction:column;gap:12px}.profile-form-header{display:flex;flex-direction:column;gap:2px}.profile-form-strip{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}.profile-form-pill{border:2px solid var(--border);border-radius:999px;padding:6px 12px;background:#fff;box-shadow:2px 2px 0 0 var(--border);font-weight:700;font-size:17px}.profile-form-pill[data-tone=win]{background:#e6f3d8}.profile-form-pill[data-tone=loss]{background:#f7e0d8}.profile-form-pill[data-tone=abandoned]{background:#f5e0a9}.profile-form-pill[data-tone=in-progress]{background:#dde7f5}.profile-form-note{margin-top:auto}.profile-breakdown-card{padding:14px;background:linear-gradient(180deg,#eef5fcfa,#dce8f5fa),#fff;display:flex;flex-direction:column;gap:12px;transform:rotate(-.12deg)}.profile-breakdown-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-breakdown-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffd9}.profile-chart-card,.profile-opponents-card{width:100%;padding:16px;display:flex;flex-direction:column;gap:14px}.profile-chart-card{background:radial-gradient(circle at top left,rgba(214,168,79,.2),transparent 26%),linear-gradient(180deg,#fffbf3fa,#f0e7d8fa),#fff}.profile-opponents-card{background:radial-gradient(circle at top right,rgba(45,93,161,.18),transparent 30%),linear-gradient(180deg,#f8fafffa,#e7eef8fa),#fff}.profile-chart-summary{display:flex;flex-wrap:wrap;gap:8px}.profile-chart-shell{border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:linear-gradient(180deg,#ffffffeb,#faf5eceb),#fff;padding:10px}.profile-chart{width:100%;height:auto;display:block}.profile-chart-grid{stroke:#2d2a2329;stroke-width:2;stroke-dasharray:6 8}.profile-chart-line{stroke:#2d5da1;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.profile-chart-dot{stroke:var(--border);stroke-width:2;fill:#fff}.profile-chart-dot[data-tone=win]{fill:#96c766}.profile-chart-dot[data-tone=loss]{fill:#e18872}.profile-chart-dot[data-tone=abandoned]{fill:#d6a84f}.profile-chart-dot[data-tone=in-progress]{fill:#88a8d9}.profile-chart-footnotes{display:flex;flex-wrap:wrap;gap:8px}.profile-chart-footnote{border:2px solid rgba(45,42,35,.16);border-radius:999px;background:#fffc;padding:6px 10px;display:inline-flex;align-items:center;gap:8px;font-size:14px}.profile-opponent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-opponent-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffdb}.profile-opponent-copy{min-width:0;display:flex;flex-direction:column;gap:4px}.profile-opponent-copy strong{font-size:22px;line-height:1}.profile-opponent-metrics{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.profile-history-card,.profile-guest-card{width:100%;padding:16px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,#fffefafa,#f7f0e4fa),#fff}.profile-guest-card{align-items:flex-start}.profile-guest-copy{display:flex;flex-direction:column;gap:8px;max-width:24rem}.profile-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-section-heading h2{margin:0;font-size:clamp(36px,5vw,52px);line-height:1}.profile-history-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-history-toolbar-copy{display:flex;flex-direction:column;gap:10px;min-width:min(100%,540px)}.profile-history-filters{display:flex;flex-wrap:wrap;gap:8px}.profile-history-advanced-filters{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}.profile-history-search,.profile-history-select{display:flex;flex-direction:column;gap:6px}.profile-history-search input,.profile-history-select select{min-height:44px;border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font:inherit;color:var(--fg);background:#fffffff2;box-shadow:2px 2px 0 0 var(--border)}.profile-history-search input{min-width:220px}.profile-filter-chip{min-height:48px;border:2px solid var(--border);border-radius:999px;background:#ffffffeb;box-shadow:2px 2px 0 0 var(--border);padding:8px 12px;display:inline-flex;align-items:center;gap:10px;font:inherit;color:var(--fg)}.profile-filter-chip strong{display:inline-flex;min-width:28px;min-height:28px;align-items:center;justify-content:center;border-radius:999px;background:#2d2a2314;padding:0 8px;font-size:14px}.profile-filter-chip[data-active=true]{background:#2d5da1;color:#fffdf9;transform:translate(-1px,-1px)}.profile-filter-chip[data-active=true] strong{background:#ffffff2e}.profile-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-history-entry{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffd6}.profile-history-entry:nth-child(odd){transform:rotate(-.12deg)}.profile-history-entry:nth-child(2n){transform:rotate(.1deg)}.profile-history-entry-main{min-width:0;display:flex;flex-direction:column;gap:4px}.profile-history-stamp{display:flex;align-items:center;gap:12px;min-width:0}.profile-history-color{width:14px;height:52px;border-radius:999px;border:2px solid var(--border);background:var(--profile-color, #6c757d);box-shadow:2px 2px 0 0 var(--border);flex:0 0 auto}.profile-history-stamp strong{display:block}.profile-history-detail{padding-left:28px}.profile-history-metrics{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.profile-history-badge{border:2px dashed var(--border);border-radius:999px;padding:5px 10px;background:#ffffffe0;font-weight:700;white-space:nowrap}.profile-history-badge[data-tone=win]{background:#e6f3d8}.profile-history-badge[data-tone=loss]{background:#f7e0d8}.profile-history-badge[data-tone=abandoned]{background:#f5e0a9}.profile-history-badge[data-tone=in-progress]{background:#dde7f5}.profile-empty-history{border:2px dashed rgba(45,42,35,.24);border-radius:var(--radius-sm);padding:16px;background:#ffffffa6}.profile-history-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.profile-history-pager{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.profile-history-link{min-height:40px}.leaderboard-page,.public-player-page,.profile-opponent-page{width:min(1120px,100%)}.leaderboard-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.leaderboard-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffd6}.leaderboard-row:nth-child(odd){transform:rotate(-.08deg)}.leaderboard-row:nth-child(2n){transform:rotate(.08deg)}.leaderboard-rank{width:72px;min-height:72px;border:2px solid var(--border);border-radius:24px;display:inline-flex;align-items:center;justify-content:center;font-size:28px;font-weight:700;background:radial-gradient(circle at top,rgba(214,168,79,.25),transparent 55%),#ffffffeb;box-shadow:2px 2px 0 0 var(--border)}.leaderboard-copy{min-width:0;display:flex;flex-direction:column;gap:8px}.leaderboard-badges{display:flex;flex-wrap:wrap;gap:8px}.leaderboard-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.leaderboard-dashboard-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.8fr);gap:14px}.leaderboard-filter-card{display:flex;flex-direction:column;gap:14px}.leaderboard-window-tabs{display:flex;flex-wrap:wrap;gap:8px}.leaderboard-filter-toolbar{width:100%}.leaderboard-rank-card{min-height:100%;justify-content:center}.leaderboard-rank-badges{display:flex;flex-wrap:wrap;gap:8px}.public-player-strip{gap:10px}.profile-match-page{width:min(1120px,100%)}.profile-match-hero{width:100%;padding:18px;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr);gap:14px;background:radial-gradient(circle at top right,rgba(45,93,161,.18),transparent 32%),radial-gradient(circle at 12% 18%,rgba(108,164,121,.22),transparent 26%),linear-gradient(180deg,#fff8eb,#efe3cb)}.profile-match-hero-copy{display:flex;flex-direction:column;gap:10px}.profile-match-hero-copy h1{font-size:clamp(58px,8vw,96px);line-height:.9;margin:0}.profile-match-badge-row{display:flex;flex-wrap:wrap;gap:8px}.profile-match-grid{width:100%;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.95fr);gap:14px}.profile-match-roster-card{padding:16px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,#fffefafa,#f7f0e4fa),#fff}.profile-match-side-column{display:flex;flex-direction:column;gap:12px}.profile-roster-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-roster-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffd6}.profile-roster-row:nth-child(odd){transform:rotate(-.1deg)}.profile-roster-row:nth-child(2n){transform:rotate(.12deg)}.profile-roster-copy{min-width:0;display:flex;flex-direction:column;gap:8px}.profile-roster-score{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.profile-roster-score strong{font-size:28px;line-height:1}.profile-roster-rank{font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2d2a23a8}.profile-match-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.profile-match-fact{border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffdb;padding:12px;display:flex;flex-direction:column;gap:4px}.profile-match-fact strong{font-size:22px;line-height:1.04}.profile-option-list{display:flex;flex-direction:column;gap:8px;margin:0}.profile-option-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;border:2px solid rgba(45,42,35,.18);border-radius:var(--radius-sm);background:#ffffffdb;padding:10px 12px}.profile-option-row dt{margin:0;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#2d2a239e}.profile-option-row dd{margin:0;font-weight:700;text-align:right}.profile-loading-card{min-height:320px}.profile-loading-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}@media(max-width:960px){.profile-hero-card,.profile-dashboard-grid,.leaderboard-dashboard-grid,.profile-analytics-grid,.profile-match-hero,.profile-match-grid{grid-template-columns:minmax(0,1fr)}.profile-hero-copy h1,.profile-match-hero-copy h1{font-size:clamp(48px,12vw,72px)}}@media(max-width:720px){.profile-topbar,.profile-section-heading,.profile-history-entry,.profile-opponent-row,.profile-roster-row,.leaderboard-row{flex-direction:column;align-items:flex-start}.profile-stat-grid,.profile-match-facts,.profile-loading-grid{grid-template-columns:minmax(0,1fr)}.profile-breakdown-row,.profile-history-detail{padding-left:0}.profile-history-metrics,.profile-topbar-actions,.profile-history-pager,.profile-opponent-metrics,.profile-roster-score{width:100%;justify-content:flex-start;align-items:flex-start}.profile-breakdown-row,.profile-history-toolbar,.profile-history-footer,.leaderboard-window-tabs{flex-direction:column;align-items:flex-start}.profile-history-toolbar-copy,.profile-history-advanced-filters,.leaderboard-actions,.leaderboard-badges{width:100%}.leaderboard-row{display:flex}.profile-option-row{grid-template-columns:minmax(0,1fr)}.profile-option-row dd{text-align:left}}.room-page-lobby{padding-bottom:96px}.lobby-three-column{display:grid;grid-template-columns:minmax(250px,300px) minmax(0,1fr) minmax(290px,360px);gap:16px;align-items:start}.lobby-shell-skeleton{margin-top:-2px}.lobby-players-panel,.lobby-settings-panel{min-height:0;display:flex;flex-direction:column;gap:12px;background:#fbf7ee;border:3px solid var(--border);border-radius:var(--radius-md);box-shadow:0 6px #2f2a23}.lobby-players-panel{transform:rotate(-.45deg)}.lobby-settings-panel{transform:rotate(.2deg)}.lobby-chat-panel{min-height:0;padding:0;border:none;box-shadow:none;background:transparent}.lobby-column-header{display:flex;flex-direction:column;gap:5px}.lobby-column-header h2{display:inline-flex;align-items:center;gap:10px}.lobby-players-panel .lobby-column-header h2:before,.lobby-settings-panel .lobby-column-header h2:before{content:"";width:30px;height:30px;border-radius:var(--radius-sm);border:2px solid var(--border);background-color:#fff;background-position:center;background-repeat:no-repeat;background-size:18px 18px;box-shadow:2px 2px 0 0 var(--border)}.lobby-players-panel .lobby-column-header h2:before{background-image:url(/assets/buildings/building-settlement.png)}.lobby-settings-panel .lobby-column-header h2:before{background-image:url(/assets/pieces/piece-army.png)}.lobby-settings-panel .lobby-column-header{padding-bottom:8px;border-bottom:2px dashed var(--border)}.lobby-status-block{gap:8px;background:var(--bg-note);border:2px solid var(--border);border-radius:var(--radius-sm);box-shadow:2px 2px 0 0 var(--border)}.lobby-roster-block{display:flex;flex-direction:column;gap:8px}.lobby-settings-index{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px;margin-bottom:2px}.lobby-settings-index-item{display:inline-flex;align-items:center;gap:6px;border:2px solid var(--border);border-radius:var(--radius-xs);background:#e7dfd1;color:var(--fg);font-size:15px;font-weight:700;padding:4px 10px;box-shadow:0 3px #3a2a12;text-decoration:none;transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.lobby-settings-index-item:hover{background:#ded6c7;color:var(--fg)}.lobby-settings-index-item.active{background:#fbf7ee;border-bottom-color:transparent}.lobby-settings-index-icon{font-size:14px;line-height:1}.lobby-settings-stack{display:flex;flex-direction:column;gap:14px}.lobby-settings-group{display:flex;flex-direction:column;gap:10px}.lobby-settings-group+.lobby-settings-group{padding-top:14px;border-top:2px dashed var(--border)}.lobby-settings-group-header{display:flex;flex-direction:column;gap:4px}.lobby-settings-group-header h3{display:inline-flex;align-items:center;gap:8px;font-size:36px}.lobby-settings-group-icon{width:32px;height:32px;border-radius:var(--radius-xs);border:2px solid var(--border);background:#fff7e8;font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px #3a2a12}.lobby-quick-actions{gap:12px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;border:3px solid var(--border);border-radius:var(--radius-md);box-shadow:0 4px #2f2a23;background:#fbf7ee}.lobby-quick-actions-grid{display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-quick-actions-block{display:flex;flex-direction:column;gap:8px}.lobby-draft-row{display:flex;flex-direction:column;gap:8px;border:2px dashed #d6a84f;border-radius:var(--radius-sm);background:#fff4d6;padding:12px}.lobby-draft-row.pending{box-shadow:0 3px #d6a84f}.lobby-draft-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lobby-dirty-indicator{font-size:var(--text-sm);color:var(--warning);font-weight:700}.lobby-quick-actions.dirty{border-color:#d6a84f;box-shadow:0 5px #d6a84f}.action-disabled-reason{margin-top:2px}.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.section-card{border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:150px;box-shadow:var(--shadow-sm)}.section-card:nth-child(odd){transform:rotate(-.3deg)}.section-card:nth-child(2n){transform:rotate(.2deg)}.section-card h3{font-size:28px}.section-empty{display:flex;flex-direction:column;gap:6px}.resource-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.resource-option-row{display:flex;align-items:center;justify-content:space-between;gap:8px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:#fff;padding:7px 8px}.resource-option-row select{width:76px;min-height:38px;padding:6px 8px}.players{display:flex;flex-direction:column;gap:8px}.player{display:flex;align-items:center;justify-content:space-between;gap:10px;border-radius:var(--radius-sm);border:2px solid var(--border);background:#fbf7ee;padding:12px 13px;box-shadow:0 3px #3a2a12}.player-ready{border-color:#8cbf84}.player-clickable{cursor:pointer}.player-clickable:hover{border-color:#3a2a12}.player-token-row{align-items:flex-start;transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.player-token-row:nth-child(odd){transform:rotate(-.25deg)}.player-token-row:nth-child(2n){transform:rotate(.18deg)}.player-token-row:hover{background:#f2ebdd;transform:translateY(-1px);box-shadow:0 4px #3a2a12}.player-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.player-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.player-name{font-size:31px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-pill-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.player-pill-host,.player-pill-ready{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-xs);border:2px solid #3a2a12;font-size:13px;font-weight:700;line-height:1}.player-pill-host{background:#e7f4e4;color:#2e7d32}.player-pill-ready{background:#e7f4e4;color:#1b5e20}.player-subline{color:color-mix(in srgb,var(--fg) 72%,transparent);font-size:14px}.player-online{color:#2e7d32;font-weight:700}.player-offline{color:#925f2c}.player-token{width:42px;height:42px;flex:0 0 42px;border-radius:999px;border:2px solid #3a2a12;background:#d6a84f;color:#3a2a12;font-weight:800;font-size:18px;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 3px #3a2a12;transform:rotate(-.35deg);transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}.player-token-row:nth-child(2n) .player-token{transform:rotate(.45deg)}.player-token-row:hover .player-token{transform:translateY(-1px) rotate(-.15deg);box-shadow:0 4px #3a2a12}.player-meta{display:flex;align-items:flex-start;gap:8px}.player-traits{margin-top:4px;font-size:14px;color:color-mix(in srgb,var(--fg) 75%,transparent)}.player-remove-button{width:30px;height:30px;min-height:30px;border-radius:var(--radius-xs);background:#ffd9d9;color:var(--fg);border:2px solid var(--border);box-shadow:2px 2px 0 0 var(--border);padding:0}.player-remove-button:hover{background:var(--accent)}.room-action-button{min-height:46px;border-color:#3a2a12;color:#3a2a12;box-shadow:0 3px #3a2a12}.room-action-button:not(:disabled):hover{box-shadow:0 4px #3a2a12;transform:translateY(-1px)}.room-action-button:not(:disabled):active{transform:translateY(2px);box-shadow:0 1px #3a2a12}.room-action-start{background:#d6a84f;color:#3a2a12}.room-action-start:not(:disabled):hover,.room-action-start:not(:disabled):active{background:#c99634;color:#3a2a12}.room-action-secondary{background:#e8e1d4}.room-action-secondary:not(:disabled):hover,.room-action-secondary:not(:disabled):active{background:#ddd3c0;color:#3a2a12}.room-action-danger{background:#e6c4c4;color:#5a1f1f}.room-action-danger:not(:disabled):hover,.room-action-danger:not(:disabled):active{background:#d9a8a8;color:#5a1f1f}.settings-apply-button,.settings-reset-button{min-height:44px}.settings-apply-button{border-color:#1f5a2c;box-shadow:0 3px #1f5a2c;color:#f7fbf4}.settings-reset-button{border-color:#3a2a12;box-shadow:0 3px #3a2a12;color:#3a2a12}.settings-apply-button:not(:disabled){background:linear-gradient(180deg,#5daf6b 0%,var(--success) 100%);color:#f7fbf4}.settings-apply-button:not(:disabled):hover{background:linear-gradient(180deg,#69ba77,#276a34);color:#fff;box-shadow:0 4px #1f5a2c}.settings-apply-button:not(:disabled):active{background:#276a34;color:#fff;transform:translateY(2px);box-shadow:0 1px #1f5a2c}.settings-apply-button:disabled{opacity:1;background:#dbe7dd;border-color:#8eab93;box-shadow:0 3px #8eab93;color:#6c8771}.settings-reset-button{background:#e8e1d4}.settings-reset-button:disabled{opacity:1;background:#ece6dc;border-color:#b4a68c;box-shadow:0 3px #b4a68c;color:#8a7d66}.settings-reset-button:not(:disabled):hover{background:#ddd3c0;color:#3a2a12;box-shadow:0 4px #3a2a12}.settings-reset-button:not(:disabled):active{background:#ddd3c0;color:#3a2a12;transform:translateY(2px);box-shadow:0 1px #3a2a12}.lobby-mobile-actions{position:fixed;left:calc(10px + var(--safe-left));right:calc(10px + var(--safe-right));bottom:calc(10px + var(--safe-bottom));z-index:1200;border:3px solid var(--border);border-radius:var(--radius-md);background:var(--bg-paper);box-shadow:var(--shadow-lg);padding:10px;display:none;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.bot-modal-backdrop{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:24px;background:#2d2d2d59}.bot-modal{width:min(920px,94vw);max-height:82vh;overflow:auto;border:3px solid var(--border);border-radius:var(--radius-lg);background:var(--bg-paper);box-shadow:var(--shadow-lg);padding:18px;transform:rotate(-.2deg)}.bot-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.bot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.bot-card{min-height:230px;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;color:inherit;box-shadow:var(--shadow-sm);padding:12px;display:flex;flex-direction:column;align-items:center;gap:6px;position:relative}.bot-card:hover{transform:translate(2px,2px) rotate(.4deg);box-shadow:2px 2px 0 0 var(--border)}.bot-card.selected{border-color:var(--accent-2);box-shadow:4px 4px 0 0 var(--accent-2)}.bot-card.disabled{opacity:.56;cursor:not-allowed;transform:none}.bot-card-avatar{width:76px;height:76px;border-radius:var(--radius-sm);border:2px solid var(--bot-color, var(--border));background:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;letter-spacing:.08em}.bot-card-name{font-weight:700}.bot-card-description,.bot-card-traits{color:color-mix(in srgb,var(--fg) 75%,transparent);font-size:var(--text-sm);text-align:center}.bot-card-tag{position:absolute;top:10px;right:10px;font-size:12px;letter-spacing:.02em;border:2px dashed var(--border);border-radius:var(--radius-xs);padding:2px 6px;background:var(--bg-paper);color:var(--fg)}@media(min-width:1121px){.room-page-lobby .lobby-players-panel,.room-page-lobby .lobby-settings-panel,.room-page-lobby .lobby-chat-panel{max-height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 72px);overscroll-behavior:contain}.room-page-lobby .lobby-players-panel,.room-page-lobby .lobby-settings-panel{overflow-y:auto}.room-page-lobby .lobby-chat-panel{display:flex;flex-direction:column;overflow:hidden}.room-page-lobby .lobby-chat-panel .chat-shell{flex:1 1 auto;height:auto;min-height:0}.room-page-lobby .lobby-chat-panel .chat-body{min-height:0}.room-page-lobby .lobby-chat-panel .chat-messages{min-height:0;flex:1 1 auto}}@media(max-width:1200px){.lobby-three-column{grid-template-columns:minmax(220px,260px) minmax(0,1fr) minmax(270px,320px)}}@media(max-width:1120px){.lobby-three-column{grid-template-columns:minmax(0,1fr)}.lobby-settings-panel{order:1}.lobby-players-panel{order:2}.lobby-chat-panel{order:3}.lobby-mobile-actions{display:grid}.lobby-quick-actions{grid-template-columns:1fr}}@media(max-width:900px){.resource-option-grid{grid-template-columns:1fr}}@media(max-width:720px){.lobby-quick-actions-grid{grid-template-columns:1fr}.lobby-settings-index{gap:6px}.lobby-settings-index-item{font-size:13px;padding:3px 8px}.section-grid{grid-template-columns:1fr}}.chat-shell{background:#fbf7ee;border:3px solid var(--border);border-radius:var(--radius-md);box-shadow:0 6px #2f2a23;display:flex;flex-direction:column;gap:10px;min-height:360px;height:100%;padding:14px;transform:rotate(.4deg)}.chat-shell.mobile.closed{min-height:auto;box-shadow:none;border:none;background:transparent;padding:0;transform:none}.chat-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-bottom:8px;border-bottom:2px dashed var(--border)}.chat-header-text{display:flex;flex-direction:column;gap:4px}.chat-header-text .eyebrow{display:inline-flex;align-items:center;gap:8px}.chat-header-text .eyebrow:before{content:"";width:24px;height:24px;border-radius:var(--radius-xs);border:2px solid var(--border);background:#fff url(/assets/pieces/piece-boat.png) center / 14px 14px no-repeat;box-shadow:2px 2px 0 0 var(--border)}.chat-online{display:flex;align-items:center;gap:6px;color:color-mix(in srgb,var(--fg) 70%,transparent);font-size:15px}.dot{width:8px;height:8px;border-radius:999px;background:var(--success)}.chat-body{flex:1;display:flex;flex-direction:column;gap:8px;min-height:0}.chat-messages{flex:1;min-height:220px;overflow-y:auto;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fffefb;padding:12px;display:flex;flex-direction:column;gap:12px;box-shadow:2px 2px 0 0 var(--border)}.chat-empty-state{margin:auto 0;padding:10px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:var(--bg-note)}.chat-message{display:flex;flex-direction:column;gap:6px}.chat-message.self{align-items:flex-end}.chat-message.system{align-items:center}.chat-message.grouped{margin-top:-3px}.chat-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px}.chat-message.self .chat-meta{justify-content:flex-end}.chat-author{display:flex;align-items:center;gap:6px}.chat-color-dot{width:10px;height:10px;border-radius:999px;background:var(--fg)}.chat-bubble{position:relative;width:fit-content;max-width:78%;border-radius:var(--radius-sm);border:2px solid var(--border);background:#fff;padding:9px 11px 10px;box-shadow:2px 2px 0 0 var(--border)}.chat-message.self .chat-bubble{background:#edf4ff}.chat-message.system .chat-text{border:2px dashed #c9a742;border-radius:var(--radius-sm);padding:6px 10px;background:#f7edc9}.chat-text{white-space:pre-wrap;word-break:break-word}.chat-reply-preview{margin-bottom:6px;border:2px dashed var(--border);border-radius:var(--radius-xs);background:#fffefb;color:color-mix(in srgb,var(--fg) 75%,transparent);font-size:13px;padding:6px 8px}.chat-message-actions{position:absolute;top:-12px;right:8px;display:flex;flex-wrap:wrap;gap:6px;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) var(--ease-standard)}.chat-message:hover .chat-message-actions,.chat-message:focus-within .chat-message-actions,.chat-message-actions.always-visible{opacity:1;pointer-events:auto}.chat-action-button,.chat-reaction-chip,.chat-reply-close,.chat-emoji-button{border:2px solid var(--border);border-radius:var(--radius-xs);background:#fff;color:var(--fg);box-shadow:2px 2px 0 0 var(--border)}.chat-action-button{min-height:28px;padding:2px 7px;font-size:13px;font-weight:700}.chat-reactions{display:flex;gap:6px;flex-wrap:wrap;margin-left:10px}.chat-message.self .chat-reactions{justify-content:flex-end;margin-left:0}.chat-reaction-chip{border-radius:var(--radius-xs);min-height:28px;padding:4px 8px;font-size:13px;font-weight:700}.system-text{color:color-mix(in srgb,var(--fg) 75%,transparent);font-style:italic}.chat-new-banner{align-self:flex-end;border-radius:var(--radius-xs);padding:6px 12px;font-size:13px;font-weight:700;box-shadow:var(--shadow-sm)}.chat-typing{color:color-mix(in srgb,var(--fg) 70%,transparent);font-size:14px;min-height:16px}.chat-reply-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;border:2px dashed var(--border);border-radius:var(--radius-sm);background:#fffefb;padding:10px 12px}.chat-reply-content{display:flex;flex-direction:column;gap:2px}.chat-reply-label{color:color-mix(in srgb,var(--fg) 70%,transparent);font-size:13px;font-weight:700}.chat-reply-snippet{font-size:13px}.chat-reply-close{width:26px;height:26px;min-height:26px;padding:0;font-size:14px}.chat-composer{display:flex;flex-direction:column;gap:8px}.chat-emoji-bar{display:inline-flex;gap:6px;flex-wrap:wrap;width:fit-content;border:2px solid var(--border);border-radius:6px;background:#f2ebdd;padding:4px;box-shadow:0 2px #3a2a12}.chat-emoji-button{width:30px;height:30px;min-height:30px;font-size:14px;padding:0}.chat-input{resize:none}.chat-actions{display:flex;align-items:center;justify-content:space-between}.chat-send-button{min-width:94px}.chat-toggle{width:auto}@media(max-width:900px){.chat-message-actions{position:static;margin-top:6px;opacity:1;pointer-events:auto}.chat-bubble{max-width:100%}.chat-actions{flex-wrap:wrap;gap:8px}}.settings-modal-backdrop{position:fixed;inset:0;z-index:2100;background:#2d2d2d6b;display:flex;align-items:center;justify-content:center;padding:18px}.settings-modal{width:min(680px,100%);max-height:88vh;overflow:auto;border-radius:var(--radius-lg);border:3px solid var(--border);background:var(--bg-paper);box-shadow:var(--shadow-lg);padding:18px;display:flex;flex-direction:column;gap:14px;transform:rotate(-.35deg)}.settings-modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.settings-modal-body{display:flex;flex-direction:column;gap:10px}.settings-toggle-row,.settings-select-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:2px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:10px;box-shadow:2px 2px 0 0 var(--border)}.settings-toggle-row:nth-child(odd),.settings-select-row:nth-child(odd){transform:rotate(-.2deg)}.settings-toggle-row:nth-child(2n),.settings-select-row:nth-child(2n){transform:rotate(.2deg)}.settings-toggle-row input{width:18px;height:18px;flex:0 0 auto}.settings-select-row select{width:280px;flex:0 0 auto}.settings-modal-footer{display:flex;align-items:center;justify-content:space-between;gap:10px}:root[data-density=compact] .panel,:root[data-density=compact] .card{padding:10px}:root[data-density=compact] .player{padding:8px 10px}:root[data-density=compact] .form-control{gap:6px}:root[data-density=compact] .chat-shell{gap:8px;padding:10px}:root[data-density=compact] .chat-bubble{padding:7px 9px}@media(max-width:720px){.settings-toggle-row,.settings-select-row{flex-direction:column;align-items:flex-start}.settings-select-row select{width:100%}.settings-modal-footer{flex-direction:column;align-items:stretch}}.game-container{border-radius:var(--radius-md);border:3px solid var(--border);background:#fff;width:100%;height:100%;overflow:hidden;box-shadow:var(--shadow-md)}.game-layout-square{position:fixed;inset:0;display:flex;background:radial-gradient(var(--muted) 1px,transparent 1px),var(--bg);background-size:24px 24px,100% 100%}.game-board-square{position:relative;flex:1;min-width:0;min-height:0;display:flex}.game-finished-overlay{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:20px;background:#2d2d2d61}.game-finished-card{width:min(620px,100%);border-radius:var(--radius-lg);border:3px solid var(--border);background:var(--bg-paper);box-shadow:var(--shadow-lg);padding:20px;display:flex;flex-direction:column;gap:14px;transform:rotate(-.3deg)}.game-finished-standings{display:flex;flex-direction:column;gap:8px}.game-finished-row{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:2px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;box-shadow:2px 2px 0 0 var(--border)}.game-finished-row.winner{border-color:var(--accent-2);box-shadow:4px 4px 0 0 var(--accent-2);background:#edf4ff}.game-finished-player{display:flex;align-items:center;gap:10px}.game-finished-rank{color:color-mix(in srgb,var(--fg) 70%,transparent);font-weight:700;min-width:26px}.game-finished-color{width:12px;height:12px;border-radius:999px;border:2px solid var(--border);flex-shrink:0}@media(max-width:760px){.game-finished-overlay{padding:12px}.game-finished-card{padding:16px}}
