@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);--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}.logo-word em{font-style:normal;color:var(--son)}.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}.hero-actions{display:flex;flex-wrap:wrap;gap:var(--sp-sm);align-items:stretch}.join-row{display:flex;gap:var(--sp-xs)}.join-row .input{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:16px}.hero-board-wrap{position:relative;transform:rotate(1.6deg)}.hero-board-wrap:after{content:"Cờ gánh";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}.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)}.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{max-width:420px;margin:0 auto;width:100%}.rules-teaser{grid-template-columns:1fr}}@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-actions{flex-direction:column}}