@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #faf6ef;--bg-raise: #ffffff;--bg-sunk: #f1eadf;--ink: #241f1a;--ink-soft: #6e6357;--ink-faint: #9c8f80;--line: #e6dccc;--line-strong: #d3c5b0;--brand: #c4502c;--brand-deep: #a03e20;--brand-soft: #f7e3da;--accent: #e9a23b;--accent-soft: #fbeed8;--herb: #3e6b4a;--herb-soft: #e2eee5;--danger: #b3382e;--danger-soft: #f6e0dd;--shadow: 0 1px 2px rgb(36 31 26 / .05), 0 10px 28px rgb(36 31 26 / .09);--shadow-soft: 0 1px 2px rgb(36 31 26 / .05);--radius: 14px;--radius-sm: 9px;--font-display: "Fraunces Variable", Georgia, "Times New Roman", serif;--font-body: "Inter Variable", system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #171310;--bg-raise: #201b16;--bg-sunk: #120f0c;--ink: #f1e9de;--ink-soft: #b3a695;--ink-faint: #857868;--line: #342c23;--line-strong: #4a4033;--brand: #e06a41;--brand-deep: #c4502c;--brand-soft: #3a231b;--accent: #f0b45c;--accent-soft: #3a2e1a;--herb: #7fb08d;--herb-soft: #22322a;--danger: #e06b5f;--danger-soft: #3d211e;--shadow: 0 1px 2px rgb(0 0 0 / .35), 0 10px 28px rgb(0 0 0 / .45);--shadow-soft: 0 1px 2px rgb(0 0 0 / .3);color-scheme:dark}}:root[data-theme=dark]{--bg: #171310;--bg-raise: #201b16;--bg-sunk: #120f0c;--ink: #f1e9de;--ink-soft: #b3a695;--ink-faint: #857868;--line: #342c23;--line-strong: #4a4033;--brand: #e06a41;--brand-deep: #c4502c;--brand-soft: #3a231b;--accent: #f0b45c;--accent-soft: #3a2e1a;--herb: #7fb08d;--herb-soft: #22322a;--danger: #e06b5f;--danger-soft: #3d211e;--shadow: 0 1px 2px rgb(0 0 0 / .35), 0 10px 28px rgb(0 0 0 / .45);--shadow-soft: 0 1px 2px rgb(0 0 0 / .3);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 16px/1.55 var(--font-body);min-height:100dvh}#root{min-height:100dvh;display:flex;flex-direction:column}main{flex:1}h1,h2,h3,h4{font-family:var(--font-display);font-weight:560;line-height:1.12;letter-spacing:-.015em;margin:0 0 .5em;text-wrap:balance}h1{font-size:clamp(2rem,5.5vw,3.4rem)}h2{font-size:clamp(1.5rem,3.4vw,2.1rem)}h3{font-size:1.25rem}p{margin:0 0 1em}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}img,video{max-width:100%;display:block}:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft)}.container{width:min(1120px,100% - 2.5rem);margin-inline:auto}.muted{color:var(--ink-soft)}.tiny{font-size:.82rem;color:var(--ink-faint)}.spread{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.stack{display:grid;gap:.85rem}.section{padding-block:2.75rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;font:600 .95rem/1 var(--font-body);padding:.72rem 1.15rem;border-radius:999px;border:1px solid transparent;cursor:pointer;background:var(--brand);color:#fff;transition:background .15s,transform .06s,box-shadow .15s;text-decoration:none;white-space:nowrap}.btn:hover{background:var(--brand-deep);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn.ghost:hover{background:var(--bg-sunk)}.btn.soft{background:var(--brand-soft);color:var(--brand-deep)}.btn.soft:hover{background:var(--brand-soft);filter:brightness(.97)}.btn.danger{background:var(--danger)}.btn.small{padding:.42rem .8rem;font-size:.85rem}.btn.big{padding:.95rem 1.6rem;font-size:1.05rem}.btn.icon{padding:.6rem;border-radius:50%;width:2.9rem;height:2.9rem;font-size:1.15rem}.field{display:grid;gap:.35rem}.label{font-size:.85rem;font-weight:600;color:var(--ink-soft)}.input,.select,.textarea{font:400 1rem/1.4 var(--font-body);color:var(--ink);background:var(--bg-raise);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.65rem .8rem;width:100%}.textarea{resize:vertical;min-height:5.5rem}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:transparent}.help{font-size:.8rem;color:var(--ink-faint)}.error-text{color:var(--danger);font-size:.88rem;font-weight:500}.card{background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow-soft)}.card.pad-lg{padding:1.6rem}.card.clickable{transition:box-shadow .15s,transform .15s,border-color .15s}.card.clickable:hover{box-shadow:var(--shadow);transform:translateY(-2px);border-color:var(--line-strong)}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:1.1rem}.chip{display:inline-flex;align-items:center;gap:.3rem;background:var(--bg-sunk);border:1px solid var(--line);color:var(--ink-soft);font-size:.78rem;font-weight:600;border-radius:999px;padding:.22rem .65rem}.chip.accent{background:var(--accent-soft);color:var(--ink);border-color:transparent}.chip.herb{background:var(--herb-soft);color:var(--herb);border-color:transparent}.chip.brand{background:var(--brand-soft);color:var(--brand-deep);border-color:transparent}.badge-live{display:inline-flex;align-items:center;gap:.35rem;background:var(--danger);color:#fff;font-size:.72rem;font-weight:700;letter-spacing:.06em;border-radius:999px;padding:.2rem .6rem;text-transform:uppercase}.badge-live:before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}.avatar{width:44px;height:44px;border-radius:50%;overflow:hidden;background:linear-gradient(135deg,var(--accent),var(--brand));color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.lg{width:84px;height:84px;font-size:1.8rem}.avatar.sm{width:30px;height:30px;font-size:.75rem}.nav{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;gap:1.1rem;padding-block:.7rem}.logo{font-family:var(--font-display);font-weight:640;font-size:1.25rem;color:var(--ink);letter-spacing:-.02em;white-space:nowrap}.logo:hover{text-decoration:none}.logo em{font-style:italic;color:var(--brand)}.nav-links{display:flex;align-items:center;gap:.2rem;overflow-x:auto;scrollbar-width:none;flex:1}.nav-links::-webkit-scrollbar{display:none}.nav-link{color:var(--ink-soft);font-weight:600;font-size:.92rem;padding:.45rem .7rem;border-radius:999px;white-space:nowrap}.nav-link:hover{background:var(--bg-sunk);text-decoration:none;color:var(--ink)}.nav-link.active{color:var(--brand-deep);background:var(--brand-soft)}.footer{border-top:1px solid var(--line);padding-block:2rem;margin-top:3rem;color:var(--ink-faint);font-size:.85rem}.hero{position:relative;overflow:hidden;padding-block:clamp(3rem,8vw,6rem) clamp(2.5rem,6vw,4.5rem);background:radial-gradient(60rem 30rem at 85% -20%,var(--accent-soft),transparent 60%),radial-gradient(50rem 26rem at -10% 110%,var(--brand-soft),transparent 55%)}.hero .kicker{font-weight:700;letter-spacing:.14em;text-transform:uppercase;font-size:.78rem;color:var(--brand-deep);margin-bottom:.9rem}.hero h1 em{font-style:italic;color:var(--brand)}.hero .lede{font-size:clamp(1.05rem,2vw,1.25rem);color:var(--ink-soft);max-width:34em}.steam{position:absolute;right:clamp(-4rem,2vw,6rem);bottom:-1rem;width:clamp(180px,28vw,340px);opacity:.9;pointer-events:none}.steam .puff{fill:none;stroke:var(--ink-faint);stroke-width:5;stroke-linecap:round;opacity:0;animation:rise 4.2s ease-in-out infinite}.steam .puff:nth-child(2){animation-delay:1.4s}.steam .puff:nth-child(3){animation-delay:2.8s}@keyframes rise{0%{opacity:0;transform:translateY(16px)}35%{opacity:.5}to{opacity:0;transform:translateY(-46px)}}.feature-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:1.1rem}.feature-tiles .card{display:grid;gap:.4rem}.feature-emoji{font-size:1.7rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:1rem}.stat{background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.15rem;display:grid;gap:.15rem}.stat .value{font-family:var(--font-display);font-size:1.9rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.stat .label{font-size:.82rem;color:var(--ink-soft);font-weight:600}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th{text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);padding:.5rem .7rem;border-bottom:1px solid var(--line-strong)}.table td{padding:.6rem .7rem;border-bottom:1px solid var(--line);vertical-align:middle}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#140f0a8c;display:grid;place-items:center;z-index:100;padding:1rem}.modal{background:var(--bg-raise);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);width:min(480px,100%);max-height:90dvh;overflow-y:auto;padding:1.4rem}.toast-region{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);z-index:200;display:grid;gap:.5rem;width:min(420px,calc(100vw - 2rem))}.toast{background:var(--ink);color:var(--bg);border-radius:var(--radius-sm);padding:.7rem 1rem;font-weight:600;font-size:.92rem;box-shadow:var(--shadow);animation:toast-in .18s ease-out}.toast.error{background:var(--danger);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.banner{border-radius:var(--radius-sm);padding:.7rem 1rem;font-size:.9rem;font-weight:500;border:1px solid transparent}.banner.demo{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.banner.info{background:var(--herb-soft);border-color:color-mix(in srgb,var(--herb) 30%,transparent)}.banner.warn{background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 35%,transparent)}.room{display:grid;grid-template-columns:1fr 350px;gap:1rem;height:calc(100dvh - 64px);padding:1rem}.room-stage{display:flex;flex-direction:column;gap:.8rem;min-width:0}.tile-grid{flex:1;display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-content:center;min-height:0}.tile{position:relative;background:#14100c;border-radius:var(--radius);overflow:hidden;aspect-ratio:4 / 3;border:1px solid var(--line)}.tile video{width:100%;height:100%;object-fit:cover}.tile.mirrored video{transform:scaleX(-1)}.tile .nameplate{position:absolute;left:.6rem;bottom:.6rem;background:#0000008c;color:#fff;font-size:.8rem;font-weight:600;padding:.22rem .6rem;border-radius:999px;display:flex;align-items:center;gap:.35rem}.tile .tile-actions{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.3rem;opacity:0;transition:opacity .15s}.tile:hover .tile-actions{opacity:1}.tile .placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#ffffffbf;font-size:2rem}.controls-bar{display:flex;justify-content:center;gap:.6rem;flex-wrap:wrap;padding:.4rem 0}.room-side{display:flex;flex-direction:column;background:var(--bg-raise);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:0}.side-tabs{display:flex;border-bottom:1px solid var(--line)}.side-tab{flex:1;padding:.65rem;text-align:center;font-weight:600;font-size:.88rem;color:var(--ink-soft);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent}.side-tab.active{color:var(--brand-deep);border-bottom-color:var(--brand)}.side-body{flex:1;overflow-y:auto;padding:.85rem;display:flex;flex-direction:column;gap:.55rem}.chat-msg{font-size:.92rem;line-height:1.4}.chat-msg .who{font-weight:700;margin-right:.35rem}.chat-msg.tip{background:var(--accent-soft);border-radius:var(--radius-sm);padding:.5rem .7rem;font-weight:600}.chat-msg.system{color:var(--ink-faint);font-style:italic}.chat-input-row{display:flex;gap:.5rem;padding:.7rem;border-top:1px solid var(--line)}.reactions-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.reaction-float{position:absolute;bottom:0;font-size:1.9rem;animation:float-up 2.6s ease-out forwards}@keyframes float-up{0%{transform:translateY(0) scale(.8);opacity:1}to{transform:translateY(-70vh) scale(1.25);opacity:0}}.step-now{background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 35%,transparent);border-radius:var(--radius);padding:.9rem 1rem}.step-now .step-count{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--brand-deep)}.step-list{display:grid;gap:.45rem}.step-item{display:flex;gap:.6rem;padding:.55rem .7rem;border-radius:var(--radius-sm);border:1px solid var(--line);font-size:.92rem;align-items:baseline}.step-item.done{opacity:.55;text-decoration:line-through}.step-item.now{border-color:var(--brand);background:var(--brand-soft);font-weight:600}.step-num{font-family:var(--font-display);font-weight:700;color:var(--brand-deep);min-width:1.4em}.timer-bar{height:6px;border-radius:999px;background:var(--bg-sunk);overflow:hidden;margin-top:.5rem}.timer-bar>div{height:100%;background:var(--brand);transition:width 1s linear}.checklist label{display:flex;gap:.55rem;align-items:baseline;padding:.3rem 0;cursor:pointer}.checklist input{accent-color:var(--herb)}.checklist .qty{color:var(--ink-faint);font-size:.85rem;margin-left:auto;white-space:nowrap}.player-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(280px,1fr);gap:1.4rem;align-items:start}.player{width:100%;aspect-ratio:16 / 9;background:#14100c;border-radius:var(--radius)}.lock-cover{aspect-ratio:16 / 9;border-radius:var(--radius);background:linear-gradient(135deg,var(--brand-soft),var(--accent-soft));display:grid;place-items:center;text-align:center;padding:1.5rem}.poster-thumb{aspect-ratio:16 / 10;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--accent-soft),var(--brand-soft));overflow:hidden;display:grid;place-items:center;font-size:2rem;margin-bottom:.7rem;position:relative}.poster-thumb img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.upload-progress{height:8px;background:var(--bg-sunk);border-radius:999px;overflow:hidden}.upload-progress>div{height:100%;background:var(--herb);transition:width .2s}.tabs{display:flex;gap:.3rem;border-bottom:1px solid var(--line);margin-bottom:1.4rem;overflow-x:auto;scrollbar-width:none}.tab{padding:.6rem 1rem;font-weight:600;font-size:.94rem;color:var(--ink-soft);background:none;border:none;cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tab:hover{color:var(--ink)}.tab.active{color:var(--brand-deep);border-bottom-color:var(--brand)}.empty{text-align:center;color:var(--ink-faint);padding:2.5rem 1rem;border:1.5px dashed var(--line-strong);border-radius:var(--radius)}.prose{max-width:68ch}.prose h2{margin-top:1.6em}.prose li{margin-bottom:.35em}.auth-card{width:min(430px,100%);margin:3.5rem auto}.divider{border:none;border-top:1px solid var(--line);margin:1.2rem 0}@media (max-width: 900px){.room{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) 300px;height:calc(100dvh - 60px);padding:.6rem}.player-layout{grid-template-columns:1fr}.tile-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,46%),1fr));align-content:start}}@media (max-width: 560px){.section{padding-block:1.8rem}.hero{padding-block:2.5rem 2rem}.btn.big{width:100%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
