@font-face{font-family:Bungee;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/75791ab424a6b224-s.p.woff2) format("woff2");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:Bungee;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/736504ce0c225627-s.woff2) format("woff2");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:Bungee;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/63b7f7cf762c1c1b-s.p.woff2) format("woff2");unicode-range:u+00??,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:Bungee Fallback;src:local("Arial");ascent-override:73.58%;descent-override:21.64%;line-gap-override:0.00%;size-adjust:138.63%}.__className_5d57fa{font-family:Bungee,Bungee Fallback;font-weight:400;font-style:normal}.__variable_5d57fa{--font-display:"Bungee","Bungee Fallback"}@font-face{font-family:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/cd79e1ff94fa521b-s.p.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/89362aa296165c6d-s.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e11f95d95ac59fa4-s.p.woff2) format("woff2");unicode-range:u+00??,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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/00f4982f357db61e-s.p.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/62a3c74fa0e47362-s.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8201559e247ad180-s.p.woff2) format("woff2");unicode-range:u+00??,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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/2173e4bb28c315da-s.p.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/c6f81e539d11fc99-s.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/25ab8995c98996d7-s.p.woff2) format("woff2");unicode-range:u+00??,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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9ddf1512dbee9c99-s.p.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8247d8d2a376ae43-s.woff2) format("woff2");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:Be Vietnam Pro;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e270c9fc4fe96f5a-s.p.woff2) format("woff2");unicode-range:u+00??,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:Be Vietnam Pro Fallback;src:local("Arial");ascent-override:90.61%;descent-override:24.01%;line-gap-override:0.00%;size-adjust:110.36%}.__className_83907a{font-family:Be Vietnam Pro,Be Vietnam Pro Fallback;font-style:normal}.__variable_83907a{--font-body:"Be Vietnam Pro","Be Vietnam Pro Fallback"}:root{--paper:oklch(96% 0.021 88);--paper-deep:oklch(92.5% 0.032 84);--card:oklch(98.2% 0.012 92);--ink:oklch(31% 0.045 55);--ink-soft:oklch(45% 0.038 55);--ink-faint:oklch(60% 0.028 60);--line:oklch(84% 0.03 75);--son:oklch(55% 0.185 32);--son-deep:oklch(44% 0.16 32);--son-tint:oklch(93% 0.032 32);--cham:oklch(44% 0.1 262);--cham-deep:oklch(35% 0.088 262);--cham-tint:oklch(93% 0.026 262);--nghe:oklch(82% 0.145 88);--nghe-deep:oklch(58% 0.125 70);--moss:oklch(53% 0.09 145);--moss-deep:oklch(42% 0.08 145);--moss-tint:oklch(93% 0.028 145);--tim:oklch(46% 0.115 305);--tim-deep:oklch(36% 0.1 305);--tim-tint:oklch(93% 0.028 305);--sp-2xs:4px;--sp-xs:8px;--sp-sm:12px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--sp-2xl:48px;--sp-3xl:64px;--sp-4xl:96px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--shadow-soft:0 1px 2px oklch(31% 0.045 55/0.08),0 6px 18px oklch(31% 0.045 55/0.09);--shadow-lift:0 2px 4px oklch(31% 0.045 55/0.1),0 14px 34px oklch(31% 0.045 55/0.14);--ease-out:cubic-bezier(0.16,1,0.3,1);--font-display-stack:var(--font-display),"Bungee",system-ui,sans-serif;--font-body-stack:var(--font-body),"Be Vietnam Pro",system-ui,sans-serif}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);background-color:var(--paper);background-image:repeating-linear-gradient(0deg,oklch(50% .05 80/.028) 0 1px,transparent 1px 7px),repeating-linear-gradient(90deg,oklch(50% .05 80/.02) 0 1px,transparent 1px 7px);font-family:var(--font-body-stack);font-size:16px;line-height:1.6;min-height:100dvh}h1,h2,h3{font-family:var(--font-display-stack);font-weight:400;line-height:1.12;margin:0;text-wrap:balance}p{margin:0;max-width:68ch}a{color:var(--son);text-decoration-thickness:1.5px;text-underline-offset:3px}button{font-family:inherit;cursor:pointer}:focus-visible{outline:3px solid var(--nghe-deep);outline-offset:2px;border-radius:4px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-xs);border:none;border-radius:var(--radius-md);padding:14px 26px;font-size:17px;font-weight:600;line-height:1.2;text-decoration:none;transition:transform .15s var(--ease-out),box-shadow .15s var(--ease-out),background .15s;touch-action:manipulation;white-space:nowrap}.btn:active{transform:translateY(1px) scale(.99)}.btn-primary{background:var(--son);color:oklch(97% .02 40);box-shadow:0 3px 0 var(--son-deep),var(--shadow-soft)}.btn-primary:hover{background:oklch(58% .19 32);transform:translateY(-1px)}.btn-primary:active{box-shadow:0 1px 0 var(--son-deep)}.btn-secondary{background:var(--card);color:var(--ink);border:1.5px solid var(--line);box-shadow:0 2px 0 var(--line)}.btn-secondary:hover{border-color:var(--ink-faint)}.btn-ghost{background:transparent;color:var(--ink-soft);padding:10px 14px;border-radius:var(--radius-sm)}.btn-ghost:hover{background:oklch(31% .045 55/.06);color:var(--ink)}.btn-lg{padding:18px 34px;font-size:19px;border-radius:var(--radius-lg)}.btn-sm{padding:8px 16px;font-size:14.5px;border-radius:10px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input{font-family:inherit;font-size:17px;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-md);padding:13px 16px;width:100%;transition:border-color .15s}.input::placeholder{color:var(--ink-faint)}.input:focus{outline:none;border-color:var(--nghe-deep);box-shadow:0 0 0 3px oklch(82% .145 88/.35)}.chip{display:inline-flex;align-items:center;gap:6px;background:var(--paper-deep);border-radius:999px;padding:5px 13px;font-weight:600}.chip,.field-label{font-size:13.5px;color:var(--ink-soft)}.field-label{display:block;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:var(--sp-xs)}.site-header{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-md);padding:var(--sp-md) clamp(16px,4vw,40px);max-width:1120px;margin:0 auto}.logo-link{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.logo-word{font-family:var(--font-display-stack);font-size:20px;letter-spacing:.02em;white-space:nowrap}.logo-word em{font-style:normal;color:var(--son)}.brand-trail{display:flex;align-items:center;gap:var(--sp-sm);min-width:0}.brand-sep{color:var(--ink-faint);font-size:18px;line-height:1}.brand-game{font-family:var(--font-display-stack);font-size:14px;letter-spacing:.03em;color:var(--son-deep);text-decoration:none;background:var(--son-tint);border:1.5px solid oklch(55% .185 32/.35);border-radius:var(--radius-sm);padding:5px 12px;transform:rotate(-1.5deg);white-space:nowrap}.brand-game:hover{transform:rotate(0deg)}.header-nav{display:flex;align-items:center;gap:var(--sp-xs)}@media (max-width:640px){.has-game .brand-sep,.has-game .logo-word,.hide-sm{display:none}}.home-main{max-width:1120px;margin:0 auto;padding:0 clamp(16px,4vw,40px) var(--sp-4xl)}.hero{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);align-items:center;grid-gap:clamp(24px,5vw,64px);gap:clamp(24px,5vw,64px);padding-top:clamp(16px,4vh,56px)}.hero-kicker{display:inline-flex;align-items:center;gap:8px;background:var(--nghe);color:oklch(34% .07 70);font-size:13.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:6px 14px;border-radius:999px;transform:rotate(-1.2deg);box-shadow:var(--shadow-soft)}.hero-title{font-size:clamp(56px,11vw,118px);color:var(--ink);margin:var(--sp-md) 0 0;line-height:.98}.hero-title .ganh{color:var(--son);display:inline-block}.hero-tagline{font-size:clamp(17px,2.2vw,21px);color:var(--ink-soft);margin-top:var(--sp-md);max-width:44ch}.hero-tagline strong{color:var(--ink)}.hero-panel{margin-top:var(--sp-xl);display:grid;grid-gap:var(--sp-md);gap:var(--sp-md);max-width:460px}.path-chooser{display:grid;grid-gap:2px;gap:2px}.path-lane{display:grid;grid-gap:var(--sp-sm);gap:var(--sp-sm);padding:var(--sp-md) var(--sp-lg)}.path-lane-create{background:var(--son-tint);border-radius:var(--radius-lg) var(--radius-lg) 6px 6px;padding-bottom:var(--sp-xl)}.path-lane-join{background:var(--cham-tint);border-radius:6px 6px var(--radius-lg) var(--radius-lg);padding-top:var(--sp-xl)}.path-question{font-weight:700;font-size:15.5px;margin:0}.path-lane-create .path-question{color:var(--son-deep)}.path-lane-join .path-question{color:var(--cham-deep)}.path-btn{width:100%}.path-divider{display:flex;align-items:center;justify-content:center;height:0;position:relative;z-index:1}.path-divider span{font-family:var(--font-display-stack);font-size:13px;color:var(--ink-faint);background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:3px 16px;transform:rotate(-2deg)}.join-row{display:flex;gap:var(--sp-xs);width:100%}.join-row .input{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:16px;flex:1 1;min-width:0}.hero-board-wrap{position:relative;transform:rotate(1.6deg)}.hero-board-wrap:after{content:"một ván cờ";position:absolute;right:8px;bottom:-12px;background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;color:var(--ink-faint);transform:rotate(-2deg)}.error-note{color:var(--son-deep);background:var(--son-tint);border-radius:var(--radius-sm);padding:10px 14px;font-size:14.5px;font-weight:500}.hero-cta-row{display:flex;flex-wrap:wrap;gap:var(--sp-sm);margin-top:var(--sp-xl)}.hero-stack{position:relative}.hero-stack-back{position:absolute;inset:-26px -14px auto auto;width:62%;background:var(--paper-deep);border:2px dashed var(--line);border-radius:var(--radius-md);padding:10px 6px 2px;transform:rotate(4.5deg);opacity:.9}.games-section{margin-top:clamp(56px,10vh,110px)}.stamp{display:inline-block;font-family:var(--font-display-stack);font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border:2px solid;border-radius:7px;background:oklch(98.2% .012 92/.85)}.stamp-open{color:var(--moss);position:absolute;right:14px;top:12px;transform:rotate(5deg)}.stamp-soon{color:var(--nghe-deep);position:absolute;right:16px;top:-13px;transform:rotate(4deg);background:var(--paper)}.game-feature{position:relative;display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);overflow:hidden}.game-feature-media{position:relative;display:grid;place-items:center;background:var(--son-tint);background-image:repeating-linear-gradient(-45deg,oklch(55% .185 32/.05) 0 10px,transparent 10px 20px);padding:var(--sp-xl) var(--sp-lg)}.game-feature-body{display:grid;grid-gap:var(--sp-sm);gap:var(--sp-sm);align-content:center;justify-items:start;padding:var(--sp-lg) clamp(20px,3.5vw,40px)}.game-name{font-size:clamp(24px,3.5vw,34px);color:var(--son)}.game-meta{display:flex;flex-wrap:wrap;gap:6px}.game-desc{color:var(--ink-soft);font-size:15.5px;max-width:56ch}.game-actions{display:flex;flex-wrap:wrap;gap:var(--sp-sm);margin-top:var(--sp-xs)}.games-soon{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:var(--sp-lg);gap:var(--sp-lg);margin-top:var(--sp-lg)}.game-soon-card{position:relative;display:grid;grid-gap:var(--sp-xs);gap:var(--sp-xs);align-content:start;justify-items:start;border:2px dashed var(--line);border-radius:var(--radius-lg);padding:var(--sp-lg)}.game-soon-0{transform:rotate(.6deg)}.game-soon-1{transform:rotate(-.5deg)}.game-soon-sketch{width:100%;max-width:240px;justify-self:center;margin-bottom:var(--sp-xs)}.sketch-svg{display:block;width:100%;height:auto}.game-name-soon{font-size:20px;color:var(--ink)}.game-hook{font-size:14.5px;color:var(--ink-soft)}.game-soon-card .game-meta{margin-top:var(--sp-xs)}.suggest-card{border-style:solid;border-color:oklch(82% .145 88/.7);background:oklch(82% .145 88/.14);transform:rotate(.4deg)}.suggest-card .btn{margin-top:var(--sp-sm)}.mission{margin-top:clamp(56px,10vh,110px);background:var(--paper-deep);border-radius:var(--radius-lg);padding:clamp(24px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--sp-lg);gap:var(--sp-lg);align-items:center}.mission p{color:var(--ink-soft);margin-top:var(--sp-xs)}.mission strong{color:var(--ink)}.steps-section{margin-top:clamp(56px,10vh,110px)}.section-heading{font-size:clamp(26px,4vw,40px);margin-bottom:var(--sp-xs)}.section-sub{color:var(--ink-soft);margin-bottom:var(--sp-xl)}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:var(--sp-lg);gap:var(--sp-lg);counter-reset:step}.step{position:relative;padding:var(--sp-lg) var(--sp-lg) var(--sp-lg) 68px;background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-lg);counter-increment:step}.step:nth-child(2){transform:rotate(.6deg)}.step:nth-child(3){transform:rotate(-.5deg)}.step:before{content:counter(step);position:absolute;left:18px;top:20px;width:36px;height:36px;display:grid;place-items:center;font-family:var(--font-display-stack);font-size:18px;color:oklch(97% .02 40);background:var(--cham);border-radius:50%}.step:nth-child(2):before{background:var(--nghe-deep)}.step:nth-child(3):before{background:var(--son)}.step h3{font-size:18px;margin-bottom:6px}.step p{font-size:15px;color:var(--ink-soft)}.rules-teaser{margin-top:clamp(56px,10vh,110px);background:var(--paper-deep);border-radius:var(--radius-lg);padding:clamp(24px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:var(--sp-lg);gap:var(--sp-lg);align-items:center}.rules-teaser p{color:var(--ink-soft);margin-top:var(--sp-xs)}.site-footer{max-width:1120px;margin:0 auto;padding:var(--sp-xl) clamp(16px,4vw,40px) var(--sp-2xl);color:var(--ink-faint);font-size:14px;display:flex;flex-wrap:wrap;gap:var(--sp-xs) var(--sp-lg);justify-content:space-between}.board-frame{background:var(--card);border-radius:var(--radius-lg);padding:clamp(8px,2vw,16px);box-shadow:var(--shadow-soft);border:1.5px solid var(--line)}.board-svg{display:block;width:100%;height:auto;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.board-svg .grid-line{stroke:oklch(58% .05 60);stroke-width:2.5;stroke-linecap:round;fill:none}.board-svg .grid-dot{fill:oklch(58% .05 60)}.piece{transition:transform .38s var(--ease-out);will-change:transform}.piece-body{transform-box:fill-box;transform-origin:center}.piece-flip .piece-body{animation:cap-flip .55s var(--ease-out) both;animation-delay:var(--flip-delay,.12s)}@keyframes cap-flip{0%{transform:scaleX(1)}45%{transform:scaleX(.06) translateY(-6px)}to{transform:scaleX(1)}}.piece-selected .piece-body{transform:scale(1.14)}.piece.piece-mine-turn{cursor:pointer}.hint-dot{fill:var(--nghe-deep);opacity:.85;animation:hint-pulse 1.3s ease-in-out infinite;pointer-events:none}.hint-ring{fill:none;stroke:var(--nghe-deep);stroke-width:3;stroke-dasharray:5 5;animation:hint-spin 5s linear infinite,hint-pulse 1.3s ease-in-out infinite;transform-box:fill-box;transform-origin:center;pointer-events:none}@keyframes hint-pulse{0%,to{opacity:.9}50%{opacity:.45}}@keyframes hint-spin{to{transform:rotate(1turn)}}.lastmove-mark{fill:oklch(58% .05 60/.22)}.hit-area{fill:transparent;cursor:pointer}.hit-area.hit-disabled{cursor:default}.room-shell{max-width:1060px;margin:0 auto;padding:0 clamp(12px,3vw,32px) var(--sp-2xl)}.room-top{justify-content:space-between;gap:var(--sp-sm);padding:var(--sp-sm) 0 var(--sp-md)}.room-top,.room-top-side{display:flex;align-items:center}.room-top-side{gap:var(--sp-xs)}.room-code-chip{font-weight:700;letter-spacing:.12em;cursor:pointer;border:1.5px solid var(--line);background:var(--card);transition:background .15s}.room-code-chip:hover{background:var(--paper-deep)}.room-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:var(--sp-md);gap:var(--sp-md);justify-items:center}.room-board-col{grid-gap:var(--sp-sm);gap:var(--sp-sm)}.room-board-col,.room-side-col{width:100%;max-width:560px;display:grid}.room-side-col{grid-gap:var(--sp-md);gap:var(--sp-md);align-content:start}@media (min-width:920px){.room-grid{grid-template-columns:minmax(0,560px) minmax(260px,330px);align-items:start;justify-content:center;gap:var(--sp-xl)}.room-side-col{max-width:none}}.plate{display:flex;align-items:center;gap:var(--sp-sm);background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-md);padding:10px 14px;position:relative;transition:box-shadow .25s,border-color .25s,background .25s}.plate-active{border-color:var(--nghe-deep);box-shadow:0 0 0 3px oklch(82% .145 88/.4),var(--shadow-soft)}.plate-avatar{width:40px;height:40px;flex:none}.plate-name{font-weight:700;font-size:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:24ch}.plate-sub{font-size:13px;color:var(--ink-faint);font-weight:500}.plate-caps{margin-left:auto;display:flex;align-items:center;gap:3px;flex:none}.plate-cap-dot{width:11px;height:11px;border-radius:50%;transition:transform .3s var(--ease-out),opacity .3s}.plate-cap-count{font-size:13.5px;font-weight:700;color:var(--ink-soft);margin-left:4px;min-width:2ch}.turn-tag{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--nghe-deep);background:oklch(82% .145 88/.3);border-radius:999px;padding:3px 10px;margin-left:8px}.emote-bubble{position:absolute;top:-18px;right:14px;font-size:26px;background:var(--card);border:1.5px solid var(--line);border-radius:14px 14px 14px 4px;padding:4px 10px;box-shadow:var(--shadow-soft);animation:emote-pop .35s var(--ease-out) both}@keyframes emote-pop{0%{transform:scale(.4) translateY(8px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.status-bar{min-height:46px;display:flex;align-items:center;justify-content:center;gap:var(--sp-xs);text-align:center;font-weight:600;color:var(--ink-soft);font-size:15.5px}.status-forced{color:var(--nghe-deep)}.action-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-sm);flex-wrap:wrap}.emote-row{display:flex;gap:4px}.emote-btn{font-size:20px;background:transparent;border:none;border-radius:10px;padding:6px 8px;transition:transform .15s var(--ease-out),background .15s}.emote-btn:hover{transform:scale(1.25) rotate(-6deg);background:oklch(31% .045 55/.05)}.game-log{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-md);padding:var(--sp-sm) var(--sp-md);display:grid;grid-gap:6px;gap:6px;font-size:14px;color:var(--ink-soft);max-height:180px;overflow-y:auto}.game-log-entry{display:flex;gap:8px;align-items:baseline}.game-log-entry .who-R{color:var(--son);font-weight:700}.game-log-entry .who-B{color:var(--cham);font-weight:700}.game-log-entry em{font-style:normal;color:var(--nghe-deep);font-weight:700}.invite-card{background:var(--card);border:1.5px solid var(--line);border-radius:var(--radius-lg);padding:var(--sp-lg);display:grid;grid-gap:var(--sp-md);gap:var(--sp-md);text-align:center;justify-items:center}.invite-card h2{font-size:22px}.invite-card>p{color:var(--ink-soft);font-size:15px}.invite-code{font-family:var(--font-display-stack);font-size:clamp(30px,7vw,40px);letter-spacing:.18em;color:var(--cham);background:var(--cham-tint);border-radius:var(--radius-md);padding:8px 20px 8px 26px}.invite-link-row{display:flex;gap:var(--sp-xs);width:100%;max-width:420px}.invite-link-row .input{font-size:13.5px;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis}.invite-qr{background:white;padding:10px;border-radius:var(--radius-md);border:1.5px solid var(--line);line-height:0}.waiting-dots:after{content:"";animation:dots 1.6s steps(4) infinite}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}.end-banner{background:var(--card);border:2px solid var(--nghe-deep);border-radius:var(--radius-lg);box-shadow:var(--shadow-lift);padding:var(--sp-lg) var(--sp-xl);display:grid;grid-gap:var(--sp-sm);gap:var(--sp-sm);justify-items:center;text-align:center;animation:banner-in .5s var(--ease-out) both}.end-banner h2{font-size:clamp(26px,5vw,36px)}.end-banner .end-sub{color:var(--ink-soft)}.end-actions{display:flex;flex-wrap:wrap;justify-content:center}.end-actions,.rematch-inline{gap:var(--sp-sm);margin-top:var(--sp-xs)}.rematch-inline{display:grid;grid-gap:var(--sp-sm);justify-items:center;animation:banner-in .3s var(--ease-out) both}.rematch-inline p{font-weight:700;color:var(--nghe-deep)}.rematch-inline .end-actions{margin-top:0}@keyframes banner-in{0%{transform:translateY(14px) scale(.96);opacity:0}to{transform:none;opacity:1}}.confetti-cap{position:fixed;top:-30px;width:16px;height:16px;border-radius:50%;z-index:60;animation:cap-fall linear both;pointer-events:none}@keyframes cap-fall{to{transform:translateY(110vh) rotateX(9turn) rotate(540deg)}}.offer-toast{position:fixed;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));margin:0 auto;max-width:440px;background:var(--ink);color:var(--paper);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);padding:var(--sp-sm) var(--sp-md);display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-sm);z-index:50;animation:banner-in .35s var(--ease-out) both}.offer-toast span{flex:1 1 100%;font-weight:600}.offer-toast .btn{flex:1 1}.conn-banner{background:var(--nghe);color:oklch(34% .07 70);border-radius:var(--radius-md);padding:10px 16px;font-weight:600;font-size:14.5px;text-align:center}.conn-banner.conn-bad{background:var(--son-tint);color:var(--son-deep)}.hero-oq{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.hero-board-wrap-oq{transform:rotate(-1.2deg)}.game-feature+.game-feature{margin-top:var(--sp-lg)}.game-feature-media-oq{background:var(--cham-tint);background-image:repeating-linear-gradient(-45deg,oklch(44% .1 262/.05) 0 10px,transparent 10px 20px)}.game-feature-media-oq .sketch-svg{max-width:220px}.game-name-oq{color:var(--cham)}.oq-svg{background:radial-gradient(120% 90% at 50% 10%,oklch(97% .018 92/.9),transparent 70%),oklch(93.5% .03 86);border-radius:var(--radius-md)}.oq-svg[data-layout=portrait]{width:100%;height:min(68dvh,600px)}.oq-lines path{fill:none;stroke:oklch(58% .05 60);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.oq-cell-base{transition:fill .2s}.oq-cell-R{fill:oklch(93% .032 32/.55)}.oq-cell-B{fill:oklch(93% .026 262/.55)}.oq-zone-quan{fill:oklch(90% .07 88/.32)}.oq-cell-ready{fill:oklch(82% .145 88/.28);animation:oq-ready-pulse 1.6s ease-in-out infinite;pointer-events:none}.oq-cell-selected{fill:oklch(82% .145 88/.5);stroke:var(--nghe-deep);stroke-width:2.5;stroke-dasharray:7 6;pointer-events:none}@keyframes oq-ready-pulse{0%,to{fill-opacity:1}50%{fill-opacity:.45}}.oq-flash path,.oq-flash rect{fill:var(--nghe);animation:oq-flash-fade .9s var(--ease-out) both;pointer-events:none}@keyframes oq-flash-fade{0%{opacity:.95}to{opacity:0}}.oq-quan-shadow{fill:oklch(36% .055 60)}.oq-quan-body{fill:oklch(48% .075 62)}.oq-quan-ghost{fill:none;stroke:var(--ink-faint);stroke-width:1.8;stroke-dasharray:4 5;opacity:.55}.oq-stone-glint{fill:oklch(99% .005 90);opacity:.4}.oq-stone{stroke:oklch(30% .04 60/.25);stroke-width:.8}.oq-drop{animation:oq-drop-in var(--sow-ms,.44s) var(--ease-out) both}@keyframes oq-drop-in{0%{transform:translateY(-24px);opacity:0}45%{opacity:1}78%{transform:translateY(1.5px)}to{transform:translateY(0)}}.oq-land{fill:none;stroke:var(--nghe-deep);stroke-width:3;transform-box:fill-box;transform-origin:center;animation:oq-land-ring calc(var(--sow-ms, .44s) * 1.5) var(--ease-out) both;pointer-events:none}@keyframes oq-land-ring{0%{transform:scale(.35);opacity:.85}to{transform:scale(1.12);opacity:0}}.oq-pick{fill:none;stroke:var(--ink-soft);stroke-width:2.5;transform-box:fill-box;transform-origin:center;animation:oq-pick-ring .55s var(--ease-out) both;pointer-events:none}@keyframes oq-pick-ring{0%{transform:scale(1.15);opacity:.75}to{transform:scale(.3);opacity:0}}.oq-count-bg{fill:var(--card);stroke:var(--line);stroke-width:1.5}.oq-count-text{font-family:var(--font-body-stack);font-size:14.5px;font-weight:700;fill:var(--ink);text-anchor:middle}.oq-count,.oq-count-text,.oq-float{pointer-events:none}.oq-float{animation:oq-float-up 1.5s var(--ease-out) both}.oq-float-text{font-family:var(--font-display-stack);font-size:21px;fill:var(--nghe-deep);text-anchor:middle;paint-order:stroke;stroke:var(--card);stroke-width:5px;stroke-linejoin:round}.oq-float-quan .oq-float-text{font-size:25px;fill:var(--son)}@keyframes oq-float-up{0%{opacity:0;transform:translateY(10px)}14%{opacity:1;transform:translateY(0)}68%{opacity:1}to{opacity:0;transform:translateY(-34px)}}.oq-hand{transition:transform .32s var(--ease-out);animation:oq-fade-in .3s var(--ease-out) both;will-change:transform}.oq-hand-bg{fill:var(--ink);stroke:var(--card);stroke-width:2}.oq-hand-pebble{fill:var(--nghe);stroke:var(--nghe-deep);stroke-width:1}.oq-hand-text{font-family:var(--font-body-stack);font-size:15px;font-weight:800;fill:var(--paper);text-anchor:middle;pointer-events:none}@keyframes oq-fade-in{0%{opacity:0}to{opacity:1}}.oq-arrow{cursor:pointer}.oq-arrow-hit{fill:transparent}.oq-arrow-bg{fill:var(--nghe);stroke:var(--nghe-deep);stroke-width:2;transition:fill .15s}.oq-arrow:hover .oq-arrow-bg{fill:oklch(86% .15 88)}.oq-arrow path{fill:oklch(34% .07 70);pointer-events:none}.oq-arrows{animation:oq-fade-in .2s var(--ease-out) both}.room-shell-oq{max-width:1200px}.room-board-col-oq{max-width:760px}@media (min-width:1080px){.room-grid-oq{grid-template-columns:minmax(0,760px) minmax(260px,330px)}}@media (min-width:920px) and (max-width:1079.9px){.room-grid-oq{grid-template-columns:minmax(0,760px)}.room-grid-oq .room-side-col{max-width:760px}}.lore{margin-top:clamp(56px,10vh,110px)}.lore-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);grid-gap:clamp(24px,4vw,56px);gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(28px,5vh,52px) 0;border-top:2px dashed var(--line)}.lore-block-flip{grid-template-columns:minmax(240px,320px) minmax(0,1fr)}.lore-block-flip .lore-text{order:2}.lore-text h3{font-size:clamp(22px,3.2vw,30px);color:var(--son);margin-bottom:var(--sp-sm)}.lore-text p{color:var(--ink-soft);font-size:16px}.lore-text p+p{margin-top:var(--sp-sm)}.lore-text strong{color:var(--ink)}.verse{margin:0;background:var(--card);border:1.5px solid var(--line);border-left:4px solid var(--nghe-deep);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:var(--sp-lg) var(--sp-lg) var(--sp-md);transform:rotate(-1.2deg);position:relative}.verse:before{content:"“";position:absolute;top:-6px;left:12px;font-family:var(--font-display-stack);font-size:44px;line-height:1;color:var(--nghe-deep);opacity:.55}.verse p{font-size:16.5px;font-style:italic;line-height:1.75;color:var(--ink)}.verse footer{margin-top:var(--sp-sm);font-size:13.5px;font-weight:600;font-style:normal;color:var(--ink-faint)}.verse-chant{background:var(--cham-tint);border-left-color:var(--cham);transform:rotate(1.4deg)}.verse-chant p{font-family:var(--font-display-stack);font-style:normal;font-size:clamp(19px,2.4vw,24px);line-height:1.5;color:var(--cham-deep)}.verse-stack{display:grid;grid-gap:var(--sp-lg);gap:var(--sp-lg)}.verse-stack .verse:nth-child(2){transform:rotate(1.1deg)}.lore-fact{background:var(--paper-deep);border-radius:var(--radius-lg);padding:var(--sp-lg) var(--sp-lg) var(--sp-xl);text-align:center;transform:rotate(1.2deg)}.lore-block-flip .lore-fact{transform:rotate(-1.2deg)}.lore-fact-no{display:block;font-family:var(--font-display-stack);font-size:clamp(56px,8vw,84px);line-height:1.05;color:var(--son)}.lore-fact p{margin:var(--sp-sm) auto 0;font-size:14.5px;color:var(--ink-soft);max-width:30ch}@media (max-width:860px){.hero-board-wrap.hero-board-wrap-oq{max-width:560px}}@media (max-width:720px){.hero-oq,.lore-block,.lore-block-flip{grid-template-columns:1fr}.lore-block-flip .lore-text{order:0}.lore-fact,.verse,.verse-chant,.verse-stack{max-width:420px;margin:0 auto;width:100%}}.rule-section.rule-section-oq,.rule-section.rule-section-oq:nth-child(2n){grid-template-columns:1fr;gap:clamp(20px,3vh,32px);justify-items:stretch}.rule-section.rule-section-oq:nth-child(2n) .rule-text{order:0}.rule-section-oq .rule-demo{max-width:660px;margin:0 auto;width:100%;transform:rotate(-.6deg)}.rule-section-oq:nth-child(2n) .rule-demo{transform:rotate(.6deg)}.rule-section-oq .verse-chant{max-width:480px;margin:0 auto;width:100%}.hero-title .nhao{color:var(--moss);display:inline-block}.logo-word .logo-word-nhao{color:var(--moss)}.game-feature-media-nhao{background:var(--moss-tint);background-image:repeating-linear-gradient(-45deg,oklch(53% .09 145/.05) 0 10px,transparent 10px 20px)}.game-feature-media-nhao .sketch-svg{max-width:220px}.game-name-nhao,.rule-text h2 .term-moss{color:var(--moss)}.piece-dying{pointer-events:none}.piece-dying .piece-body{animation:nhao-out .55s var(--ease-out) both;animation-delay:var(--die-delay,.15s)}@keyframes nhao-out{0%{transform:scale(1) translateY(0);opacity:1}38%{transform:scale(1.28) translateY(-14px) rotate(14deg);opacity:1}to{transform:scale(.15) translateY(10px) rotate(40deg);opacity:0}}.piece-ghost{pointer-events:none}.piece-ghost .piece-body{opacity:.3;filter:grayscale(.55)}.hint-prey{fill:oklch(55% .185 32/.08);stroke:var(--son);stroke-width:2.5;stroke-dasharray:5 5;animation:hint-spin 6s linear infinite,hint-pulse 1.3s ease-in-out infinite;transform-box:fill-box;transform-origin:center;pointer-events:none}.hint-dot-jump{fill:var(--moss)}.hint-jump-ring{stroke:var(--moss);stroke-width:2.5;opacity:.7;animation:hint-pulse 1.3s ease-in-out infinite}.hint-jump-ring,.move-trail{fill:none;pointer-events:none}.move-trail{stroke:var(--nghe-deep);stroke-width:3;stroke-dasharray:4 8;stroke-linecap:round;stroke-linejoin:round;opacity:.55}.chain-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-xs) var(--sp-sm);background:var(--nghe);color:oklch(34% .07 70);border-radius:var(--radius-md);padding:8px 14px;margin-top:var(--sp-sm);font-weight:700;font-size:14.5px;text-align:center;animation:banner-in .3s var(--ease-out) both}.chain-bar-btns{display:flex;gap:var(--sp-xs)}.hero-title .cho{display:inline-block}.hero-title .cho,.logo-word .logo-word-cho{color:var(--nghe-deep)}.hero-board-wrap-cho{transform:rotate(-1.4deg)}.hero-board-wrap-cho:after{content:"cờ chó"}.hero-board-wrap-nhao:after{content:"cờ nhào"}.game-feature-media-cho{background:oklch(82% .145 88/.22);background-image:repeating-linear-gradient(-45deg,oklch(58% .125 70/.06) 0 10px,transparent 10px 20px)}.game-feature-media-cho .sketch-svg{max-width:220px}.game-name-cho,.rule-text h2 .term-nghe{color:var(--nghe-deep)}.cho-yard{fill:oklch(82% .145 88/.16);stroke:none}.cho-paw{fill:oklch(58% .125 70/.35)}.kennel-line{stroke:var(--son);stroke-width:3;stroke-dasharray:3 8;stroke-linecap:round;fill:none;opacity:.75}.kennel-warn{stroke:var(--son);stroke-width:4;stroke-dasharray:2 10;stroke-linecap:round;fill:none;opacity:.4;pointer-events:none}.kennel-body{fill:var(--card)}.kennel-body,.kennel-roof{stroke:var(--nghe-deep);stroke-width:2.5}.kennel-roof{fill:var(--nghe);stroke-linejoin:round}.kennel-door{fill:var(--ink);opacity:.82}.dog-head{fill:var(--nghe);stroke:var(--nghe-deep);stroke-width:2}.dog-ear{fill:var(--nghe-deep)}.dog-muzzle{fill:var(--card)}.dog-eye,.dog-nose{fill:var(--ink)}.cho-dog{transform-box:fill-box;transform-origin:center}.cho-kennel-barking .cho-dog{animation:dog-bark .3s ease-in-out 3}@keyframes dog-bark{0%,to{transform:translateY(0)}50%{transform:translateY(-5px) rotate(-4deg)}}.bark-bubble{pointer-events:none;animation:bark-pop .28s var(--ease-out) both}.bark-bubble-bg{fill:var(--card);stroke:var(--son);stroke-width:2.5}.bark-bubble-text{font-family:var(--font-display-stack);font-size:19px;fill:var(--son-deep);text-anchor:middle}@keyframes bark-pop{0%{opacity:0;transform:translateY(6px) scale(.85);transform-box:fill-box;transform-origin:center}to{opacity:1;transform:none}}.rules-main{max-width:880px;margin:0 auto;padding:0 clamp(16px,4vw,40px) var(--sp-4xl)}.rules-hero{padding:clamp(8px,3vh,40px) 0 clamp(24px,5vh,56px)}.rules-hero h1{font-size:clamp(38px,7vw,64px)}.rules-hero p{margin-top:var(--sp-md);font-size:17.5px;color:var(--ink-soft)}.rule-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,300px);grid-gap:clamp(20px,4vw,48px);gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(28px,5vh,52px) 0;border-top:2px dashed var(--line)}.rule-section:nth-child(2n){grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.rule-section:nth-child(2n) .rule-text{order:2}.rule-no{font-family:var(--font-display-stack);font-size:15px;color:var(--nghe-deep);letter-spacing:.1em}.rule-text h2{font-size:clamp(24px,3.5vw,32px);margin:6px 0 12px}.rule-text h2 .term-son{color:var(--son)}.rule-text h2 .term-cham{color:var(--cham)}.rule-text p{color:var(--ink-soft);font-size:16px}.rule-text p+p{margin-top:var(--sp-sm)}.rule-text strong{color:var(--ink)}.rule-demo{transform:rotate(-1deg)}.rule-section:nth-child(2n) .rule-demo{transform:rotate(1deg)}.demo-caption{text-align:center;font-size:13.5px;color:var(--ink-faint);font-weight:600;margin-top:var(--sp-xs)}.rules-cta{margin-top:var(--sp-2xl);text-align:center;display:grid;grid-gap:var(--sp-md);gap:var(--sp-md);justify-items:center}@media (max-width:860px){.hero{grid-template-columns:1fr}.hero-board-wrap,.hero-stack{max-width:420px;margin:0 auto;width:100%}.hero-stack-back{inset:-18px -8px auto auto}.game-feature,.mission,.rules-teaser{grid-template-columns:1fr}.game-feature-media{padding:var(--sp-lg)}}@media (max-width:720px){.rule-section,.rule-section:nth-child(2n){grid-template-columns:1fr}.rule-section:nth-child(2n) .rule-text{order:0}.rule-demo,.rule-section:nth-child(2n) .rule-demo{max-width:320px;margin:0 auto;width:100%}}@media (max-width:480px){.btn-lg{width:100%}}.hero-title .toan{color:var(--tim);display:inline-block}.logo-word .logo-word-toan{color:var(--tim)}.hero-board-wrap-toan{transform:rotate(1.2deg);max-width:440px}.hero-board-wrap-toan:after{content:"cờ toán"}.game-feature-media-toan{background:var(--tim-tint);background-image:repeating-linear-gradient(-45deg,oklch(46% .115 305/.05) 0 10px,transparent 10px 20px)}.game-feature-media-toan .sketch-svg{max-width:220px}.game-name-toan,.rule-text h2 .term-tim{color:var(--tim)}.toan-paper{fill:oklch(97.5% .012 92);stroke:none}.toan-half-r{fill:oklch(55% .185 32/.045)}.toan-half-b{fill:oklch(44% .1 262/.045)}.toan-svg .toan-grid{stroke:oklch(46% .115 305/.22);stroke-width:1.1}.toan-svg .toan-grid-edge{stroke:oklch(46% .115 305/.55);stroke-width:2.4;stroke-linecap:round}.toan-zero-cell rect{fill:oklch(82% .145 88/.18);stroke:none}.toan-zero-cell line{stroke:oklch(58% .125 70/.5);stroke-width:1.6}.toan-num{font-family:var(--font-display-stack);fill:oklch(97% .02 40);text-anchor:middle;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toan-last-from{fill:oklch(46% .115 305/.12);stroke:oklch(46% .115 305/.45);stroke-width:2;stroke-dasharray:4 5;pointer-events:none}.toan-capture-trail{stroke:var(--son);stroke-width:3;stroke-dasharray:2 8;stroke-linecap:round;opacity:.55;pointer-events:none}.toan-cap-hint{pointer-events:none}.toan-cap-line{stroke:var(--son);stroke-width:2.5;stroke-dasharray:3 7;stroke-linecap:round;opacity:.5}.toan-cap-ring{fill:oklch(55% .185 32/.1);stroke:var(--son);stroke-width:3;stroke-dasharray:6 5;animation:hint-spin 6s linear infinite,hint-pulse 1.3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.toan-eq-badge{fill:var(--card);stroke:var(--tim);stroke-width:2}.toan-eq-text{font-family:var(--font-display-stack);font-size:14px;fill:var(--tim-deep);text-anchor:middle;pointer-events:none}.toan-last-eq{animation:toan-eq-pop .35s var(--ease-out) both;pointer-events:none}@keyframes toan-eq-pop{0%{opacity:0;transform:translateY(6px)}to{opacity:1}}.toan-score{display:flex;align-items:center;gap:var(--sp-sm);padding:2px 6px;min-height:30px}.toan-score-track{position:relative;flex:none;width:132px;height:22px;background:var(--paper-deep);border:1.5px solid var(--line);border-radius:999px;overflow:hidden}.toan-score-fill{position:absolute;inset:0 auto 0 0;background:oklch(46% .115 305/.3);border-radius:999px;transition:width .5s var(--ease-out)}.toan-score-label{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--tim-deep);letter-spacing:.04em}.toan-score-caps{display:flex;flex-wrap:wrap;gap:4px;align-items:center;min-width:0}.toan-score-empty{font-size:12.5px;color:var(--ink-faint);font-weight:500}.toan-trophy{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-family:var(--font-display-stack);font-size:12px;color:oklch(97% .02 40);animation:toan-trophy-pop .4s var(--ease-out) both}.toan-trophy-R{background:var(--cham);box-shadow:inset 0 0 0 2px var(--cham-deep)}.toan-trophy-B{background:var(--son);box-shadow:inset 0 0 0 2px var(--son-deep)}@keyframes toan-trophy-pop{0%{transform:scale(.3);opacity:0}to{transform:scale(1);opacity:1}}.rule-section.rule-section-toan{grid-template-columns:minmax(0,1fr) minmax(260px,330px)}.rule-section.rule-section-toan:nth-child(2n){grid-template-columns:minmax(260px,330px) minmax(0,1fr)}@media (max-width:720px){.rule-section.rule-section-toan,.rule-section.rule-section-toan:nth-child(2n){grid-template-columns:1fr}.rule-section-toan .rule-demo{max-width:340px;margin:0 auto;width:100%}}@media (max-width:919px){.room-grid-waiting .room-side-col{order:-1}}