*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}:root{--fs-xs: 13px;--fs-sm: 15px;--fs-body: 17px;--fs-lg: 21px;--fs-title: 26px;--fs-headline: 34px;--fs-display: 60px;--gap: 14px;--pad: 16px;--radius: 14px;--radius-lg: 20px;--avatar: 52px;--avatar-tile: 96px;--tile-min: 120px;color-scheme:dark;--bg: #0e0f16;--panel: #191c28;--panel-2: #232838;--ink: #e9ecf6;--muted: #8d95ab;--line: #2f3548;--accent: #c43b3b;--accent-2: #7a5cc4;--on-accent-2: #fff;--on-accent: #fff;--good: #4caf7d;--warn: #d9a03c;--on-warn: #1a1206;--overlay: rgba(4, 5, 10, .74);--qr-bg: #fff;--shadow: 0 8px 24px rgba(0, 0, 0, .35)}:root[data-phase=registering],:root[data-phase=morning],:root[data-phase=day]{color-scheme:light;--bg: #f5efe4;--panel: #fffdf9;--panel-2: #ece3d4;--ink: #241d2a;--muted: #6c6173;--line: #ddd0be;--accent: #c8412f;--accent-2: #6d4bc0;--on-accent-2: #fff;--on-accent: #fff;--good: #227d55;--warn: #a86a12;--on-warn: #fff;--overlay: rgba(40, 30, 22, .45);--shadow: 0 8px 24px rgba(90, 70, 45, .16)}:root[data-phase=voting]{color-scheme:light;--bg: #f7e7d8;--panel: #fffaf3;--panel-2: #f0dcc8;--ink: #2a1a18;--muted: #7a5f52;--line: #e2c9b0;--accent: #bd2717;--accent-2: #7b3fa8;--on-accent-2: #fff;--on-accent: #fff;--good: #227d55;--warn: #9c5c0c;--on-warn: #fff;--overlay: rgba(48, 24, 14, .5);--shadow: 0 8px 24px rgba(120, 60, 30, .2)}:root[data-phase=twilight]{color-scheme:dark;--bg: #241a35;--panel: #33244a;--panel-2: #422f5e;--ink: #f5eaff;--muted: #b6a1d0;--line: #543f76;--accent: #ff8a4c;--accent-2: #8c68ff;--on-accent-2: #fff;--on-accent: #2a1406;--good: #58cf9b;--warn: #ffc65c;--on-warn: #34240a;--overlay: rgba(14, 8, 24, .72);--shadow: 0 8px 28px rgba(10, 4, 20, .5)}:root[data-phase=night]{color-scheme:dark;--bg: #080b14;--panel: #121826;--panel-2: #1b2334;--ink: #e4ecfb;--muted: #7f8ba6;--line: #26304a;--accent: #4f7fe8;--accent-2: #9b6bff;--on-accent-2: #fff;--on-accent: #fff;--good: #3fae82;--warn: #c99236;--on-warn: #0d1220;--overlay: rgba(2, 4, 10, .8);--shadow: 0 8px 28px rgba(0, 0, 0, .55)}:root[data-phase=gameOver]{color-scheme:dark;--bg: #140a0e;--panel: #24141b;--panel-2: #331c26;--ink: #ffeef0;--muted: #b58d95;--line: #452430;--accent: #e63946;--accent-2: #d4af37;--on-accent-2: #201209;--on-accent: #fff;--good: #4caf7d;--warn: #d4af37;--on-warn: #201209;--overlay: rgba(10, 2, 5, .82);--shadow: 0 8px 28px rgba(0, 0, 0, .6)}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;font-size:var(--fs-body);line-height:1.45;overscroll-behavior:none;overflow-wrap:break-word;transition:background-color .3s ease,color .3s ease}button{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px 18px;cursor:pointer;touch-action:manipulation;min-width:0}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}button.ghost{background:transparent}button.with-icon{display:flex;align-items:center;justify-content:center;gap:10px}button.danger{background:transparent;border-color:var(--accent);color:var(--accent);font-weight:700}input,textarea,select{font:inherit;color:inherit;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;width:100%;min-width:0}.app{min-height:100dvh;display:flex;flex-direction:column;max-width:520px;margin:0 auto;padding:var(--pad);padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right));padding-bottom:max(var(--pad),env(safe-area-inset-bottom));gap:var(--gap)}.app.wide{max-width:none;--pad: 28px}.card{background:var(--panel);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}.title{font-size:var(--fs-title);font-weight:800;letter-spacing:.02em}.subtitle{color:var(--muted)}.big-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:30px 10px}.big-center .headline{font-size:var(--fs-headline);font-weight:800;line-height:1.1}.stack{display:flex;flex-direction:column;gap:10px;min-width:0}.row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;min-width:0}.row .grow{flex:1;min-width:0}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.error{color:var(--accent)}.avatar{width:var(--avatar);height:var(--avatar);border-radius:50%;background:var(--panel-2);display:flex;align-items:center;justify-content:center;font-weight:800;overflow:hidden;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.dead{opacity:.35;filter:grayscale(1)}.cropper{display:flex;flex-direction:column;gap:var(--gap)}.crop-frame{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border-radius:var(--radius);background:var(--panel-2);touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none}.crop-frame:active{cursor:grabbing}.crop-image{position:absolute;left:50%;top:50%;max-width:none;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.crop-mask{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 0 9999px var(--overlay);pointer-events:none}.crop-zoom{width:100%;height:44px;padding:0;background:transparent;border:none;accent-color:var(--accent)}.selfie-preview{gap:var(--gap)}.selfie-preview .thumb{width:var(--avatar-tile);height:var(--avatar-tile);border-radius:50%;object-fit:cover;flex-shrink:0}.close-room{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.roster-grid{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:18px}.roster-grid .tile{flex:0 0 min(var(--tile-min),100%);display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0}.roster-grid .tile .avatar{width:var(--avatar-tile);height:var(--avatar-tile);font-size:var(--fs-headline)}.roster-grid .tile.dead{opacity:.35}.roster-grid .tile .tag{font-size:var(--fs-xs);background:var(--warn);color:var(--on-warn);padding:2px 10px;border-radius:999px;font-weight:700}.phone-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:start;gap:12px}.dev-layout{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:var(--gap);align-items:start}.dev-log{position:sticky;top:var(--pad);max-height:calc(100dvh - var(--pad) * 2);overflow-y:auto;overscroll-behavior:contain}@media(max-width:900px){.dev-layout{grid-template-columns:1fr}.dev-log{position:static;max-height:50dvh}}.target-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:10px}.target-list button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px 8px}.target-list button.nobody{justify-content:center;min-height:96px;border-style:dashed;color:var(--muted);font-weight:700}.target-list button.selected,.note-options button.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent)}.popup-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;padding:22px;z-index:10}.popup{background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;width:100%;max-width:440px;max-height:80dvh;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.player-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:10px 14px;background:var(--panel);border-radius:var(--radius);min-width:0}.player-bar>:first-child{min-width:0}.player-bar .status.dead{color:var(--accent);font-weight:700}.swipe-row{--swipe-reveal: 108px;position:relative;overflow:hidden;border-radius:var(--radius);touch-action:pan-y}.swipe-row-content{background:var(--panel);padding:4px 0;transition:padding-right .18s ease}.swipe-row.open .swipe-row-content{padding-right:var(--swipe-reveal)}.swipe-row-actions{position:absolute;top:0;right:0;height:100%;width:var(--swipe-reveal);display:flex;align-items:center;justify-content:flex-end;gap:6px;opacity:0;pointer-events:none;transform:translate(100%);transition:transform .18s ease,opacity .18s ease}.swipe-row.open .swipe-row-actions{opacity:1;pointer-events:auto;transform:translate(0)}.icon-btn{display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;flex-shrink:0}.icon-btn{position:relative}.icon-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:700;line-height:18px;text-align:center}.disclosure{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.disclosure-head{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:0;text-align:left}.disclosure-head .grow{flex:1;min-width:0;font-weight:700}.disclosure-body{padding:0 14px 14px}.overline{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.roster-break{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--line)}.card-facts{display:flex;flex-direction:column;gap:12px}.card-facts>div{display:flex;flex-direction:column;gap:2px}.card-action{display:flex;flex-direction:column;gap:6px}.card-notes{display:flex;flex-direction:column;gap:8px;padding-left:18px;list-style:disc}.icon-btn.danger{color:var(--accent);border-color:var(--accent)}.preset-list{display:flex;flex-direction:column;gap:10px;max-height:min(46dvh,420px);overflow-y:auto;overscroll-behavior:contain;padding:2px}.preset-row{display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:left;padding:14px}.preset-row.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.role-pills{display:flex;flex-wrap:wrap;gap:6px}.walk-nav{gap:10px}.walk-step{text-align:center}.walk-nav-buttons{display:flex;gap:10px}.walk-nav-buttons>button{flex:1 1 0;min-width:0}.history-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);min-width:0}.history-row:last-child{border-bottom:0}.history-row>.grow{flex:1;min-width:0;overflow-wrap:anywhere}.history-row button{flex:0 0 auto;padding:8px 12px}.field-row{display:flex;align-items:baseline;gap:10px;min-width:0}.field-label{color:var(--muted);flex:0 0 5.5rem;text-transform:uppercase;font-size:var(--fs-sm);letter-spacing:.04em}.field-body{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}.field-value{font-weight:700;min-width:0;overflow-wrap:anywhere}.field-alert{display:inline-flex;align-items:center;gap:4px;color:var(--warn);font-size:var(--fs-sm);font-weight:700}.field-alert svg{width:16px;height:16px;flex-shrink:0}.field-value.emphasis{color:var(--accent)}button.field-value.emphasis{border-color:var(--accent)}button.field-value{padding:6px 14px;border-radius:999px;font-weight:700}.walk-nav button.good{background:var(--good);border-color:var(--good);color:var(--on-accent);font-weight:700}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}.segmented button{padding:12px 8px}.segmented button.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,transparent);font-weight:700}.host-bar{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.host-bar-status{flex:1 1 14rem;min-width:0}.host-bar .phase{font-weight:800;text-transform:uppercase;letter-spacing:.06em}.host-bar-controls{display:flex;flex-wrap:wrap;gap:8px;flex:0 0 auto;margin-left:auto}.screen-root{--fs-xs: clamp(16px, 1.3vw, 30px);--fs-sm: clamp(18px, 1.5vw, 34px);--fs-body: clamp(22px, 1.9vw, 42px);--fs-lg: clamp(26px, 2.4vw, 52px);--fs-title: clamp(34px, 3.2vw, 70px);--fs-headline: clamp(48px, 5vw, 108px);--fs-display: clamp(64px, 7.5vw, 170px);--gap: 28px;--radius: var(--radius-lg);--avatar: clamp(56px, min(7vw, 11vh), 150px);--avatar-tile: clamp(64px, min(9vw, 13vh), 200px);--tile-min: clamp(104px, min(13vw, 18vh), 300px);font-size:var(--fs-body)}.screen-root .headline-xl{font-size:var(--fs-display);font-weight:900;text-align:center;line-height:1.05}.screen-root .big-center .headline{font-size:var(--fs-display);font-weight:900}.screen-root .room-code{font-size:var(--fs-display);font-weight:900;align-self:center;letter-spacing:.06em}.roster-grid .tile .tag.role{background:var(--accent-2);color:var(--on-accent-2)}.screen-banner{display:flex;align-items:baseline;justify-content:center;flex-wrap:wrap;gap:.6em;padding-bottom:.1em;border-bottom:2px solid var(--line)}.screen-banner .phase{font-size:var(--fs-headline);font-weight:900;text-transform:uppercase;letter-spacing:.06em;line-height:1.1}.screen-banner .count{font-size:var(--fs-lg);color:var(--muted);font-weight:700}.screen-block{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:clamp(24px,4vw,60px)}.screen-block .tile .avatar{width:clamp(120px,min(17vw,27vh),320px);height:clamp(120px,min(17vw,27vh),320px);font-size:var(--fs-display)}.screen-block .name{font-size:var(--fs-headline);font-weight:800;text-align:center}.screen-dayhead{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:var(--gap)}.qr{background:var(--qr-bg);padding:14px;border-radius:var(--radius)}.screen-root .qr{width:clamp(160px,min(24vw,34vh),380px);height:auto}.list-plain{list-style:none;display:flex;flex-direction:column;gap:8px;min-width:0}.pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--panel-2);font-size:var(--fs-sm);max-width:100%}@keyframes prompt-in{0%{opacity:0;transform:translate(16px)}}@keyframes prompt-out{to{opacity:0;transform:translate(-16px)}}@keyframes prompt-in-back{0%{opacity:0;transform:translate(-16px)}}.prompt-card{animation:prompt-in .18s ease-out;touch-action:pan-y}.prompt-card.back{animation:prompt-in-back .18s ease-out}.prompt-card.leaving{animation:prompt-out .2s ease-in .25s forwards;pointer-events:none}.queue-dots{display:flex;justify-content:center;gap:8px}.queue-dots span{width:8px;height:8px;border-radius:999px;background:var(--line)}.queue-dots span.done{background:var(--accent)}.queue-dots span.current{box-shadow:0 0 0 3px color-mix(in srgb,var(--muted) 45%,transparent)}@media(prefers-reduced-motion:reduce){body{transition:none}.prompt-card,.prompt-card.back,.prompt-card.leaving{animation:none}}
