.app-surface.is-lobby:has(.hero-atmosphere[data-motion]):before{display:none}.app-surface.is-lobby .app-header--lobby{background:#0316109e}.app-surface.is-lobby{--lobby-motion-fast:.18s;--lobby-motion-ease:cubic-bezier(.2, .65, .3, 1)}.hero-atmosphere{z-index:-1;height:var(--lobby-hero-height,358px);pointer-events:none;-webkit-user-select:none;user-select:none;contain:paint;position:absolute;inset:0 0 auto;overflow:hidden}.hero-scene-position{transform:translate3d(var(--hero-scene-x,0px), var(--hero-scene-y,0px), 0);position:absolute;inset:-6px}.hero-scene{object-fit:cover;object-position:center;filter:brightness(.86)saturate(.88);--atmo-animation:hero-scene-drift 16s ease-in-out infinite alternate;width:100%;height:100%;display:block}.hero-sunlight-position{width:clamp(440px,58vw,820px);height:520px;transform:translate3d(calc((var(--hero-light-x,58vw) - 58vw) * .08), calc((var(--hero-light-y,154px) - 154px) * .08), 0) translate(-50%, -50%);position:absolute;top:38%;left:58%}.hero-sunlight{object-fit:fill;opacity:.035;mix-blend-mode:screen;--atmo-animation:hero-light-breathe 17s ease-in-out infinite;width:100%;height:100%;display:block;-webkit-mask-image:radial-gradient(#000 30%,#0000 70%);mask-image:radial-gradient(#000 30%,#0000 70%)}.app-surface .hero-atmosphere[data-enabled=true] .hero-motion-layer{animation:var(--atmo-animation)!important;animation-play-state:paused!important}.app-surface .hero-atmosphere[data-enabled=true]:is([data-motion=interactive],[data-motion=ambient]) .hero-motion-layer{animation-play-state:running!important}.app-surface .hero-atmosphere[data-enabled=false] .hero-motion-layer{animation:none!important}@keyframes hero-scene-drift{0%{transform:translate(-2px,1px)scale(1.008)}to{transform:translate(2px,-1px)scale(1.015)}}@keyframes hero-light-breathe{0%,to{opacity:.025;transform:translate(-25px,10px)rotate(-8deg)scale(.92,1.04)}23%{opacity:.045;transform:translate(8px,-18px)rotate(-2deg)scale(1.05,.94)}57%{opacity:.035;transform:translate(30px,5px)rotate(7deg)scale(.96,1.09)}81%{opacity:.055;transform:translate(-7px,20px)rotate(1deg)scale(1.08,.98)}}.app-surface.is-lobby .portal-card-grid .game-card{transition:border-color var(--lobby-motion-fast), box-shadow var(--lobby-motion-fast)}.app-surface.is-lobby .portal-card-grid .game-card:hover{transform:none}.app-surface.is-lobby .portal-card-grid .game-card-art img{transition:transform .48s var(--lobby-motion-ease), filter .48s var(--lobby-motion-ease)}.app-surface.is-lobby :is(.play-mode,.portal-hero-actions>button,.quick-game-trigger){transition:background var(--lobby-motion-fast), box-shadow var(--lobby-motion-fast), border-color var(--lobby-motion-fast), transform var(--lobby-motion-fast) var(--lobby-motion-ease)}@media (width<=620px){.hero-scene{filter:brightness(.66)saturate(.88)}.hero-sunlight-position{width:500px;height:380px}}.hero-light-flex{width:100%;height:100%;transform:rotate(var(--hero-light-tilt,0deg)) scaleX(var(--hero-light-stretch,1));position:relative}.hero-light-wake-position{width:clamp(440px,52vw,720px);height:460px;transform:translate3d(calc((var(--hero-wake-x,58vw) - 58vw) * .08), calc((var(--hero-wake-y,154px) - 154px) * .08), 0) translate(-50%, -50%);position:absolute;top:38%;left:58%}.hero-light-wisp,.hero-light-ribbon,.hero-light-caustic{mix-blend-mode:screen;opacity:.06;position:absolute;inset:0}.hero-light-wisp{--atmo-animation:hero-wisp-flow 13s -4s ease-in-out infinite;background:url(/assets/img/jade/hero-sunlight.webp) 50%/contain no-repeat}.hero-light-ribbon{--atmo-animation:hero-ribbon-flow 19s -9s ease-in-out infinite;background:url(/assets/img/jade/hero-sunlight.webp) 50%/contain no-repeat}.hero-light-caustic{--atmo-animation:hero-caustic-flow 11s -2s ease-in-out infinite;background:url(/assets/img/jade/hero-sunlight.webp) 50%/contain no-repeat}@keyframes hero-wisp-flow{0%,to{opacity:.04;transform:translate(-42px,18px)rotate(-12deg)scale(.9,1.1)}32%{opacity:.08;transform:translate(22px,-22px)rotate(9deg)scale(1.14,.8)}71%{opacity:.055;transform:translate(48px,24px)rotate(-4deg)scale(.92,1.15)}}@keyframes hero-ribbon-flow{0%,to{opacity:.055;transform:translate(18px,-20px)rotate(30deg)scale(.8,1.15)}38%{opacity:.09;transform:translate(-30px,12px)rotate(44deg)scale(1.3,.9)}76%{opacity:.038;transform:translate(32px,20px)rotate(24deg)scale(.95,1.08)}}@keyframes hero-caustic-flow{0%,to{opacity:.035;transform:translate(20px,-12px)rotate(-28deg)scale(.85,1.2)}45%{opacity:.085;transform:translate(-24px,20px)rotate(-15deg)scale(1.2,.8)}78%{opacity:.048;transform:translate(-8px,-22px)rotate(-36deg)scale(.96,1.05)}}@media (width<=620px){.hero-light-wake-position{opacity:.65;width:420px;height:340px}}.app-surface.is-lobby .hero-atmosphere{width:100%;height:100dvh;position:fixed;inset:0}.app-surface.is-lobby .hero-scene-position{inset:-20px;transform:none}.app-surface.is-lobby .hero-scene{object-position:center center;filter:brightness(.84)saturate(.94);--atmo-animation:lobby-room-drift 28s ease-in-out infinite alternate}.app-surface.is-lobby .hero-atmosphere:after{content:"";background:linear-gradient(#02120d14,#02120d38 36%,#02120d75);position:absolute;inset:0}.app-surface.is-lobby .hero-sunlight-position{width:min(85vw,1500px);height:95vh;top:36%;left:62%;transform:translate(-50%,-50%)}.app-surface.is-lobby .hero-light-wake-position{width:min(100vw,1600px);height:100vh;top:58%;left:48%;transform:translate(-50%,-50%)}.app-surface.is-lobby .hero-light-flex{transform:none}@keyframes lobby-room-drift{0%{transform:translate(-6px,3px)scale(1)}to{transform:translate(6px,-3px)scale(1.012)}}@media (width<=620px){.app-surface.is-lobby .hero-scene{filter:brightness(.7)saturate(.9)}}.app-surface .modal-panel.match-setup-dialog{width:min(680px,100%);max-height:calc(100dvh - 32px)}.match-setup-dialog>.modal-header,.match-setup-dialog>.modal-footer{flex-shrink:0}.match-setup-dialog>.modal-content{overscroll-behavior:contain;gap:24px;min-height:0;display:grid}.match-setup-dialog fieldset{border:0;min-width:0;margin:0;padding:0}.match-setup-dialog legend,.match-setup-dialog .panel-label{color:var(--jade-text);margin:0 0 12px;padding:0;font-size:14px;font-weight:600;display:block}.match-setup-game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.match-setup-game{min-width:0;min-height:64px;color:var(--jade-text);background:var(--jade-deep);border:1px solid var(--jade-line-soft);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px;font-size:14px;display:flex;position:relative}.match-setup-game img{object-fit:cover;border-radius:5px;flex-shrink:0;width:40px;height:40px}.match-setup-game:hover{border-color:var(--jade-gold)}.match-setup-game:has(input:checked){background:var(--jade-raised);border-color:var(--jade-gold)}.match-setup-game:has(input:focus-visible){outline:2px solid var(--jade-gold-bright);outline-offset:3px}.match-setup-check{color:var(--jade-gold-bright);visibility:hidden;flex-shrink:0;margin-left:auto}.match-setup-game:has(input:checked) .match-setup-check{visibility:visible}.match-setup-variant-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.match-setup-variant-options .match-setup-game{min-height:48px}.match-setup-dialog .matchmaking-intro{border-top:1px solid var(--jade-line-soft);color:var(--jade-muted);gap:12px;padding:20px 0 0;line-height:1.6;display:grid}.match-setup-dialog .setup-side{background:0 0;border:0;margin:0;padding:0}.match-setup-dialog .select-field select{width:100%;min-height:48px;font-size:16px}.match-setup-dialog .setup-hint,.match-setup-dialog .matchmaking-intro strong{margin:0;font-size:14px;font-weight:400}.match-setup-dialog .modal-footer button{min-height:48px}@media (width<=620px){.match-setup-game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.match-setup-dialog>.modal-content{gap:20px}.match-setup-dialog .modal-footer button{flex:1;min-width:0}}@media (width<=360px){.match-setup-game{gap:6px;min-height:54px;padding:8px}.match-setup-game img{display:none}}.app-surface .lobby-showcase .portal-hero{min-height:0;padding-block:20px}.app-surface .lobby-showcase .portal-hero h1{font-size:clamp(32px,3.8vw,54px)}.showcase-games{padding:18px 0 24px}.showcase-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;display:grid}.app-surface .showcase-tab{border:1px solid var(--jade-line-soft);background:var(--jade-deep);min-width:0;color:var(--jade-text);cursor:pointer;border-radius:9px;flex-direction:column;align-items:stretch;padding:0;display:flex;position:relative;overflow:hidden}.showcase-tab img{object-fit:cover;width:100%;height:100px;display:block}.showcase-tab span{min-height:44px;font:500 clamp(16px, 1.8vw, 23px)/1.25 var(--jade-display);flex:1;place-items:center;padding:6px;display:grid}.app-surface .showcase-tab:hover{border-color:var(--jade-gold);background:var(--jade-raised)}.app-surface .showcase-tab[aria-selected=true]{border-color:var(--jade-gold-bright);box-shadow:inset 0 -3px var(--jade-gold-bright), 0 4px 20px #000a064d;color:var(--jade-gold-bright)}.showcase-panel{border:1px solid var(--jade-line-soft);background:var(--jade-deep);border-radius:12px;grid-template-columns:1.25fr 1fr;gap:32px;min-height:390px;margin-top:16px;padding:20px;display:grid}.showcase-art{border-radius:8px;min-width:0;min-height:0;overflow:hidden}.showcase-art img{object-fit:cover;width:100%;height:100%;min-height:348px;display:block}.showcase-content{flex-direction:column;justify-content:center;min-width:0;padding:4px 4px 4px 0;display:flex}.app-surface .showcase-content h2{color:var(--jade-gold-bright);font:500 clamp(30px, 3.2vw, 44px)/1.15 var(--jade-display);margin:0 0 20px}.showcase-variants{border:0;min-width:0;margin:0;padding:0}.showcase-variants legend{color:var(--jade-text);margin-bottom:10px;padding:0;font-size:15px}.showcase-variants>div{border-bottom:1px solid var(--jade-line-soft);flex-wrap:wrap;gap:4px 24px;display:flex}.showcase-variant{cursor:pointer;min-width:0;display:flex;position:relative}.showcase-variant input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.showcase-variant span{text-align:center;width:100%;min-height:44px;color:var(--jade-muted);border-bottom:3px solid #0000;place-items:center;padding:8px 4px 12px;font-size:17px;line-height:1.3;display:grid}.showcase-variant input:checked+span{color:var(--jade-gold-bright);border-bottom-color:var(--jade-gold-bright);font-weight:700}.showcase-variant input:focus-visible+span{outline:2px solid var(--jade-gold-bright);outline-offset:3px}.showcase-variant:hover span{color:var(--jade-gold-bright);border-bottom-color:var(--jade-gold)}.showcase-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px;display:grid}.app-surface .showcase-actions a{text-align:center;border-radius:8px;justify-content:center;align-items:center;gap:10px;min-height:54px;padding:12px;font-size:18px;line-height:1.3;text-decoration:none;display:flex}.showcase-actions .lobby-icon{flex:0 0 24px;width:24px;height:24px}.showcase-hint,.showcase-description{color:var(--jade-muted);margin:12px 0 0;font-size:14px;line-height:1.5}.showcase-description{margin:0 0 14px;font-size:17px}.showcase-extras{border-top:1px solid var(--jade-line-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px;padding-top:18px;display:grid}.showcase-extras a{min-height:44px;color:var(--jade-gold-bright);font:500 22px/1.3 var(--jade-display);justify-content:space-between;align-items:center;gap:8px;text-decoration:none;display:flex}.showcase-extras a:hover{color:var(--jade-text)}.showcase-extras .lobby-icon{flex:0 0 20px;width:20px;height:20px}@media (width<=1000px){.showcase-tabs{gap:10px}.showcase-tab img{height:76px}.showcase-panel{grid-template-columns:1fr 1fr;gap:20px;padding:16px}.app-surface .showcase-actions a{gap:7px;padding-inline:8px;font-size:16px}}@media (width>=761px) and (height<=800px){.app-surface .lobby-showcase .portal-hero{padding-block:12px}.app-surface .lobby-showcase .portal-hero h1{font-size:clamp(32px,3.8vw,40px)}.app-surface .lobby-showcase .portal-hero-desc{margin-top:8px}.showcase-games{padding-block:10px 16px}.showcase-tab img{height:72px}.showcase-panel{min-height:0;margin-top:12px;padding:16px}.showcase-art img{min-height:280px}.app-surface .showcase-content h2{margin-bottom:12px}.showcase-actions{margin-top:12px}.showcase-extras{margin-top:12px;padding-top:10px}}@media (width<=620px){.app-surface .lobby-showcase .portal-hero{gap:18px;min-height:0;padding-block:24px 20px}.app-surface .lobby-showcase .portal-hero h1{font-size:clamp(26px,6.8vw,36px)}.app-surface .lobby-showcase .portal-hero-desc{margin-top:10px}.app-surface .lobby-showcase .portal-hero-actions>button{min-height:48px}.app-surface .lobby-showcase .portal-hero-actions p{margin-top:7px}.showcase-games{padding-top:14px}.showcase-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.showcase-tab img{height:47px}.showcase-tab span{min-height:32px;padding:4px;font-size:15px}.showcase-panel{min-height:0;margin-top:12px;padding:18px 16px;display:block}.showcase-art{display:none}.showcase-content{padding:0}.app-surface .showcase-content h2{margin-bottom:16px;font-size:30px}.showcase-variant span{min-height:44px;font-size:15px}.showcase-variants legend{margin-bottom:8px;font-size:14px}.showcase-actions{margin-top:16px}.app-surface .showcase-actions a{min-height:48px;font-size:16px}.showcase-hint{margin-top:10px;font-size:14px}.showcase-extras{gap:12px;margin-top:16px;padding-top:10px}.showcase-extras a{font-size:18px}}.showcase-tab span,.showcase-variant span,.showcase-actions a,.showcase-extras a{overflow-wrap:anywhere}html:not([lang^=zh]):not([lang=ja]):not([lang=ko]) .showcase-tab span{font-family:var(--jade-font);font-size:16px}@media (width<=620px){html:not([lang^=zh]):not([lang=ja]):not([lang=ko]) .showcase-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}html:not([lang^=zh]):not([lang=ja]):not([lang=ko]) .showcase-tab span{font-size:14px}}.app-surface .lobby-showcase .portal-hero-actions{display:none}.app-surface .lobby-showcase .portal-hero{grid-template-columns:minmax(0,1fr)}.lobby-showcase .portal-hero-copy{padding-left:18px;position:relative}.lobby-showcase .portal-hero-copy:before{content:"";background:linear-gradient(transparent, var(--jade-gold-bright), transparent);width:2px;position:absolute;inset:8% auto 8% 0}.app-surface .lobby-showcase .portal-hero h1{text-shadow:0 2px 20px #000c0873}.app-surface .showcase-tab{background:linear-gradient(155deg, #163c2f, var(--jade-deep) 75%);box-shadow:inset 0 1px #f6e2b117,0 4px 12px #000a0633}.showcase-tab span{z-index:1;position:relative}.showcase-tab:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#ffefc22e 48%,#0000 70%);position:absolute;inset:0;transform:translate(-110%)}.app-surface .showcase-tab[aria-selected=true]{background:linear-gradient(155deg,#284938,#0b271e 75%)}.showcase-panel{isolation:isolate;background:radial-gradient(at 85% 0,#53714d33,#0000 65%),linear-gradient(135deg,#0c2c22,#051d16);border-color:#dcc08259;position:relative;box-shadow:inset 0 1px #f5deab1f,0 16px 40px #0009054d}.showcase-panel:before{content:"";z-index:-1;opacity:.42;pointer-events:none;border:16px solid #0000;border-image:url(/assets/img/jade/card-frame.png) 170/18px;position:absolute;inset:6px}.showcase-art{position:relative;box-shadow:0 0 0 1px #e9cc8f2e}.showcase-art:after{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(135deg,#ffe29c12,#0000 50%);position:absolute;inset:0;box-shadow:inset 0 0 32px #00120a40}.lobby-showcase .showcase-actions a{position:relative;overflow:hidden}.lobby-showcase .showcase-actions .primary-button:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 25%,#ffffeb61 48%,#0000 70%);position:absolute;inset:0;transform:translate(-110%)}.lobby-showcase .showcase-extras a{border-radius:4px}@media (prefers-reduced-motion:no-preference){html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab{transition:transform .2s,border-color .2s,box-shadow .2s}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab img,html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-extras .lobby-icon{transition:transform .24s}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-art img{animation:.28s ease-out showcase-art-reveal}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab:focus-visible:after,html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-actions .primary-button:focus-visible:after{animation:.42s ease-out showcase-light-sweep}}@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab:hover{transform:translateY(-4px);box-shadow:inset 0 -3px #efd394a6,0 10px 24px #000a0661}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab:hover img{transform:scale(1.045)}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab:hover:after,html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-actions .primary-button:hover:after{animation:.42s ease-out showcase-light-sweep}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-extras a:hover .lobby-icon{transform:translate(4px)}html:not([data-reduce-motion=true]) .lobby-showcase[data-motion=on] .showcase-tab:active{transform:translateY(-1px)}}@keyframes showcase-light-sweep{0%{transform:translate(-110%)}to{transform:translate(110%)}}@keyframes showcase-art-reveal{0%{opacity:.5;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}@font-face{font-family:XiangqiKai;src:url(/assets/fonts/chinese-chess/xiangqi-kai-subset.woff2)format("woff2");font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ui-scale:1;--ink-950:#0d0b09;--ink-900:#15110d;--ink-850:#1d1812;--ink-800:#262018;--paper:#ead9ad;--paper-soft:#bfc8bc;--font-display:XiangqiKai, "Noto Serif SC", "Songti SC", Georgia, serif;--text-muted:#adb8ad;--action-gold:#d9bb7e;--surface-line:#caa56a33;--lacquer:#a2332c;--lacquer-dark:#74231f;--jade:#4f8876;--jade-bright:#7ab49d;--copper:#c69552;--gold:#f1cf7b;--line:#e1c68b2b;--panel:#1f1a14db;--shadow:0 26px 70px #0000006b;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--radius-sm:8px;--radius-md:16px;--radius-lg:26px;font-family:Noto Sans SC,Microsoft YaHei,PingFang SC,sans-serif;font-size:calc(16px * var(--ui-scale));background:var(--ink-950);color:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:#526054 #0d1512;min-width:320px;min-height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#526054;border-radius:6px}body{background:var(--ink-950);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button,select,input{min-height:48px}button{color:inherit}button:not(:disabled){cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible,canvas:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.42}::selection{color:var(--ink-950);background:var(--gold)}.app-surface{background:radial-gradient(circle at 16% 8%, #9e432a33, transparent 31rem), radial-gradient(circle at 88% 18%, #2a675329, transparent 27rem), repeating-linear-gradient(105deg, transparent 0 19px, #ffffff03 20px), var(--ink-950);min-height:100vh;overflow:clip}.safe-zone{width:min(100% - max(2rem,8vw),1500px);margin-inline:auto}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:350;color:var(--ink-950);background:var(--gold);padding:.75rem 1rem;position:fixed;inset:1rem auto auto 1rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.eyebrow{color:var(--copper);letter-spacing:.18em;text-transform:uppercase;font-family:Georgia,Times New Roman,serif;font-size:.875rem;font-weight:700;display:block}.app-header{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;min-height:82px;display:grid}.brand{min-height:56px;color:var(--paper);text-align:left;background:0 0;border:0;justify-self:start;align-items:center;gap:.75rem;padding:.25rem;display:flex}.brand img{filter:drop-shadow(0 5px 12px #0006);width:46px;height:46px}.brand strong{letter-spacing:.08em;font-family:Georgia,Times New Roman,serif;font-size:1.05rem;display:block}.brand small{color:var(--paper-soft);margin-top:3px;font-size:.875rem;display:block}.app-header nav{align-items:center;gap:.25rem;display:flex}.app-header nav button{color:var(--paper-soft);background:0 0;border:0;padding:0 1.1rem}.app-header nav button:hover{color:var(--gold)}.header-actions{justify-content:flex-end;align-items:center;gap:.75rem;display:flex}.locale-select select{min-width:126px;color:var(--paper);border:1px solid var(--line);background:var(--ink-850);border-radius:999px;padding:0 2rem 0 .85rem}.account-button{border:1px solid var(--line);background:#ffffff09;border-radius:999px;align-items:center;gap:.5rem;padding:.25rem .8rem .25rem .3rem;display:flex}.account-button span{width:38px;height:38px;color:var(--ink-950);background:var(--jade-bright);border-radius:50%;place-items:center;font-family:XiangqiKai,serif;font-size:1.3rem;display:grid}.account-button .account-login-icon{color:#efd18b;flex:none;width:38px;height:38px;display:block;overflow:visible}.account-login-icon-surface{fill:#08120ff0;stroke:#e0c07ab3;stroke-width:1.4px}.account-login-icon-person{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.account-button b{font-size:.9rem}.lobby{padding-block:clamp(2.5rem,7vw,7rem) 6rem}.hero{grid-template-columns:minmax(0,1.25fr) minmax(230px,.75fr);align-items:center;gap:clamp(2rem,8vw,9rem);min-height:430px;display:grid;position:relative}.hero:before{content:"";aspect-ratio:1;pointer-events:none;border:1px solid #e1c68b14;border-radius:50%;width:62%;position:absolute;top:-45%;left:-24%;box-shadow:0 0 0 70px #e1c68b05,0 0 0 140px #e1c68b03}.hero-copy{z-index:1;position:relative}.hero h1{letter-spacing:-.035em;text-wrap:balance;max-width:900px;margin:.7rem 0 1.25rem;font-family:XiangqiKai,Songti SC,Georgia,serif;font-size:clamp(3.1rem,7.6vw,7.4rem);font-weight:500;line-height:.98}.hero p{max-width:700px;color:var(--paper-soft);margin:0;font-family:Songti SC,Georgia,serif;font-size:clamp(1.1rem,1.5vw,1.35rem);line-height:1.8}.hero-actions{flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:2rem;display:flex}.primary-button,.danger-button,.ghost-button{border-radius:var(--radius-sm);letter-spacing:.04em;min-height:52px;padding:.8rem 1.35rem;font-weight:800}.primary-button{color:#142019;border:1px solid var(--action-gold);background:linear-gradient(135deg,#e2c88e,#c5a365);justify-content:center;align-items:center;gap:.7rem;transition:background .16s,transform .16s;display:inline-flex;box-shadow:0 6px 18px #00000029}.primary-button:hover{filter:brightness(1.06);transform:translateY(-1px)}.ghost-button{border:1px solid var(--line);background:#ffffff0a}.danger-button{background:#711f1d;border:1px solid #b5453c}.live-pill{color:var(--paper-soft);align-items:center;gap:.6rem;font-size:.9rem;display:inline-flex}.live-pill i,.match-status i{background:var(--jade-bright);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 5px #569b821f}.hero-seal{aspect-ratio:1;background:radial-gradient(circle,#9c312836,#0000 68%);border:1px solid #e1c68b21;border-radius:50%;justify-self:center;place-items:center;width:min(27vw,340px);display:grid;position:relative}.hero-seal:before,.hero-seal:after{content:"";border:1px dashed #e1c68b29;border-radius:50%;position:absolute;inset:12%}.hero-seal:after{border-style:solid;inset:25%}.hero-seal>span{color:var(--lacquer);text-shadow:0 8px 40px #a02c2552;font-family:XiangqiKai,serif;font-size:clamp(7rem,15vw,12rem)}.hero-seal small{color:var(--paper-soft);letter-spacing:.12em;font-family:Georgia,serif;line-height:1.3;position:absolute;bottom:16%;right:7%}.game-gallery{margin-top:2rem}.section-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:2rem;padding-bottom:1.3rem;display:flex}.section-heading h2{margin:.3rem 0 0;font-family:XiangqiKai,serif;font-size:clamp(2rem,4vw,3.8rem);font-weight:500}.section-heading p{max-width:400px;color:var(--paper-soft);text-align:right;margin:0}.game-grid{background:var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:1px;display:grid}.game-card{background:var(--ink-900);min-width:0;animation:.22s ease-out both card-enter;animation-delay:calc(var(--card-index) * 35ms)}.game-card-art{aspect-ratio:16/10;background:#271c14;position:relative;overflow:hidden}.game-card-art:after{content:"";background:linear-gradient(#0000 38%,#0a0806e0);position:absolute;inset:0}.game-card-art img{object-fit:cover;filter:sepia(.12)saturate(.8)brightness(.83);width:100%;height:100%;transition:transform .22s ease-out,filter .22s ease-out}.game-card:hover img{filter:sepia(0)saturate(.95)brightness(.95);transform:scale(1.035)}.game-card-number{z-index:1;color:#ffffffb3;font-family:Georgia,serif;font-size:1rem;position:absolute;inset:1rem 1rem auto auto}.game-card-kicker{z-index:1;color:var(--gold);letter-spacing:.12em;font-family:XiangqiKai,serif;font-size:1.1rem;position:absolute;inset:auto auto 1rem 1rem}.game-card-copy{flex-direction:column;min-height:220px;padding:1.5rem;display:flex}.game-card h3{margin:0;font-family:XiangqiKai,Songti SC,serif;font-size:2rem;font-weight:500}.game-card p{color:var(--paper-soft);flex:1;margin:.75rem 0 1.2rem;line-height:1.7}.text-button{min-height:48px;color:var(--gold);background:0 0;border:0;align-self:flex-start;align-items:center;gap:.6rem;padding:0;font-weight:800;display:inline-flex}.text-button:hover span{transform:translate(3px,-3px)}.game-shell{min-height:calc(100vh - 82px);padding-block:1rem 1.5rem}.game-shell:fullscreen{background:var(--ink-950);width:100%;padding:max(1rem,4vh) max(1rem,5vw)}.game-topbar{border-bottom:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;min-height:70px;display:grid}.back-button{border:1px solid var(--line);background:0 0;border-radius:999px;justify-self:start;padding:0 1rem}.match-title{text-align:center}.match-title h1{margin:.15rem 0 0;font-family:XiangqiKai,serif;font-size:1.65rem;font-weight:500}.match-status{color:var(--paper-soft);justify-self:end;align-items:center;gap:.65rem;display:flex}.match-status .is-thinking{background:var(--copper);animation:.22s ease-in-out infinite alternate thinking-pulse}.game-layout{grid-template-columns:minmax(190px,.58fr) minmax(400px,1.75fr) minmax(230px,.72fr);align-items:center;gap:clamp(1rem,2.5vw,2.5rem);min-height:calc(100vh - 180px);padding-block:1.4rem;display:grid}.player-rail,.notation-panel{align-self:stretch;min-height:0}.player-rail{flex-direction:column;justify-content:center;gap:1rem;display:flex}.player-card{border:1px solid var(--line);border-radius:var(--radius-md);opacity:.66;background:#ffffff06;grid-template-columns:54px 1fr auto;align-items:center;gap:.85rem;min-height:98px;padding:.9rem;display:grid}.player-card.is-active{opacity:1;box-shadow:inset 3px 0 var(--gold);background:#c6955114;border-color:#f1cf7b8c}.player-symbol{background:var(--paper);border:3px solid;border-radius:50%;place-items:center;width:52px;height:52px;font-family:XiangqiKai,serif;font-size:1.6rem;display:grid}.player-symbol.first{color:var(--lacquer)}.player-symbol.second{color:#17463b}.player-card small,.player-card strong{display:block}.player-card small{color:var(--paper-soft);font-size:.875rem}.player-card time{font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:1.4rem}.turn-marker{text-align:center;padding:.5rem 1rem}.turn-marker span,.turn-marker strong{display:block}.turn-marker span{color:var(--paper-soft);letter-spacing:.12em;font-size:.875rem}.turn-marker strong{color:var(--gold);margin-top:.25rem;font-family:XiangqiKai,serif;font-size:1.45rem}.board-stage{flex-direction:column;align-items:center;gap:1rem;min-width:0;display:flex}.board-frame{background:#b98a49;border:10px solid #382518;border-radius:8px;width:min(100%,78vh);max-height:calc(100vh - 260px);position:relative;box-shadow:0 18px 60px #0000007a,inset 0 0 0 2px #f0d59f38}.board-canvas{touch-action:manipulation;width:100%;height:100%;min-height:380px;display:block}.thinking-ribbon{color:#fff7db;background:#14100ce0;border:1px solid #f1cf7b59;border-radius:999px;align-items:center;gap:.45rem;min-height:44px;padding:.45rem 1rem;display:flex;position:absolute;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #00000059}.thinking-ribbon span{background:var(--gold);border-radius:50%;width:7px;height:7px;animation:.24s ease-in-out infinite alternate dot-pulse}.thinking-ribbon span:nth-child(2){animation-delay:.1s}.thinking-ribbon span:nth-child(3){animation-delay:.2s}.primary-actions{grid-template-columns:repeat(4,1fr);gap:.55rem;width:min(100%,760px);display:grid}.primary-actions button,.secondary-actions button{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff09;min-height:52px}.primary-actions button{justify-content:center;align-items:center;gap:.45rem;display:flex}.primary-actions button:hover:not(:disabled),.secondary-actions button:hover{background:#f1cf7b14;border-color:#f1cf7b80}.notation-panel{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel);max-height:calc(100vh - 190px);box-shadow:var(--shadow);flex-direction:column;display:flex;overflow:hidden}.notation-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1rem;display:flex}.notation-panel h2{margin:.2rem 0 0;font-family:XiangqiKai,serif;font-size:1.5rem}.move-count{border:1px solid var(--line);min-width:38px;height:38px;color:var(--gold);border-radius:50%;place-items:center;font-family:Georgia,serif;display:grid}.notation-list{flex:1;min-height:150px;margin:0;padding:.5rem 1rem;list-style:none;overflow:auto}.notation-list li:not(.empty-notation){border-bottom:1px solid #e1c68b14;grid-template-columns:34px 1fr;align-items:center;gap:.5rem;min-height:44px;display:grid}.notation-list li>span{color:var(--copper);font-family:Georgia,serif}.notation-list li b{font-size:.9rem;font-weight:600}.deployment-notation{overflow-wrap:anywhere;gap:3px;padding-block:6px;line-height:1.45;display:grid}.deployment-notation small{color:var(--text-muted,#adc1b5);letter-spacing:.04em;font-size:.75rem;font-weight:400}.empty-notation{color:var(--paper-soft);padding:1.5rem 0;line-height:1.7}.secondary-actions{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:.5rem;padding:.8rem;display:grid}.secondary-actions button:last-child{grid-column:1/-1}.secondary-actions .danger-action{color:#e88b83}.modal-backdrop{z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#070605c7;place-items:center;padding:max(1rem,5vh) max(1rem,5vw);animation:.16s ease-out modal-fade;display:grid;position:fixed;inset:0}.modal-panel{border-radius:var(--radius-lg);width:min(100%,580px);max-height:90vh;box-shadow:var(--shadow);background:linear-gradient(145deg,#231d16,#15110e);border:1px solid #e1c68b47;flex-direction:column;animation:.18s ease-out modal-enter;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 1.4rem;display:flex}.modal-header h2{margin:.25rem 0 0;font-family:XiangqiKai,serif;font-size:1.8rem;font-weight:500}.icon-button{border:1px solid var(--line);width:48px;min-height:48px;color:var(--paper-soft);background:0 0;border-radius:50%;font-size:1.6rem}.modal-content{padding:1.4rem;overflow:auto}.modal-content>p{color:var(--paper-soft);font-size:1rem;line-height:1.8}.modal-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:.75rem;padding:1rem 1.4rem;display:flex}.setup-dialog{width:min(100%,780px)}.choice-group{border:0;margin:0 0 1.4rem;padding:0}.choice-group legend,.select-field>span{color:var(--copper);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.65rem;font-size:.875rem;font-weight:800}.choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;display:grid}.choice-grid.two-column{grid-template-columns:1fr 1fr}.choice-card{border:1px solid var(--line);border-radius:var(--radius-sm);background:#ffffff06;min-height:58px;padding:.75rem}.choice-card.is-selected{border-color:var(--gold);color:#fff6d2;box-shadow:inset 0 -3px var(--copper);background:#c695511f}.choice-mark{color:var(--gold);margin-right:.45rem}.segmented-control{border:1px solid var(--line);border-radius:var(--radius-sm);grid-template-columns:repeat(6,1fr);display:grid;overflow:hidden}.segmented-control button{border:0;border-right:1px solid var(--line);background:0 0;font-size:.875rem}.segmented-control button:last-child{border-right:0}.segmented-control .is-selected{color:var(--ink-950);background:var(--gold);font-weight:800}.select-field{display:grid}.select-field select{color:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--ink-800);padding:0 1rem}.result-dialog{width:min(100%,460px)}.promotion-grid{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.promotion-grid button{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--ink-800);font-family:XiangqiKai,serif;font-size:1.8rem}.settings-list{background:var(--line);gap:1px;display:grid}.settings-list label{background:var(--ink-850);justify-content:space-between;align-items:center;gap:1rem;min-height:72px;padding:1rem;display:flex}.settings-list b,.settings-list small{display:block}.settings-list small{color:var(--paper-soft);margin-top:.2rem;font-size:.875rem}.settings-list input[type=checkbox]{width:48px;accent-color:var(--jade)}.settings-list input[type=range]{width:180px;accent-color:var(--gold)}.data-panel{background:var(--line);grid-template-columns:1fr 1fr;gap:1px;display:grid}.data-panel div{background:var(--ink-850);min-height:76px;padding:1rem}.data-panel span,.data-panel strong{display:block}.data-panel span{color:var(--paper-soft);text-transform:capitalize;font-size:.875rem}.data-panel strong{color:var(--gold);margin-top:.4rem;font-size:1.3rem}.loading-line{background:linear-gradient(90deg, transparent, var(--gold), transparent);border-radius:999px;height:5px;animation:.24s ease-in-out infinite alternate loading}.modal-backdrop{-webkit-backdrop-filter:blur(9px)saturate(.8);backdrop-filter:blur(9px)saturate(.8);background:#030907c2}.modal-panel{background:radial-gradient(circle at 12% 0,#5b7e6829,#0000 45%),linear-gradient(145deg,#17231f,#0c1512 75%);border-color:#caa56a7a;border-radius:13px;box-shadow:0 30px 90px #000000a8,inset 0 0 0 1px #ffefc409}.modal-header{border-color:#caa56a38;align-items:flex-start;padding:20px 22px 17px}.modal-header .eyebrow{color:#b68e55;letter-spacing:.22em;font-size:14px}.modal-header h2{color:#f0e6d1;margin-top:7px;font-size:clamp(24px,3vw,31px)}.modal-description{color:var(--text-muted);margin:7px 0 0;font-size:14px;line-height:1.5}.modal-header .icon-button{color:#e8dcc5b3;border-color:#caa56a40;width:44px;min-height:44px}.modal-content{padding:19px 22px 22px}.modal-footer{border-color:#caa56a38;padding:14px 22px 18px}.modal-footer .primary-button{min-width:142px}.modal-footer .ghost-button{color:#eee5d2c2;border-color:#caa56a4d;min-width:96px}.modal-backdrop:has(.setup-dialog){padding:max(12px,4vh) max(16px,4vw)}.setup-dialog{background:linear-gradient(145deg,#1f2e2bfb,#141f1dfc);border-color:#caa56a94;border-radius:14px;width:min(720px,100%);max-height:calc(100dvh - max(24px,8vh));padding:24px 28px;display:block;overflow-y:auto}.setup-dialog .modal-header{text-align:center;border:0;padding:0;display:block}.setup-dialog .modal-header .eyebrow{color:#c49a58;letter-spacing:.2em;text-transform:none;font-family:KaiTi,STKaiti,Georgia,serif;font-size:14px;font-weight:400}.setup-dialog .modal-header h2{color:#eee7d9;font-family:var(--font-display);letter-spacing:.08em;margin:7px 0 5px;font-size:28px;font-weight:500;line-height:normal}.setup-dialog .modal-description{color:#e0e6dea1;margin:0;font-size:14px;line-height:1.5}.setup-dialog .modal-content{padding:0;overflow:visible}.setup-dialog .modal-footer{border:0;justify-content:center;gap:10px;margin-top:16px;padding:0}.setup-dialog .modal-footer button{min-height:48px;padding:0 18px;font-size:14px}.setup-dialog .modal-footer .ghost-button{min-width:80px}.setup-dialog .modal-footer .primary-button{min-width:94px}.mobile-setup-summary,.mobile-setup-advanced-toggle{display:none}.mode-setup-advanced{display:contents}.mode-setup-advanced[hidden]{display:none}.difficulty-card-grid{text-align:left;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px;display:grid;overflow:visible}.difficulty-card{border:1px solid var(--surface-line);color:#eee5d2d1;text-align:left;background:#121f1be6;border-radius:10px;min-height:58px;padding:7px 10px;transition:border-color .18s,background-color .18s,transform .18s;position:relative;overflow:visible}.difficulty-card:hover,.difficulty-card:focus-visible{background:#25342ef5;border-color:#d3ad69;transform:translateY(-1px)}.difficulty-card.is-active{background:linear-gradient(135deg,#caa56a2e,#273d35db);border-color:#e0c78d;box-shadow:inset 0 0 0 1px #caa56a2e}.setup-dialog .difficulty-card:focus-visible{outline-offset:3px;outline:3px solid #eee7d9;box-shadow:0 0 0 6px #caa56a6b,inset 0 0 0 1px #caa56a2e}.difficulty-card>span:not(.difficulty-seal),.difficulty-card small{display:block}.difficulty-card>span:not(.difficulty-seal){color:#ead3a1;font-family:inherit;font-size:17px}.difficulty-card small{color:var(--text-muted);margin-top:1px;font-size:14px;line-height:1.45}.difficulty-seal{z-index:1;color:#e05646;pointer-events:none;background:#5c120e8c;border:2px solid #c44538;border-radius:50%;place-items:center;width:56px;height:56px;padding:0;font-family:Kaiti SC,STKaiti,KaiTi,serif;font-size:18px;font-weight:700;line-height:1;display:grid;position:absolute;top:-6px;right:-4px;transform:rotate(-12deg);box-shadow:inset 0 0 0 3px #c44538e0}.difficulty-card-grid.is-engine-direct .difficulty-card:nth-child(n+4){padding-right:52px}:lang(en) .setup-dialog .difficulty-seal,:lang(fr) .setup-dialog .difficulty-seal,:lang(de) .setup-dialog .difficulty-seal,:lang(es) .setup-dialog .difficulty-seal,:lang(pt) .setup-dialog .difficulty-seal,:lang(ru) .setup-dialog .difficulty-seal,:lang(id) .setup-dialog .difficulty-seal,:lang(ms) .setup-dialog .difficulty-seal,:lang(vi) .setup-dialog .difficulty-seal{letter-spacing:.03em;font-family:Georgia,Times New Roman,serif;font-size:11px}:lang(th) .setup-dialog .difficulty-seal{font-family:inherit;font-size:14px}.review-opponent-switch{width:min(520px,100%)!important;margin:14px auto 4px!important;padding:10px!important}.setup-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.setup-side{text-align:left;background:#1b2824bd;border:1px solid #80663f80;border-radius:9px;width:100%;margin:0;padding:8px 10px}.setup-side .panel-label{color:#e0e6de9e;text-align:center;margin-bottom:6px;font-size:14px}.segmented{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.segmented-btn{color:#eee5d2a6;background:#121f1be6;border:1px solid #caa56a80;border-radius:8px;min-width:0;min-height:50px;padding:0 12px;font-weight:700}.segmented-btn:hover:not(:disabled),.segmented-btn:focus-visible{color:#f4e7c9;background:#2b3730f5;border-color:#d5b16f}.segmented-btn.is-active{color:#17211d;background:#cfac70;border-color:#d5b16f;box-shadow:inset 0 0 0 1px #fff3cf4d}.review-opponent-switch .segmented-btn{justify-content:center;align-items:center;gap:8px;display:flex}.review-opponent-switch .segmented-btn small{opacity:.76;border:1px solid;border-radius:999px;padding:2px 7px;font-size:14px;font-weight:500}.color-choice-group .segmented-btn{text-align:left;justify-content:center;align-items:center;gap:9px;min-height:50px;display:flex}.color-choice-piece{border:1px solid;border-radius:50%;flex:none;place-items:center;width:38px;height:38px;padding:5px;font-family:XiangqiKai,Kaiti SC,serif;font-size:20px;line-height:1;display:grid}.color-choice-piece.red{color:#a12f28;background:#efd9c4}.color-choice-piece.black{color:#e4ddd0;background:#202927}.color-choice-piece.white{color:#3d463f;background:#efe8d7}.color-choice-piece.blue{color:#275677;background:#d9e3df}.color-choice-copy{min-width:0}.color-choice-copy strong{white-space:nowrap;display:block}.setup-side.select-field{display:block}.setup-side select{color:#ead3a1;background:#121b19f0;border:1px solid #caa56a8f;border-radius:9px;width:100%;min-height:50px;padding:0 42px 0 16px;font-weight:700}.setup-hint{color:var(--text-muted);margin:8px 2px 0;font-size:14px;font-weight:400;line-height:1.5;display:block}.setup-rule-hint{text-align:center}.setup-side.is-rule-locked .segmented-btn:disabled{cursor:default;opacity:.46}.setup-side.is-rule-locked .segmented-btn.is-active:disabled{opacity:1}.undo-stepper>div:not(.panel-label){border:1px solid #caa56a7a;border-radius:9px;grid-template-columns:48px 1fr 48px;align-items:center;min-height:50px;display:grid;overflow:hidden}.undo-stepper button{color:#d7b46f;background:#caa56a0d;border:0;min-height:48px;padding:0;font-size:21px}.undo-stepper output{color:#eee5d2;text-align:center;align-self:stretch;place-items:center;font-family:inherit;font-size:16px;font-weight:700;line-height:1;display:grid}:is(html:has(.result-dialog),body:has(.result-dialog)){overflow:hidden}.result-dialog{max-height:90dvh;padding:0;display:flex;overflow:hidden}.result-dialog .modal-header{text-align:center;border:0;flex:none;padding:24px 32px 18px;display:block}.result-dialog .modal-header .eyebrow{color:#c49a58;letter-spacing:.2em;text-transform:none;font-family:KaiTi,STKaiti,Georgia,serif;font-size:18px;font-weight:400}.result-dialog .modal-header h2{color:#eee7d9;font-family:var(--font-display);letter-spacing:.08em;margin:12px 0 8px;font-size:30px;font-weight:500;line-height:normal}.result-dialog .modal-description{color:#e0e6dea1;margin:0;font-size:14px;line-height:1.5}.result-dialog .modal-content{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:0 32px 20px;overflow-y:auto}.result-dialog .result-stats{background:linear-gradient(145deg,#caa56a14,#4d877612),#080e0d3d;border:1px solid #caa56a47;border-radius:12px;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;padding:8px;display:grid}.result-dialog .result-stats div{text-align:center;background:#ffffff06;border-radius:8px;gap:6px;min-width:0;padding:10px 8px;display:grid}.result-dialog .result-stats dt{color:#e0e6dea1;letter-spacing:.08em;font-size:14px}.result-dialog .result-stats dd{overflow-wrap:anywhere;color:#eee7d9;font-variant-numeric:tabular-nums;min-width:0;margin:0;font-family:fangsong,STFangsong,serif;font-size:clamp(20px,3.8vw,26px);line-height:1.15}.result-dialog .modal-footer{border-top:1px solid var(--surface-line);background:#0d1814f5;flex-wrap:wrap;flex:none;justify-content:center;gap:10px;margin:0;padding:16px 32px 24px}.result-dialog .modal-footer button{min-height:48px}.result-dialog.has-result-coach{width:min(100%,760px)}.result-dialog:has(.daily-result-react){width:min(100%,620px)}.result-dialog.has-result-coach:has(.daily-result-react){width:min(100%,800px)}.result-pending-notice{color:#ead7ad;text-align:left;background:#caa56a14;border:1px solid #e0c07e57;border-radius:10px;justify-content:center;align-items:center;gap:9px;min-height:48px;margin:16px 0 0;padding:10px 14px;font-size:15px;line-height:1.5;display:flex}.result-pending-notice span{color:#e2bd72;flex:none;font-size:22px}.result-review-bar{color:#eee7d9;background:linear-gradient(120deg,#2f3d33fa,#18231ffa);border:1px solid #e0c07e6b;border-radius:11px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:64px;padding:8px 10px;display:grid;box-shadow:0 12px 28px #00000052}.result-review-bar.is-settled{border-color:#74d5c357}.result-review-bar>div{gap:3px;min-width:0;display:grid}.result-review-bar strong,.result-review-bar span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.result-review-bar strong{font-size:16px}.result-review-bar span{color:#eee5d2a6;font-size:14px}.result-review-bar button{min-height:48px;padding-inline:14px}.result-coach{text-align:left;border-top:1px solid #caa56a4d;margin-top:22px;padding-top:18px}.result-coach-head,.result-coach-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.result-coach-head h3{color:#eee7d9;margin:0;font-size:17px;font-weight:600}.result-coach-badge,.coach-verdict{color:#9de6d8;background:#25796b29;border:1px solid #74d5c359;border-radius:999px;flex:none;padding:4px 8px;font-size:14px}.result-coach-content{margin-top:12px}.result-coach-state{color:#e0e6dea1;background:#ffffff09;border-radius:10px;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;min-height:64px;padding:14px;display:grid}.result-coach-state .coach-spinner{border:2px solid #9de6d833;border-top-color:#9de6d8;border-radius:50%;grid-row:1/3;width:22px;height:22px;animation:.9s linear infinite coach-spin}@keyframes coach-spin{to{transform:rotate(360deg)}}.result-coach-summary{color:#e0e6dea1;margin:0 0 10px;font-size:14px}.result-coach-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.result-coach-card{min-width:0;color:inherit;text-align:left;background:#ffffff09;border:1px solid #ffffff14;border-left:3px solid #9de6d88c;border-radius:10px;padding:12px}.result-coach-card:hover:not(:disabled),.result-coach-card:focus-visible{background:#47857421;border-color:#9de6d894}.result-coach-card:focus-visible{outline-offset:2px;outline:2px solid #e4c172}.result-coach-card:disabled{cursor:default;opacity:1}.result-coach-card-blunder,.result-coach-card-mistake{border-left-color:#d98272}.result-coach-card-heading{gap:2px;min-width:0;display:grid}.result-coach-card-heading span{color:#e0e6dea1;font-size:14px}.result-coach-card-heading strong{color:#eee7d9;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.result-coach-comparison{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.result-coach-comparison>div{background:#0000001f;border-radius:7px;gap:3px;min-width:0;padding:8px;display:grid}.result-coach-comparison span{color:#e0e6dea1;font-size:14px}.result-coach-comparison strong{color:#eee7d9;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.result-coach-comparison .result-coach-best strong{color:#9de6d8}.result-coach-fact{color:#eee5d2b8;margin:9px 0 0;font-size:14px;line-height:1.45}.result-coach-impact{color:#d7c292;margin:5px 0 0;font-size:14px;line-height:1.45}.result-coach-source{color:#9de6d8a8;margin-top:7px;font-size:12px;display:block}.result-coach-inspect{color:#e3bf73;margin-top:9px;font-size:14px;font-weight:700;display:inline-block}.result-coach-action{min-height:48px;margin-top:12px}.settings-list,.data-panel{background:0 0;gap:8px}.settings-list label,.data-panel div{background:#182721b8;border:1px solid #caa56a38;border-radius:9px}.portal-panel{width:min(100%,650px)}.account-overview{gap:15px;display:grid}.account-identity{background:linear-gradient(145deg,#2a4136cc,#14221dd1);border:1px solid #caa56a40;border-radius:10px;align-items:center;gap:15px;min-height:92px;padding:14px;display:flex}.account-identity img{border:1px solid #caa56a7a;border-radius:50%;width:62px;height:62px;padding:5px}.account-identity strong,.account-identity span{display:block}.account-identity strong{color:#f0e5d0;font-family:XiangqiKai,serif;font-size:22px;font-weight:500}.account-identity span{color:#83b6a0;margin-top:5px;font-size:14px}.account-overview>p{color:#e8dcc59e;background:#caa56a0b;border-left:2px solid #a77b42;margin:0;padding:12px 14px;font-size:14px;line-height:1.65}.account-destinations{grid-template-columns:1fr 1fr;gap:9px;display:grid}.account-destinations button{text-align:left;background:#14221dc7;border:1px solid #caa56a3b;border-radius:9px;align-items:center;gap:12px;min-height:76px;padding:12px 14px;display:flex}.account-destinations button:hover{background:#3c463166;border-color:#dcb76d9e}.account-destinations svg{color:#caa56a;fill:none;stroke:currentColor;width:28px;height:28px}.account-destinations span,.account-destinations b,.account-destinations small{display:block}.account-destinations b{color:#eadfc9;font-size:15px}.account-destinations small{color:#e8dcc573;margin-top:3px}.offline-panel{text-align:center;background:#172620b8;border:1px solid #caa56a38;border-radius:10px;padding:22px}.offline-panel strong{color:#e8d7b7;font-family:XiangqiKai,serif;font-size:20px;font-weight:500}.offline-panel p{color:#e8dcc58c;margin:9px 0 0;font-size:14px;line-height:1.6}.profile-progress{background:#1a2b24bf;border:1px solid #caa56a3d;border-radius:9px;margin-bottom:13px;padding:15px}.profile-progress>span,.profile-progress>strong{display:block}.profile-progress>span{color:#e8dcc58c;font-size:14px}.profile-progress>strong{color:#e6c77f;margin-top:4px;font-family:Georgia,serif;font-size:25px}.profile-progress>i{background:#caa56a1f;border-radius:999px;height:5px;margin-top:12px;display:block;overflow:hidden}.profile-progress>i b{border-radius:inherit;background:linear-gradient(90deg,#4f8876,#d2ad68);height:100%;display:block}@media (width<=620px){.modal-backdrop{align-items:end;padding:0}.modal-backdrop:has(.setup-dialog){align-items:end;padding:0}.modal-panel{border-width:1px 0 0;border-radius:16px 16px 0 0;width:100%;max-height:min(92dvh,760px)}.result-dialog{padding:0}.result-dialog .modal-header{padding:18px max(18px, env(safe-area-inset-right)) 14px max(18px, env(safe-area-inset-left))}.result-dialog .modal-content{padding:0 max(18px, env(safe-area-inset-right)) 16px max(18px, env(safe-area-inset-left))}.result-dialog .modal-header .eyebrow{font-size:15px}.result-dialog .modal-header h2{margin-top:8px;font-size:27px}.result-dialog .result-stats{gap:5px;padding:6px}.result-dialog .result-stats div{padding:9px 4px}.result-dialog .result-stats dd{font-size:clamp(18px,6vw,23px)}.result-dialog .modal-footer{padding:12px max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));grid-template-columns:minmax(0,.8fr) minmax(0,1.25fr) minmax(0,1fr);display:grid}.result-dialog.can-undo-result .modal-footer,.result-dialog.is-result-pending:not(.can-undo-result) .modal-footer{grid-template-columns:repeat(2,minmax(0,1fr))}.result-dialog.can-undo-result .result-accept-action{grid-column:1/-1}.result-dialog .modal-footer button{min-width:0;padding-inline:8px}.result-review-bar{grid-template-columns:minmax(0,1fr) auto}.result-review-bar .primary-button{grid-column:1/-1}.result-review-bar strong,.result-review-bar span{white-space:normal}.result-coach-grid{grid-template-columns:1fr}.result-coach-card{padding:10px}.setup-dialog{max-height:calc(100dvh - max(12px, env(safe-area-inset-top)));padding:24px max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));border-radius:22px 22px 0 0}.setup-dialog .modal-header h2{margin-block:8px 6px;font-size:26px}.setup-dialog .modal-description{line-height:1.55}.mobile-setup-summary{color:#ead3a1;background:#121b19db;border:1px solid #caa56a7a;border-radius:10px;margin:18px 0 10px;padding:14px 12px;font-size:16px;line-height:1.5;display:block}.mobile-setup-advanced-toggle{justify-content:center;align-items:center;min-height:48px;padding-inline:16px;display:inline-flex}.mode-setup-advanced{display:block}.mode-setup-advanced:not(.is-expanded){display:none}.difficulty-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.difficulty-card{min-height:68px;padding:10px 14px}.difficulty-card small{margin-top:3px}.setup-settings-grid{margin-top:0;display:block}.setup-settings-grid .setup-side{width:min(320px,100%);margin:18px auto 0;padding:10px}.setup-dialog .modal-footer{z-index:2;bottom:calc(-1 * max(18px, env(safe-area-inset-bottom)));margin:16px calc(-1 * max(18px, env(safe-area-inset-right))) 0 calc(-1 * max(18px, env(safe-area-inset-left)));padding:12px max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:linear-gradient(#151d1c00,#151d1c 28%);position:sticky}.setup-dialog .modal-footer .ghost-button,.setup-dialog .modal-footer .primary-button{flex:1;min-height:48px}.account-destinations,.data-panel{grid-template-columns:1fr}.modal-footer{padding-bottom:max(16px, env(safe-area-inset-bottom))}}@media (width<=360px){.result-dialog .result-stats{grid-template-columns:1.2fr .8fr 1fr}.result-dialog .result-stats dd{font-size:18px}.result-dialog .modal-footer{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.result-dialog .modal-footer button{letter-spacing:0;padding-inline:6px;font-size:14px}}@media (orientation:landscape) and (height<=520px) and (width<=900px){.result-dialog .modal-header{padding:12px 24px 10px}.result-dialog .modal-header .eyebrow{font-size:14px}.result-dialog .modal-header h2{margin:4px 0;font-size:24px}.result-dialog .modal-footer{padding:10px 24px 12px}.modal-backdrop:has(.setup-dialog){padding:max(8px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));align-items:center}.setup-dialog{width:min(720px,100%);max-height:calc(100dvh - max(16px, env(safe-area-inset-top)) - max(16px, env(safe-area-inset-bottom)));overscroll-behavior:contain;scrollbar-gutter:stable;border-width:1px;border-radius:14px;padding:14px 20px}.setup-dialog .modal-header .eyebrow{letter-spacing:.04em;margin:0 0 2px;font-family:inherit;font-weight:700}.setup-dialog .modal-header h2{overflow-wrap:break-word;letter-spacing:normal;margin:0 0 4px;font-family:inherit;font-size:20px;font-weight:700;line-height:1.25}.setup-dialog .modal-description{margin:0;padding-inline:12px;font-size:14px;line-height:1.4}.review-opponent-switch{width:100%!important;margin:8px 0 4px!important;padding:8px!important}.review-opponent-switch .panel-label{margin-bottom:6px}.review-opponent-switch .segmented-btn{gap:6px;min-width:0;min-height:48px;padding-inline:10px}.difficulty-card-grid{margin-top:10px}.mobile-setup-summary{color:#ead3a1;background:#121b19db;border:1px solid #caa56a7a;border-radius:8px;margin:10px 0 6px;padding:8px 10px;font-size:14px;line-height:1.4;display:block}.mobile-setup-advanced-toggle{justify-content:center;align-items:center;min-height:44px;padding-inline:14px;display:inline-flex}.mode-setup-advanced{display:block}.mode-setup-advanced:not(.is-expanded){display:none}.setup-settings-grid{margin-top:12px;display:grid}.setup-settings-grid .setup-side{width:100%;margin:0;padding:8px 10px}.setup-dialog .modal-footer{background:0 0;margin:12px 0 0;padding:0;position:static}.setup-dialog .modal-footer .ghost-button,.setup-dialog .modal-footer .primary-button{flex:none;min-height:46px}}@keyframes card-enter{0%{opacity:0;transform:translateY(12px)}}@keyframes modal-fade{0%{opacity:0}}@keyframes modal-enter{0%{opacity:0;transform:scale(.97)}}@keyframes thinking-pulse{to{opacity:.4;transform:scale(.8)}}@keyframes dot-pulse{to{opacity:.3;transform:translateY(-3px)}}@keyframes loading{0%{opacity:.4;transform:translate(-20%)}to{opacity:1;transform:translate(20%)}}@media (width<=1120px){.safe-zone{width:min(100% - 2rem,1200px)}.game-layout{grid-template-columns:minmax(160px,.45fr) minmax(390px,1.6fr)}.notation-panel{grid-column:1/-1;grid-template-columns:1fr 2fr auto;max-height:260px;display:grid}.notation-panel>header{border-bottom:0;border-right:1px solid var(--line)}.notation-list{grid-auto-columns:minmax(140px,auto);grid-auto-flow:column;min-width:0;display:grid;overflow-x:auto}.secondary-actions{border-top:0;border-left:1px solid var(--line);grid-template-columns:1fr}.secondary-actions button:last-child{grid-column:auto}}@media (width<=760px){.safe-zone{width:calc(100% - 1rem)}.app-header{grid-template-columns:1fr auto;gap:.5rem;min-height:68px}.app-header nav,.account-button b,.brand small{display:none}.brand img{width:40px;height:40px}.header-actions{gap:.4rem}.locale-select select{min-width:104px;max-width:116px}.account-button{padding-right:.3rem}.lobby{padding-block:2.5rem 4rem}.hero{grid-template-columns:1fr;min-height:auto}.hero h1{font-size:clamp(3rem,14vw,5rem)}.hero-seal{z-index:0;opacity:.28;width:180px;position:absolute;top:-20px;right:-48px}.hero-seal small{display:none}.section-heading{flex-direction:column;align-items:start}.section-heading p{text-align:left}.game-grid{grid-template-columns:1fr}.game-card{grid-template-columns:42% 58%;display:grid}.game-card-art{aspect-ratio:auto;height:100%}.game-card-copy{min-height:190px;padding:1.1rem}.game-card h3{font-size:1.7rem}.game-card p{font-size:.94rem}.game-topbar{grid-template-columns:auto 1fr;min-height:60px}.back-button span,.match-title .eyebrow{display:none}.match-title{text-align:left}.match-title h1{font-size:1.35rem}.match-status{border-top:1px solid var(--line);grid-column:1/-1;justify-content:center;justify-self:stretch;min-height:36px;font-size:.875rem}.game-layout{flex-direction:column;gap:.8rem;min-height:0;padding-block:.8rem 5.5rem;display:flex}.board-stage{order:1;width:100%}.player-rail{order:2;grid-template-columns:1fr auto 1fr;align-items:center;gap:.35rem;width:100%;display:grid}.player-card{grid-template-columns:40px 1fr;min-height:72px;padding:.5rem}.player-card time{text-align:center;grid-column:1/-1;font-size:1.05rem}.player-symbol{width:40px;height:40px;font-size:1.2rem}.turn-marker{padding:.25rem}.notation-panel{order:3;width:100%;max-height:240px;display:flex}.notation-panel>header{border-right:0;border-bottom:1px solid var(--line)}.notation-list{display:block}.secondary-actions{border-left:0;border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr)}.board-frame{border-width:7px;width:min(100%,72vh);max-height:none}.board-canvas{min-height:320px}.primary-actions{z-index:100;left:max(.5rem, env(safe-area-inset-left));right:max(.5rem, env(safe-area-inset-right));bottom:max(.5rem, env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:var(--radius-md);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#15110df0;width:auto;padding:.45rem;position:fixed;box-shadow:0 -12px 34px #00000059}.primary-actions button{flex-direction:column;gap:.1rem;min-height:54px;font-size:.8rem}.choice-grid,.choice-grid.two-column{grid-template-columns:1fr 1fr}.segmented-control{grid-template-columns:repeat(3,1fr)}.data-panel{grid-template-columns:1fr}}@media (height<=520px) and (orientation:landscape){.app-header{display:none}.game-shell{min-height:100vh;padding-block:.25rem}.game-topbar{border:0;grid-template-columns:auto auto 1fr;min-height:46px}.match-status{border:0;grid-column:auto;justify-self:end}.game-layout{grid-template-columns:minmax(110px,.45fr) minmax(340px,1.5fr) minmax(160px,.55fr);gap:.5rem;height:calc(100vh - 70px);padding:0;display:grid}.board-stage{order:initial;height:100%}.board-frame{width:auto;height:calc(100vh - 138px);max-height:none}.board-canvas{min-height:0}.player-rail{order:initial;gap:.35rem;display:flex}.player-card{grid-template-columns:32px 1fr;gap:.25rem;min-height:0;padding:.3rem}.player-symbol{border-width:2px;width:32px;height:32px;font-size:1rem}.player-card time{font-size:1rem}.turn-marker{padding:.15rem}.turn-marker span{font-size:.72rem}.turn-marker strong{margin-top:0;font-size:1.1rem}.notation-panel{order:initial;grid-column:auto;width:auto;max-height:calc(100vh - 70px);display:flex}.notation-panel>header{padding:.5rem}.notation-list{min-height:80px}.secondary-actions{grid-template-columns:1fr;padding:.35rem}.secondary-actions button{min-height:44px}.primary-actions{width:100%;box-shadow:none;background:0 0;border:0;padding:0;position:static}.primary-actions button{flex-direction:row;min-height:44px}}.lobby-scene-react{z-index:0;pointer-events:none;--scene-shift-x:0px;--scene-shift-y:0px;background:#0b100f;position:fixed;inset:0;overflow:hidden}.lobby-scene-react canvas{opacity:.34;filter:saturate(.68)contrast(1.04)brightness(.28);width:min(940px,76vw);height:auto;transform:translate(calc(-50% + var(--scene-shift-x)), calc(-50% + var(--scene-shift-y))) perspective(1150px) rotateX(53deg) rotateZ(-8deg) scale(1.34);transition:transform .24s ease-out;position:absolute;top:50%;left:50%}.lobby-scene-react:after{z-index:1;pointer-events:none;content:"";background:#070c0b85;position:absolute;inset:0;box-shadow:inset 0 0 220px #0000009e}.lobby-scene-lattice{display:none}.lobby-scene-glow{z-index:2;background:#82d8bc;border-radius:50%;width:6px;height:6px;animation:4.6s ease-in-out infinite lobby-glow;position:absolute;box-shadow:0 0 7px #82d8bc,0 0 18px #82d8bc99}.lobby-scene-glow.glow-one{top:14%;right:21%}.lobby-scene-glow.glow-two{animation-delay:-2.4s;top:45%;left:34%}@keyframes lobby-glow{0%,to{opacity:.2;transform:scale(.7)}50%{opacity:.9;transform:scale(1.2)}}.portal-home{z-index:1;position:relative}.app-header--lobby .locale-select{width:auto;min-width:126px}.app-header--lobby .locale-current i{font-style:normal}.app-header--lobby .locale-current b{display:none}.app-header--lobby .account-button svg{border-radius:50%;width:38px;height:38px;display:block}.mobile-menu-button{color:#e6d6b8;background:0 0;border:1px solid #caa56a59;border-radius:9px;width:44px;min-height:44px;padding:0;display:none}.mobile-menu-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;width:22px;height:22px}.game-settings-popover-react{z-index:150;background:radial-gradient(circle at 12% 0,#5b7e6833,#0000 45%),linear-gradient(145deg,#263530,#111b18 76%);border:1px solid #caa56a8a;border-radius:12px;width:326px;max-height:calc(100dvh - 78px);padding:0 15px 12px;position:fixed;top:68px;right:20px;overflow:auto;box-shadow:0 24px 62px #0000008f}.game-settings-popover-react>header{z-index:2;background:#1b2925f5;border-bottom:1px solid #caa56a40;justify-content:space-between;align-items:center;gap:12px;min-height:86px;margin:0 -15px 10px;padding:0 15px;display:flex;position:sticky;top:0}.game-settings-popover-react h2{color:#ead096;margin:0;font-family:XiangqiKai,serif;font-size:20px;font-weight:500}.game-settings-popover-react>header button{color:#eee5d2b8;background:#060f0c59;border:1px solid #caa56a66;border-radius:8px;width:44px;min-height:44px;font-size:24px}.endgame-dialog-react{width:min(920px,100%)}.endgame-dialog-react .modal-content{gap:18px;display:grid}.daily-endgame-card{background:#2d574921;border:1px solid #6fc1a24d;border-radius:10px;padding:15px}.daily-endgame-heading,.daily-endgame-selection,.daily-endgame-archive{justify-content:space-between;align-items:center;gap:12px;display:flex}.daily-endgame-heading span{color:#83c6a5;letter-spacing:.12em;font-size:14px}.daily-endgame-heading h3{margin:2px 0 0;font-family:XiangqiKai,serif;font-size:20px}.daily-endgame-heading b{color:#83c6a5;font-size:14px}.daily-endgame-card>p,.daily-endgame-selection small{color:#eee5d294;font-size:14px;line-height:1.55}.daily-endgame-status{color:#eee5d2b3;text-align:center;border:1px dashed #caa56a40;border-radius:8px;padding:12px}.daily-endgame-status.is-error{color:#e49a8f}.daily-endgame-selection>div{gap:3px;display:grid}.daily-endgame-selection span{color:#cba965;font-size:14px}.daily-endgame-selection .primary-button{flex:none}.daily-endgame-archive{border-top:1px solid #caa56a2e;margin-top:13px;padding-top:13px}.daily-endgame-archive label{color:#eee5d299;flex:1;gap:5px;font-size:14px;display:grid}.daily-endgame-archive input{color:#efe5d2;background:#12201c;border:1px solid #caa56a4d;border-radius:7px;min-height:44px;padding:0 9px}.daily-endgame-archive button{min-height:44px;padding:0 10px;font-size:14px}.endgame-catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.endgame-catalog-card{color:#eee4d1;text-align:left;background:#ffffff05;border:1px solid #caa56a40;border-radius:9px;align-content:start;gap:5px;min-height:132px;padding:12px;display:grid}.endgame-catalog-card:hover{background:#caa56a14;border-color:#f0cd829e}.endgame-catalog-card span,.endgame-catalog-card em{color:#c49a58;font-size:14px;font-style:normal}.endgame-catalog-card strong{font-family:XiangqiKai,serif;font-size:18px}.endgame-catalog-card small{color:#eee5d287;font-size:14px;line-height:1.45}.review-tools{background:linear-gradient(160deg,#1e2b27eb,#0f1916f0);border:1px solid #caa56a4d;border-radius:9px;gap:9px;padding:10px;display:grid;overflow:auto}.review-tools header{color:#d8bd84;gap:3px;font-family:XiangqiKai,serif;display:grid}.review-tools header small{color:#eee5d27a;font-family:sans-serif;font-size:14px;line-height:1.45}.review-piece-library{gap:6px;display:grid}.review-piece-library>div{grid-template-columns:repeat(4,minmax(44px,1fr));gap:6px;display:grid}.review-piece-side-label{color:#eee5d29e;grid-column:1/-1;font-size:14px}.review-piece-side-label.red{color:#df8a7c}.review-piece-side-label.black{color:#9fcabb}.review-piece{background:#d9b46e;border:1px solid #caa56a47;border-radius:50%;justify-self:center;width:44px;height:44px;padding:0;font-family:XiangqiKai,serif;font-size:18px}.review-piece.red{color:#a22e26}.review-piece.black{color:#173e34}.review-piece.is-active{outline-offset:1px;outline:2px solid #f0d18a}.review-edit-grid{grid-template-columns:1fr 1fr;gap:5px;display:grid}.review-edit-grid button,.review-turn-picker button{color:#eee5d2bf;background:#caa56a0a;border:1px solid #caa56a47;border-radius:7px;min-height:44px;padding:0 8px;font-size:14px}.review-edit-grid button.is-active,.review-turn-picker button.is-active{color:#18201b;background:#d4b36f}.review-turn-picker{grid-template-columns:1fr 1fr;gap:5px;display:grid}.review-turn-picker>span{color:#eee5d294;grid-column:1/-1;font-size:14px}.review-validation{color:#e49a8f;background:#a63d321a;border-radius:7px;padding:8px;font-size:14px;line-height:1.4}.review-validation.is-ready{color:#83c6a5;background:#3591731f}.review-settings-row{background:#caa56a09;border:1px solid #caa56a33;border-radius:7px;justify-content:space-between;align-items:center;gap:8px;padding:8px;display:flex}.review-settings-row>div{gap:2px;min-width:0;display:grid}.review-settings-row span{color:#d8bd84;font-size:14px}.review-settings-row p{color:#eee5d294;margin:0;font-size:14px;line-height:1.4}.review-settings-row button{color:#e7d6b4;background:#caa56a0f;border:1px solid #caa56a4d;border-radius:7px;flex:none;min-height:44px;padding:0 10px;font-size:14px}.review-start-button{width:100%;min-height:48px}.action-confirm-dialog{width:min(100%,460px)}.action-confirm-dialog .modal-content{padding-block:18px}.action-confirm-dialog .modal-footer button{min-width:112px}.action-confirm-copy{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:14px;display:grid}.action-confirm-copy p{color:#eee5d2c2;margin:0;font-size:16px;line-height:1.65}.action-confirm-mark{color:#dfc17f;background:#caa56a17;border:1px solid #caa56a5c;border-radius:50%;place-items:center;width:48px;height:48px;font-family:XiangqiKai,serif;font-size:25px;display:grid;box-shadow:inset 0 0 18px #caa56a12}.action-confirm-copy.is-clear .action-confirm-mark{color:#e89b91;background:#a63d321f;border-color:#c751467a}.daily-result-react{background:#2d57491f;border:1px solid #6fc1a24d;border-radius:9px;gap:9px;margin-top:14px;padding:13px;display:grid}.daily-result-react h3{color:#e5ca8d;margin:0;font-family:XiangqiKai,serif}.daily-result-react>span,.daily-result-react small{color:#eee5d28c;font-size:14px}.daily-result-react>div{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.daily-result-react b{color:#eee5d294;gap:3px;font-size:14px;display:grid}.daily-result-react strong{color:#83c6a5;font-family:Georgia,serif;font-size:18px}.daily-result-react button{min-height:44px}@media (width<=760px){.app-header--lobby{grid-template-columns:1fr auto;width:calc(100vw - 20px);padding:7px 9px;top:10px}.app-header--lobby .brand small,.app-header--lobby .locale-current i{display:none}.app-header--lobby .locale-current b{display:inline}.app-header--lobby .locale-select{min-width:48px}.mobile-menu-button{place-items:center;display:grid}.app-header--lobby nav{background:#0a1310fa;border:1px solid #caa56a52;border-radius:11px;padding:8px;display:none;position:absolute;top:calc(100% + 7px);left:0;right:0;box-shadow:0 18px 40px #00000080}.app-header--lobby nav.is-mobile-open{grid-template-columns:1fr 1fr;display:grid}.lobby-scene-react canvas{width:132vw;top:54%;transform:translate(-53%,-50%)perspective(900px)rotateX(60deg)rotate(-7deg)scale(1.16)}.game-settings-popover-react{width:auto;max-height:calc(100dvh - 70px);position:fixed;top:60px;left:8px;right:8px}.endgame-dialog-react{height:min(94dvh,760px)}.endgame-catalog{grid-template-columns:1fr}.daily-endgame-selection,.daily-endgame-archive{flex-direction:column;align-items:stretch}.daily-endgame-selection .primary-button,.daily-endgame-archive button{width:100%}.review-tools{max-height:none}}@media (width>=761px) and (height<=780px){.portal-hero-desc{display:none}}@media (prefers-reduced-motion:reduce){.lobby-scene-react canvas{transition:none}.lobby-scene-glow{opacity:.5;animation:none}.result-coach-state .coach-spinner{animation:none}}.account-popover-layer-react{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#040a083d;position:fixed;inset:0}.account-popover-react{color:#eee3cf;background:#091512fb;border:1px solid #d3ae678f;border-radius:16px;width:min(360px,100vw - 32px);padding:14px;position:absolute;top:84px;right:max(24px,50vw - 450px);box-shadow:0 24px 68px #00000094}.account-popover-react>header{border-bottom:1px solid #cda9652e;grid-template-columns:52px 1fr 42px;align-items:center;gap:10px;padding-bottom:13px;display:grid}.account-popover-react header span{gap:3px;min-width:0;display:grid}.account-popover-react header strong{color:#f4ead7;text-overflow:ellipsis;white-space:nowrap;font-size:18px;overflow:hidden}.account-popover-react header small{color:#eee3cf9e;text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.account-avatar-large{width:52px;height:52px}.account-close{color:#eee3cfb3;background:0 0;border:0;width:44px;min-height:44px;font-size:30px}.account-growth-react{background:#1a342b57;border:1px solid #70b29147;border-radius:11px;grid-template-columns:1fr auto auto;align-items:baseline;gap:6px;margin:13px 0;padding:13px;display:grid}.account-growth-react span,.account-growth-react small{color:#eee3cfa3}.account-growth-react strong{color:#90d9b7}.account-growth-react progress{accent-color:#78c7a4;grid-column:1/-1;width:100%;height:8px}.account-actions-react{grid-template-columns:1fr 1fr;gap:7px;display:grid}.account-actions-react button{color:#eee3cf;text-align:left;background:#ffffff04;border:1px solid #cda96547;border-radius:10px;align-items:center;gap:10px;min-height:52px;padding:0 13px;display:flex}.account-actions-react button:hover,.account-actions-react button:focus-visible{background:#cda9651a;border-color:#d7b168}.account-actions-react svg{color:#d6b16d;fill:none;stroke:currentColor;width:25px;height:25px}.account-avatar-picker-react{border:1px solid #cda96533;border-radius:10px;margin-top:11px;padding:11px}.account-avatar-picker-react h3{color:#d4b879;margin:0 0 9px;font-size:14px}.account-avatar-picker-react>div{grid-template-columns:repeat(5,1fr);gap:7px;display:grid}.account-avatar-picker-react button{aspect-ratio:1;background:0 0;border:1px solid #0000;border-radius:50%;padding:3px}.account-avatar-picker-react button[aria-pressed=true]{background:#e5c47d1f;border-color:#e5c47d}.account-avatar-picker-react svg{width:100%;height:100%}.account-status-react{color:#c9ae78;min-height:18px;margin:8px 0 0;font-size:14px}.account-logout-react{color:#d9cdb8;background:#ffffff04;border:1px solid #cda96540;border-radius:10px;width:100%;min-height:48px;margin-top:4px}.auth-dialog-react .modal-dialog{max-width:510px}.dialog-desc-react{color:#eee3cf9e;margin:0 0 19px;line-height:1.7}.auth-form-react{gap:9px;display:grid}.auth-form-react label{color:#d4b879;font-size:14px}.auth-form-react input,.auth-form-react button{border-radius:9px;min-height:50px}.auth-form-react input{color:#f0e6d2;font:inherit;background:#050e0ca3;border:1px solid #cda96557;padding:0 14px}.auth-form-react button{color:#101814;background:#d3aa60;border:1px solid #d8af61;font-weight:700}.auth-link-row{justify-content:space-between;gap:10px;margin-top:10px;display:flex}.auth-link-row button{color:#d2b473;background:0 0;border:0;min-height:44px}.auth-status-react{color:#d79a7f;min-height:20px}.app-surface.is-assets{background:radial-gradient(circle at 18% 10%,#43503440,#0000 34%),#07110f;min-height:100dvh}.asset-center-react{color:#e9deca;width:min(1180px,100% - 32px);margin:0 auto;padding:126px 0 54px}.asset-center-shell-react{background:#07110fdb;border:1px solid #cda96557;border-radius:24px;min-height:calc(100dvh - 150px);overflow:hidden;box-shadow:0 28px 80px #00000047}.asset-hero-react{background-color:#081814bd;background-image:linear-gradient(#9eb59f0e 1px,#0000 1px),linear-gradient(90deg,#9eb59f0e 1px,#0000 1px);background-size:48px 48px;flex-direction:column;justify-content:flex-end;min-height:210px;padding:42px 58px 30px;display:flex;position:relative}.asset-hero-react:after{content:"";pointer-events:none;background:linear-gradient(#0000 25%,#07110f5c);position:absolute;inset:0}.asset-hero-react>*{z-index:1;position:relative}.asset-hero-react span{color:#caa96c;letter-spacing:.25em;font-size:14px}.asset-hero-react h1{color:#efe4cf;letter-spacing:.08em;margin:16px 0 8px;font-family:XiangqiKai,serif;font-size:clamp(42px,5vw,62px);font-weight:400}.asset-hero-react p{color:#e9deca9e;margin:0}.asset-tabs-react{border-bottom:1px solid #cda96533;gap:4px;padding:0 52px;display:flex}.asset-tabs-react button{color:#e9decaa3;background:0 0;border:0;min-width:96px;min-height:62px;font-size:16px;position:relative}.asset-tabs-react button.is-active{color:#f2e0bb;background:#cda96514;box-shadow:inset 0 0 0 5px #cda96557}.asset-content-react{min-height:460px;padding:40px 58px 52px}.asset-loading,.asset-error{align-content:center;place-items:center;gap:14px;min-height:300px;display:grid}.asset-error button{color:#ead8b4;background:0 0;border:1px solid #caa96c;border-radius:9px;min-height:46px;padding:0 20px}.asset-scope-react,.asset-filter-react,.asset-achievement-filters-react{background:#ffffff05;border:1px solid #cda96533;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:13px 16px;display:flex}.asset-scope-react>div{border:1px solid #cda96533;border-radius:9px;padding:4px;display:flex}.asset-scope-react button{color:#e9decaa6;background:0 0;border:0;border-radius:7px;min-height:42px;padding:0 15px}.asset-scope-react button.is-active{color:#f4e7cf;background:#cda96529}.asset-growth-card-react{background:linear-gradient(135deg,#163229a3,#1425205c);border:1px solid #5ba88447;border-radius:13px;margin-top:16px;padding:24px 22px}.asset-growth-card-react header{justify-content:space-between;align-items:end;gap:16px;display:flex}.asset-growth-card-react header div{gap:5px;display:grid}.asset-growth-card-react header span,.asset-growth-card-react header small{color:#e9deca9e}.asset-growth-card-react header strong{color:#9bd8ba;font-family:XiangqiKai,serif;font-size:28px;font-weight:400}.asset-growth-card-react>progress{accent-color:#77bea0;width:100%;height:9px;margin:16px 0}.asset-growth-card-react>div{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.asset-growth-card-react>div span{background:#040e0b3d;gap:6px;padding:10px 13px;display:grid}.asset-growth-card-react small{color:#e9deca94}.asset-summary-react{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px;display:grid}.asset-summary-react article{background:#ffffff04;border:1px solid #cda9653d;border-radius:11px;align-content:center;gap:7px;min-height:100px;padding:16px;display:grid}.asset-summary-react span{color:#e9deca9e}.asset-summary-react strong{color:#e7c985;font-family:Georgia,serif;font-size:30px;font-weight:400}.asset-overview-react{grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;display:grid}.asset-overview-react>section{border:1px solid #cda96533;border-radius:12px;padding:18px}.asset-overview-react h2{color:#d9bb7a;margin:0 0 12px;font-size:17px}.asset-overview-react article{border-top:1px solid #cda9651c;justify-content:space-between;align-items:center;gap:12px;min-height:52px;display:flex}.asset-overview-react article span{color:#e9decab3}.asset-filter-react{justify-content:start;align-items:end;margin-bottom:16px}.asset-filter-react>div{gap:4px;margin-right:auto;display:grid}.asset-filter-react small{color:#e9deca80}.asset-filter-react label,.asset-achievement-filters-react label{color:#e9deca9e;gap:5px;font-size:14px;display:grid}.asset-filter-react select,.asset-achievement-filters-react select,.asset-replay-react select{color:#e9deca;background:#101d19;border:1px solid #cda9654d;border-radius:8px;min-height:42px;padding:0 34px 0 12px}.asset-record-list-react{gap:8px;display:grid}.asset-record-row{background:#ffffff03;border:1px solid #cda96533;border-radius:10px;grid-template-columns:minmax(180px,1fr) auto 150px 74px;align-items:center;gap:16px;min-height:78px;padding:12px 16px;display:grid}.asset-record-row>div{gap:5px;display:grid}.asset-record-row span,.asset-record-row time{color:#e9deca8a;font-size:14px}.asset-record-row>b{color:#85caaa}.asset-record-row button,.asset-endgames-react button{color:#dfc58d;background:#cda9650f;border:1px solid #cda96566;border-radius:8px;min-height:44px}.asset-endgames-react,.asset-achievements-react{grid-template-columns:1fr 1fr;gap:12px;display:grid}.asset-endgames-react article,.asset-achievements-react article{background:#ffffff04;border:1px solid #cda9653d;border-radius:12px;grid-template-columns:42px 1fr;gap:12px;min-height:150px;padding:18px;display:grid}.asset-endgames-react article>span,.asset-achievements-react article>span{color:#d5b46f;border:1px solid #cda96559;border-radius:50%;place-items:center;width:42px;height:42px;display:grid}.asset-endgames-react h2{margin:0;font-size:17px}.asset-endgames-react p,.asset-endgames-react small{color:#e9deca94;margin:6px 0;display:block}.asset-endgames-react button{margin-top:10px;padding:0 14px}.asset-achievement-filters-react{align-items:end;margin-bottom:20px}.asset-achievement-progress-react{gap:9px;min-width:330px;margin-right:auto;display:grid}.asset-achievement-progress-react progress{accent-color:#c9aa6d;width:100%}.asset-achievements-react article{min-height:112px}.asset-achievements-react svg{fill:none;stroke:currentColor;width:23px;height:23px}.asset-achievements-react article>div{align-content:center;gap:8px;display:grid}.asset-achievements-react small{color:#e9deca8f}.asset-achievements-react progress{accent-color:#bea266;width:100%}.asset-footer-react{border-top:1px solid #cda96529;justify-content:space-between;align-items:center;gap:18px;min-height:94px;padding:18px 58px;display:flex}.asset-footer-react p{color:#e9deca8a}.asset-footer-react div{gap:8px;display:flex}.asset-footer-react button,.asset-replay-react>header button{color:#dec48d;background:0 0;border:1px solid #cda96557;border-radius:8px;min-height:44px;padding:0 16px}.asset-replay-react{padding:34px 58px 50px}.asset-replay-react>header{align-items:start;gap:22px;margin-bottom:22px;display:flex}.asset-replay-react>header div{gap:4px;display:grid}.asset-replay-react>header span{color:#c8aa70;letter-spacing:.18em;font-size:14px}.asset-replay-react>header h2{margin:0;font-family:XiangqiKai,serif;font-size:30px;font-weight:400}.asset-replay-react>header p{color:#e9deca8c;margin:0}.asset-replay-layout{grid-template-columns:minmax(0,1fr) 280px;gap:18px;display:grid}.asset-replay-stage{border:1px solid #cda96538;border-radius:12px;place-items:center;min-height:560px;padding:12px;display:grid}.asset-replay-stage .board-canvas{aspect-ratio:9/10;width:min(100%,600px)}.asset-replay-layout aside{border:1px solid #cda96538;border-radius:12px;align-content:start;gap:16px;padding:18px;display:grid}.asset-replay-layout aside>input{width:100%}.asset-replay-layout aside label{justify-content:space-between;align-items:center;display:flex}.asset-replay-layout aside p{color:#e9deca8c;line-height:1.65}.asset-replay-buttons{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.asset-replay-buttons button{color:#dec48d;background:0 0;border:1px solid #cda96547;border-radius:7px;min-height:43px}.asset-replay-buttons button.is-primary{color:#101914;background:#ccaa68}@media (width<=760px){.account-popover-react{top:auto;right:8px;bottom:max(8px, env(safe-area-inset-bottom));border-radius:18px;width:auto;max-height:min(78dvh,680px);left:8px;overflow:auto}.asset-center-react{width:calc(100% - 16px);padding:80px 0 28px}.asset-center-shell-react{border-radius:15px}.asset-hero-react{min-height:160px;padding:28px 20px 20px}.asset-hero-react h1{font-size:40px}.asset-tabs-react{padding:0 8px;overflow-x:auto}.asset-tabs-react button{min-width:82px;min-height:54px}.asset-content-react{padding:18px 14px 30px}.asset-scope-react,.asset-filter-react,.asset-achievement-filters-react{flex-direction:column;align-items:stretch}.asset-scope-react>div{grid-template-columns:1fr 1fr;display:grid}.asset-growth-card-react>div,.asset-summary-react{grid-template-columns:1fr 1fr}.asset-overview-react,.asset-endgames-react,.asset-achievements-react{grid-template-columns:1fr}.asset-filter-react>div,.asset-achievement-progress-react{width:100%;min-width:0;margin:0}.asset-record-row{grid-template-columns:1fr auto;gap:8px}.asset-record-row time{grid-column:1}.asset-record-row button{grid-area:2/2}.asset-footer-react{flex-direction:column;align-items:stretch;padding:18px 14px}.asset-footer-react div{grid-template-columns:1fr 1fr;display:grid}.asset-replay-react{padding:22px 14px 30px}.asset-replay-layout{grid-template-columns:1fr}.asset-replay-stage{min-height:420px}}@media (height<=520px) and (orientation:landscape){.app-surface.is-lobby .app-header--lobby,.app-surface.is-assets .app-header--lobby{min-height:52px;display:grid;top:8px}.app-surface.is-assets .asset-center-react{padding-top:70px}.app-surface.is-assets .asset-hero-react{min-height:140px;padding-block:20px 16px}.app-surface.is-assets .asset-content-react{padding-top:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}html[data-reduce-motion=true] *,html[data-reduce-motion=true] :before,html[data-reduce-motion=true] :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.app-surface.is-lobby{isolation:isolate;scrollbar-color:#caa56a57 transparent;scrollbar-width:thin;color:#eee5d3;background:#0b100f;height:100dvh;min-height:0;position:relative;overflow:hidden auto}.app-surface.is-lobby::-webkit-scrollbar{width:7px}.app-surface.is-lobby::-webkit-scrollbar-thumb{background:#caa56a57;border-radius:999px}.app-surface.is-lobby:before{z-index:-2;aspect-ratio:596/656;opacity:.13;filter:saturate(.68)contrast(1.04)brightness(.42);transform-origin:50% 54%;content:"";pointer-events:none;background:url(/assets/img/portal/xiangqi.webp) 50%/contain no-repeat;width:min(650px,76vw);position:fixed;top:178px;left:50%;transform:translate(-24%)perspective(1150px)rotateX(53deg)rotate(-8deg)scale(1.34)}.app-surface.is-lobby:after{z-index:-1;content:"";pointer-events:none;background:radial-gradient(circle at 4% 5%,#60937542,#0000 30%),radial-gradient(circle at 79% 34%,#d9b86c17,#0000 2px),linear-gradient(#070c0b87,#070c0b87);position:fixed;inset:0;box-shadow:inset 0 0 220px #0000009e}.app-header--lobby{z-index:90;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:radial-gradient(circle at 8% -24%,#ffe7b121,#0000 32%),linear-gradient(112deg,#1c2d27f7,#0a1310fb 44%,#050b09fb);border:1px solid #e1c3843d;border-radius:16px;grid-template-columns:auto 1fr auto;gap:clamp(8px,1.25vw,18px);width:min(1180px,100vw - 48px);min-height:72px;margin:0;padding:8px 12px;position:fixed;top:18px;left:50vw;overflow:visible;transform:translate(-50%);box-shadow:0 8px 24px #0000003d,inset 0 1px #fff9e20d}.app-header--lobby .brand{gap:12px;min-height:52px;padding:0 10px 0 2px}.app-header--lobby .brand img{width:42px;height:42px}.app-header--lobby .brand strong{color:#f5f0e5;letter-spacing:.105em;align-items:center;gap:8px;font-family:Bahnschrift,Aptos Display,Segoe UI Variable Display,sans-serif;font-size:15px;font-weight:700;line-height:1;display:flex}.app-header--lobby .brand strong:after{content:"";background:radial-gradient(circle at 35% 30%,#fff6cf 0 18%,#e0b86c 42%,#8a5427 100%);border-radius:50%;flex:none;width:5px;height:5px;box-shadow:0 0 8px #e0b86c7a}.app-header--lobby .brand small{color:#e8ddc47a;letter-spacing:.22em;font-size:14px;font-weight:500}.app-header--lobby nav{justify-content:flex-start;align-self:stretch;gap:6px}.app-header--lobby nav button,.app-header--lobby nav a{color:#eee7d7ad;letter-spacing:.035em;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;min-height:44px;padding:0 clamp(11px,1.25vw,17px);font-size:14px;font-weight:600;text-decoration:none;display:inline-flex;position:relative}.app-header--lobby nav button:after,.app-header--lobby nav a:after{opacity:0;content:"";background:linear-gradient(90deg,#0000,#f0cf83 28% 72%,#0000);border-radius:999px;width:18px;height:2px;position:absolute;bottom:4px;left:50%;transform:translate(-50%,2px)scaleX(.55);box-shadow:0 0 8px #e7c98261}.app-header--lobby nav :is(button,a):hover,.app-header--lobby nav :is(button,a):focus-visible,.app-header--lobby nav .is-active{color:#f2e7d1;background:#e1c38413}.app-header--lobby nav :is(button,a):hover:after,.app-header--lobby nav :is(button,a):focus-visible:after,.app-header--lobby nav .is-active:after{opacity:1;transform:translate(-50%)scale(1)}.app-header--lobby .header-actions{gap:4px}.app-header--lobby .account-button{background:#e1c3840e;border-color:#e1c3846b;border-radius:50%;width:46px;min-height:46px;padding:3px;box-shadow:0 0 0 1px #050c0ab3,0 6px 18px #0003}.app-header--lobby .account-button img{width:38px;height:38px;display:block}.app-header--lobby .account-button b{display:none}.app-header--lobby .locale-select{color:#d9bd79;border-radius:12px;width:auto;min-width:122px;min-height:44px;display:block;position:relative}.app-header--lobby .locale-trigger{color:#efe0bed1;background:0 0;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-width:122px;min-height:44px;padding:0 11px;display:flex}.app-header--lobby .locale-trigger:hover,.app-header--lobby .locale-trigger:focus-visible,.app-header--lobby .locale-select.is-open .locale-trigger{color:#f2e7d1;background:#e1c3841a;border-color:#e1c38475}.app-header--lobby .locale-trigger:focus-visible{outline-offset:2px;outline:2px solid #f0cd82e0}.app-header--lobby .locale-trigger svg{fill:none;stroke:currentColor;stroke-width:1.45px;flex:0 0 18px;width:18px;height:18px}.app-header--lobby .locale-select>span:not(.sr-only){color:#eee7d7b8;font-size:14px;font-weight:700}.app-header--lobby .locale-current{color:#eee7d7b8;min-width:0;font-size:14px;font-weight:600}.app-header--lobby .locale-current i{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.app-header--lobby .locale-current b{letter-spacing:.08em;font-family:Bahnschrift,Aptos Display,sans-serif;font-size:14px;display:none}.app-header--lobby .locale-chevron{border-bottom:1.5px solid;border-right:1.5px solid;flex:0 0 7px;width:7px;height:7px;margin:-3px 1px 0 2px;transition:transform .16s;transform:rotate(45deg)}.app-header--lobby .locale-select.is-open .locale-chevron{margin-top:3px;transform:rotate(225deg)}.app-header--lobby .locale-native{opacity:0;pointer-events:none;width:1px;min-width:0;height:1px;min-height:0;position:fixed;left:-10000px}.app-header--lobby .locale-menu{z-index:190;background:linear-gradient(145deg,#2a3e3775,#0000 38%),#070f0dfa;border:1px solid #ddb56975;border-radius:16px;gap:3px;width:244px;max-height:min(620px,100dvh - 92px);padding:8px;display:grid;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden auto;box-shadow:0 20px 46px #00000075,inset 0 1px #f5d89914}.app-header--lobby .locale-menu[hidden]{display:none}.app-header--lobby .locale-option{color:#e5e0d3bd;text-align:left;background:0 0;border:1px solid #0000;border-radius:10px;grid-template-columns:38px minmax(0,1fr) 14px;align-items:center;gap:9px;min-height:44px;padding:5px 10px 5px 7px;display:grid;position:relative}.app-header--lobby .locale-option:hover,.app-header--lobby .locale-option:focus-visible{color:#f2e7d1;background:#caa56a17;border-color:#ddb5694d;outline:0}.app-header--lobby .locale-option:focus-visible{box-shadow:inset 0 0 0 1px #f0cd829e}.app-header--lobby .locale-option.is-selected{color:#f2e8d3;background:linear-gradient(90deg,#4381693d,#caa56a12);border-color:#7ecaad52}.app-header--lobby .locale-option-code{color:#e7c278bd;letter-spacing:.05em;background:#caa56a0e;border:1px solid #d2ac6638;border-radius:8px;place-items:center;width:36px;height:28px;font-family:Bahnschrift,Aptos Display,sans-serif;font-size:14px;font-weight:700;display:grid}.app-header--lobby .locale-option.is-selected .locale-option-code{color:#a8dfc9;background:#43816933;border-color:#7ecaad6b}.app-header--lobby .locale-option-name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.app-header--lobby .locale-option-check{color:#80cdb0;opacity:0}.app-header--lobby .locale-option.is-selected .locale-option-check{opacity:1}.feedback-launcher{z-index:80;right:max(24px, calc(env(safe-area-inset-right) + 8px));bottom:max(24px, calc(env(safe-area-inset-bottom) + 8px));color:#e9e3d5;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:linear-gradient(110deg,#5b9d8926,#0000 62%),#09100ff0;border:1px solid #7ecaad66;border-radius:15px;justify-content:flex-start;align-items:center;gap:11px;min-width:154px;min-height:50px;padding:0 16px;transition:color .16s,background .16s,border-color .16s,transform .16s;display:inline-flex;position:fixed;box-shadow:0 18px 40px #0000005c,inset 0 1px #ffffff0d}.feedback-launcher:after{content:"";background:#7db9a5;border-radius:50%;width:6px;height:6px;margin-left:auto;box-shadow:0 0 10px #7db9a59e}.feedback-launcher:hover{color:#fff6df;background:linear-gradient(110deg,#5b9d8940,#0000 62%),#0c1613f7;border-color:#99d8c1a8;transform:translateY(-2px)}.feedback-launcher:focus-visible{outline-offset:3px;outline:2px solid #91d2ba}.feedback-launcher.is-dialog-open{visibility:hidden;pointer-events:none}.feedback-launcher svg{fill:none;stroke:#99c9b9;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 24px;width:24px;height:24px}.feedback-launcher-label{letter-spacing:.035em;text-shadow:0 2px 3px #000000b8;font-size:14px;font-weight:650}@media (width>=761px) and (width<=1600px){.feedback-launcher{justify-content:center;width:52px;min-width:52px;padding:0}.feedback-launcher-label,.feedback-launcher:after{display:none}}.feedback-dialog{width:min(100%,640px)}.feedback-dialog .modal-content{padding-top:6px}.feedback-form{gap:14px;display:grid}.feedback-form textarea,.feedback-form input{color:#eee5d4;-webkit-user-select:text;user-select:text;background:#070e0cc7;border:1px solid #cdb58447;border-radius:10px;width:100%;font-size:16px}.feedback-form textarea{resize:vertical;min-height:170px;padding:14px;line-height:1.6}.feedback-form input{min-height:48px;padding:0 14px}.feedback-form textarea::placeholder,.feedback-form input::placeholder{color:#ded7c77a}.feedback-form textarea:focus-visible,.feedback-form input:focus-visible{outline-offset:1px;border-color:#7ecaadbd;outline:2px solid #7ecaad52}.feedback-status{color:#e5ded0b3;min-height:24px;font-size:14px;line-height:1.5}.feedback-status.is-submitting{color:#d8bd80}.feedback-status.is-success{color:#91d2ba}.feedback-status.is-error{color:#f0a49b}@media (width<=1050px){.app-header--lobby .locale-select,.app-header--lobby .locale-trigger{width:72px;min-width:72px}.app-header--lobby .locale-trigger{gap:7px;padding:0 9px}.app-header--lobby .locale-current i,.app-header--lobby .locale-chevron{display:none}.app-header--lobby .locale-current b{display:block}}@media (width<=520px){.app-header--lobby .locale-select,.app-header--lobby .locale-trigger{width:64px;min-width:64px}.app-header--lobby .locale-menu{width:min(244px,100vw - 24px);max-height:calc(100dvh - 82px)}}.portal-home.safe-zone{width:min(1160px,100%);min-height:100vh;margin-left:auto;margin-right:auto;padding:112px 0 24px}@media (width>=761px){.app-surface.is-lobby{padding-left:clamp(20px,4vw,64px);padding-right:calc(clamp(20px,4vw,64px) - 3px)}}.portal-hero{z-index:2;text-align:center;padding:12px 0 24px;position:relative}.portal-kicker{display:none}.portal-hero h1{color:#f2e8d4;letter-spacing:.01em;text-shadow:0 5px 28px #0000008c;margin:0;font-family:XiangqiKai,Noto Serif SC,Songti SC,Georgia,serif;font-size:clamp(32px,3.2vw,44px);font-weight:500;line-height:1.16}.portal-hero h1 span{color:#f2e8d4}.portal-hero h1 em{color:#f0d18a;font-style:normal}.portal-hero-desc{max-width:620px;color:var(--text-muted);margin:7px auto 0;font-size:15px;line-height:1.75}.portal-hero-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.portal-primary-action{color:#151815;background:linear-gradient(135deg,#e2c88e,#c5a365);border:1px solid #caa56a;border-radius:9px;justify-content:center;align-items:center;gap:18px;min-height:48px;padding:0 20px;font-size:14px;font-weight:650;transition:transform .16s;display:inline-flex;box-shadow:0 6px 20px #0003}.portal-primary-action:hover{transform:translateY(-1px)}.portal-secondary-action{border:1px solid var(--surface-line);color:#d7dfd3;background:#1b2c24b3;border-radius:9px;justify-content:center;align-items:center;gap:12px;min-height:48px;padding:0 20px;font-size:14px;transition:border-color .16s,background .16s;display:inline-flex}.portal-secondary-action:hover{background:#24372e;border-color:#91ad9b}.portal-random-icon{fill:none;stroke:currentColor;stroke-width:1.45px;stroke-linecap:round;stroke-linejoin:round;width:21px;height:21px}.portal-primary-action>span{transition:transform .16s}.portal-primary-action:hover>span{transform:translate(3px)}.portal-games{z-index:1;border-top:1px solid #caa56a29;padding:20px 0 48px;scroll-margin-top:110px;position:relative}.portal-games-head{margin-bottom:13px}.portal-games-head h2{color:#ece0c8;letter-spacing:.01em;margin:0;font-family:XiangqiKai,Noto Serif SC,Songti SC,Georgia,serif;font-size:clamp(19px,2vw,25px);font-weight:500}.portal-card-grid.game-grid{background:0 0;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:clamp(12px,1.4vw,18px);margin-top:0;display:grid}.portal-card-grid .game-card{background:linear-gradient(160deg,#192720,#101c17);border:1px solid #caa56a33;border-radius:14px;min-height:0;transition:border-color .18s,transform .18s,box-shadow .18s;position:relative;overflow:hidden;box-shadow:0 4px 14px #0000001f}.portal-card-grid .game-card:hover,.portal-card-grid .game-card:focus-within{border-color:#f0cd8280;transform:translateY(-2px);box-shadow:0 12px 28px #00000038,inset 0 1px #fff9e214}.game-card-cover{width:100%;min-height:120px;color:inherit;text-align:left;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:14px;padding:16px 20px;text-decoration:none;display:grid}.portal-card-grid .game-card-art{aspect-ratio:auto;background:linear-gradient(150deg,#342a1cb3,#0e1814e6);border:1px solid #caa56a47;border-radius:11px;width:88px;height:88px;position:relative;overflow:hidden}.portal-card-grid .game-card-art:after{content:none}.portal-card-grid .game-card-art img{object-fit:contain;opacity:.9;filter:none;width:calc(100% - 10px);height:calc(100% - 10px);position:absolute;inset:5px}.game-card-glyph{color:#f2d58f;background:#051812e0;border:1px solid #81e1c280;border-radius:50%;place-items:center;width:26px;height:26px;display:grid;position:absolute;bottom:4px;right:4px;box-shadow:0 0 14px #00000080}.game-card-glyph svg{fill:none;stroke:currentColor;stroke-width:1.55px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.portal-card-grid .game-card-copy{gap:3px;min-height:0;padding:0;display:grid}.portal-card-grid .game-card-kicker{display:none}.portal-card-grid .game-card-copy strong{color:#f2e7d1;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;font-family:inherit;font-size:20px;font-weight:650;line-height:1.4}.portal-card-grid .game-card-copy small{color:var(--text-muted);overflow-wrap:anywhere;font-size:14px;line-height:1.5}.game-card-enter{display:none}.portal-hero-random:disabled{cursor:wait;opacity:1}.portal-hero-random.is-randomizing .portal-random-icon{animation:.64s linear infinite portal-random-spin}.play-card-modes{border-top:1px solid var(--surface-line);gap:8px;margin:0 20px;padding:12px 0 14px;display:flex}.play-card-modes .play-mode{flex:1;min-width:0}.play-card-modes .play-mode:first-child{color:#eed39b;background:#caa56a1a;border-color:#caa56a57}.play-card-modes .play-mode:first-child:hover{border-color:var(--action-gold);background:#caa56a2e}.play-modes-toggle{min-width:52px;min-height:48px;color:var(--text-muted);background:0 0;border:0;border-radius:8px;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px;padding:6px;font-size:14px;display:flex}.play-modes-toggle:hover,.play-modes-toggle[aria-expanded=true]{color:var(--action-gold);background:#caa56a14}.play-card-extra-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0 20px;padding:0 0 18px;display:grid}.play-card-extra-modes[hidden]{display:none}.play-mode{color:#eee5d2d1;text-align:center;background:#caa56a0d;border:1px solid #caa56a33;border-radius:8px;justify-content:center;align-items:center;gap:7px;min-height:48px;padding:0 9px;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .16s,color .16s,background .16s,transform .16s;display:flex}.play-mode>span{overflow-wrap:anywhere;line-height:1.4}.play-mode-icon{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:16px;height:16px}.play-mode:hover{color:#fff0c9;background:#caa56a21;border-color:#f0cd82a8;transform:translateY(-1px)}.play-mode:active{transform:translateY(0)scale(.98)}.portal-games.is-drawing .play-card:not(.is-scan):not(.is-awake){opacity:.34;filter:blur(.4px)}.portal-games.is-drawing .play-card{pointer-events:none}.play-card.is-scan{z-index:30;border-color:#f0cd82b8;opacity:1!important;filter:none!important}.play-card.is-scan:after{z-index:2;content:"";pointer-events:none;border:1px solid #f0cd82b8;border-radius:14px;animation:.26s cubic-bezier(.16,.8,.25,1) both portal-card-scan-ring;position:absolute;inset:-1px;box-shadow:0 0 26px #f0cd8247,inset 0 0 22px #79d5b314}.play-card.is-impact{animation:.26s cubic-bezier(.14,.72,.22,1) both portal-card-impact}.play-card.is-awake{z-index:32;border-color:#f0cd82d6;animation:.28s cubic-bezier(.18,.8,.2,1) both portal-card-awake;box-shadow:0 24px 58px #00000075,inset 0 0 0 1px #ffeab929;opacity:1!important;filter:none!important}.portal-games.is-drawing .play-card.is-awake{pointer-events:auto}.portal-selection-trail{--trail-x:0px;--trail-y:0px;--trail-length:0px;--trail-mid:0px;--trail-lift:16px;--trail-tail:96px;--trail-angle:0deg;--trail-duration:.16s;--trail-path-top:-20px;--trail-path-height:40px;z-index:40;width:var(--trail-length);height:1px;transform:translate3d(var(--trail-x), calc(var(--trail-y) - 1px), 0) rotate(var(--trail-angle));transform-origin:0;pointer-events:none;border-radius:999px;position:absolute;top:0;left:0}.portal-selection-path{top:var(--trail-path-top);width:var(--trail-length);height:var(--trail-path-height);fill:none;pointer-events:none;position:absolute;left:0;overflow:visible}.portal-selection-path path{opacity:0;stroke-linecap:round;vector-effect:non-scaling-stroke}.portal-selection-path-glow{stroke:#79e0bc70;stroke-width:7px;filter:blur(3px)drop-shadow(0 0 8px #6bdcb575)}.portal-selection-path-core{stroke:url(#reactPortalSelectionTrailGradient);stroke-width:1.8px;filter:drop-shadow(0 0 3px #fff6d7b3)drop-shadow(0 0 7px #79d5b361)}.portal-selection-trail i{opacity:0;background:radial-gradient(circle,#fffdf7 0 13%,#ffe5a6 25%,#e1af55 40%,#72d3b2 60%,#0000 74%);border:1px solid #fff7dcf5;border-radius:50%;width:18px;height:18px;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)scale(.7);box-shadow:0 0 8px #fffbebfa,0 0 19px #f0c267e0,0 0 34px #68dcb59e}.portal-selection-trail i:before,.portal-selection-trail i:after{content:"";position:absolute;top:50%;transform:translateY(-50%)}.portal-selection-trail i:before{width:var(--trail-tail);clip-path:polygon(0 50%,100% 0,100% 100%);filter:drop-shadow(0 0 4px #6fe2bb7a)drop-shadow(0 0 8px #eebe606b);transform-origin:100%;background:linear-gradient(90deg,#0000 0%,#57c29d1a 18%,#6bdcb566 52%,#efbe5ec7 82%,#fff9dff5 100%);height:10px;right:58%}.portal-selection-trail i:after{background:#f8d27feb;border-radius:50%;width:4px;height:4px;right:calc(100% + 18px);box-shadow:-16px -5px #79ddb8b8,-36px 4px 0 -1px #f5c970a8,-60px -3px 0 -1px #79d5b375,-86px 5px 0 -1px #f0cd824d}.portal-selection-trail.is-jumping .portal-selection-path-glow{animation:portal-selection-path-glow var(--trail-duration) ease-out both}.portal-selection-trail.is-jumping .portal-selection-path-core{animation:portal-selection-path-core var(--trail-duration) ease-out both}.portal-selection-trail.is-jumping i{animation:portal-selection-comet var(--trail-duration) cubic-bezier(.22, .62, .24, 1) both}.portal-entry-toast{--guide-arrow-offset:50%;z-index:120;opacity:0;color:#eee5d2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transform-origin:50%;pointer-events:none;background:linear-gradient(135deg,#071912f7,#030e0af5);border:1px solid #d7aa598f;border-radius:14px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;width:min(360px,100vw - 28px);min-height:112px;padding:15px 16px 18px;transition:opacity .18s,filter .18s,transform .24s cubic-bezier(.2,.8,.2,1);display:grid;position:fixed;top:0;left:0;transform:translateY(10px)scale(.96);box-shadow:0 22px 68px #00000094,inset 0 0 36px #78d8b40a}.portal-entry-toast:before{content:"";background:#061710;border:1px solid #d7aa598f;width:10px;height:10px;position:absolute}.portal-entry-toast.place-right:before{top:var(--guide-arrow-offset);border-top:0;border-right:0;left:-6px;transform:translateY(-50%)rotate(45deg)}.portal-entry-toast.place-left:before{top:var(--guide-arrow-offset);border-bottom:0;border-left:0;right:-6px;transform:translateY(-50%)rotate(45deg)}.portal-entry-toast.place-below:before{top:-6px;left:var(--guide-arrow-offset);border-bottom:0;border-right:0;transform:translate(-50%)rotate(45deg)}.portal-entry-toast.place-above:before{bottom:-6px;left:var(--guide-arrow-offset);border-top:0;border-left:0;transform:translate(-50%)rotate(45deg)}.portal-entry-toast.is-visible{opacity:1;pointer-events:auto;transform:translateY(0)scale(1)}.portal-toast-sigil{color:#f2d58f;background:radial-gradient(circle at 36% 28%,#f0d08a29,#071c14eb);border:1px solid #d7aa5994;border-radius:48% 52% 46% 54%;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 0 24px #79d5b31f}.portal-toast-sigil svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:27px;height:27px;overflow:visible}.portal-toast-copy{gap:3px;min-width:0;display:grid}.portal-toast-copy small{color:#8bdfc0;letter-spacing:.04em;font-size:14px;font-weight:800}.portal-toast-copy strong{color:#f5e5bf;overflow-wrap:anywhere;font-family:STSong,Songti SC,Georgia,serif;font-size:18px;font-weight:600;line-height:1.25}.portal-toast-copy i{color:#eee5d29e;font-size:14px;font-style:normal}.portal-toast-actions{grid-column:1/-1;gap:8px;margin-top:5px;display:flex}.portal-entry-go{border:1px solid var(--action-gold);color:#142019;background:var(--action-gold);border-radius:8px;flex:1;justify-content:center;align-items:center;gap:12px;min-height:44px;font-size:14px;font-weight:650;display:flex}.portal-entry-cancel{color:#eee5d2c2;white-space:nowrap;background:#d7aa590f;border:1px solid #d7aa594d;border-radius:9px;justify-content:center;align-items:center;gap:5px;min-width:62px;min-height:44px;padding:0 9px;font-size:14px;transition:border-color .16s,color .16s,background .16s,transform .16s;display:inline-flex}.portal-entry-cancel svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:15px;height:15px}.portal-entry-cancel:hover,.portal-entry-cancel:focus-visible{color:#fff0c9;background:#d7aa5921;border-color:#f0cd82b8;outline:none;transform:translateY(-1px)}.portal-entry-cancel:focus-visible{box-shadow:0 0 0 2px #062019,0 0 0 4px #8fe2c2b8}.portal-toast-progress{transform-origin:0;background:linear-gradient(90deg,#79d5b3,#e3ba6b);border-radius:2px;height:2px;position:absolute;bottom:9px;left:14px;right:14px;box-shadow:0 0 10px #79d5b33d}.portal-entry-toast.is-visible .portal-toast-progress{animation:2s linear forwards portal-toast-progress}@keyframes portal-random-spin{to{transform:rotate(360deg)}}@keyframes portal-card-awake{0%{transform:translateY(-2px)scale(1)}55%{transform:translateY(-4px)scale(1.035)}to{transform:translateY(-3px)scale(1.02)}}@keyframes portal-selection-path-glow{0%{opacity:0}12%{opacity:.42}72%{opacity:.36}to{opacity:0}}@keyframes portal-selection-path-core{0%{opacity:0;stroke-width:1.2px}10%{opacity:.9}72%{opacity:.76;stroke-width:1.8px}to{opacity:0;stroke-width:2.4px}}@keyframes portal-selection-comet{0%{opacity:0;transform:translate(-50%,-50%)scale(.56)}8%{opacity:1}52%{opacity:1;transform:translate3d(calc(var(--trail-mid) - 50%), calc(-50% - var(--trail-lift)), 0) scale(1)}90%{opacity:1;transform:translate3d(calc(var(--trail-length) - 50%), -50%, 0) scale(1.06)}to{opacity:0;transform:translate3d(calc(var(--trail-length) - 50%), -50%, 0) scale(1.42)}}@keyframes portal-card-impact{0%{transform:translateY(-2px)scale(1)}38%{transform:translateY(-4px)scale(1.028)}to{transform:translateY(-2px)scale(1)}}@keyframes portal-card-scan-ring{0%{opacity:0;transform:scale(.985)}55%{opacity:.8;transform:scale(1.008)}to{opacity:.55;transform:scale(1)}}@keyframes portal-toast-progress{to{transform:scaleX(0)}}@media (width<=1100px){.app-header--lobby .brand small{display:none}}@media (width<=1023px){.portal-card-grid.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-header--lobby{grid-template-columns:minmax(0,1fr) auto;width:calc(100% - 32px);min-height:58px;padding:5px 6px 5px 8px;top:10px}.app-header--lobby .brand{gap:6px;min-width:0;min-height:48px;padding:0}.app-header--lobby .brand img{width:34px;height:34px}.app-header--lobby .brand span{min-width:0;display:block}.app-header--lobby .brand strong{letter-spacing:0;white-space:nowrap;font-size:12px}.app-header--lobby .brand strong:after,.app-header--lobby nav{display:none}.app-header--lobby .account-button{width:44px;min-height:44px}.app-header--lobby .account-button img{width:34px;height:34px}.portal-home.safe-zone{width:calc(100vw - 32px);margin-left:16px;padding-top:90px}.portal-hero{text-align:left;padding:12px 0 24px}.portal-hero h1{font-size:clamp(28px,7.4vw,36px);line-height:1.3}.portal-hero h1 em{display:block}html:lang(zh) .portal-hero h1 em{display:inline}.portal-card-grid .game-card-art{width:76px;height:76px}.portal-hero-desc{margin-left:0;font-size:14px}.portal-hero-actions{justify-content:flex-start}.portal-hero-actions>button{flex:140px;padding-inline:12px}.portal-card-grid.game-grid{grid-template-columns:minmax(0,1fr)}.portal-card-grid .game-card{display:block}.game-card-cover{min-height:108px;padding:16px}.play-card-modes,.play-card-extra-modes{margin-inline:16px}.feedback-launcher{right:max(16px, calc(env(safe-area-inset-right) + 8px));bottom:max(16px, calc(env(safe-area-inset-bottom) + 8px));border-radius:50%;justify-content:center;width:52px;min-width:52px;min-height:52px;padding:0}.feedback-launcher:after,.feedback-launcher-label{display:none}.feedback-dialog .modal-content{padding-top:4px}.feedback-form textarea{min-height:140px}}@media (width<=359px){.app-header--lobby .brand span{display:none}}@media (prefers-reduced-motion:reduce){.portal-selection-trail,.portal-selection-path path,.portal-selection-trail i,.portal-hero-random.is-randomizing .portal-random-icon,.play-card.is-scan:after,.play-card.is-impact,.play-card.is-awake,.portal-entry-toast.is-visible .portal-toast-progress{animation:none!important}.feedback-launcher{transition:none}}@media (width<=360px){html:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)) .play-card-modes{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}html:not(:lang(zh)):not(:lang(ja)):not(:lang(ko)) .play-modes-toggle{grid-column:1/-1;justify-content:flex-end;min-height:44px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.primary-button,.portal-primary-action,.portal-secondary-action,.play-mode{transition:none}}html[data-reduce-motion=true]{scroll-behavior:auto}html[data-reduce-motion=true] .primary-button,html[data-reduce-motion=true] .portal-primary-action,html[data-reduce-motion=true] .portal-secondary-action,html[data-reduce-motion=true] .play-mode{transition:none}:root{--jade-bg:#031813;--jade-deep:#061e18;--jade-surface:#0c2921;--jade-raised:#15382d;--jade-hover:#1c4436;--jade-gold:#ddc183;--jade-gold-bright:#f0d69b;--jade-gold-ink:#18251c;--jade-text:#f2ecdc;--jade-muted:#bbc5b6;--jade-line:#51604a;--jade-line-soft:#2b493c;--jade-success:#97d2b2;--jade-danger:#ef9e8d;--jade-font:"Microsoft YaHei", "PingFang SC", "Noto Sans SC", sans-serif;--jade-display:"Noto Serif SC", "Songti SC", "SimSun", Georgia, serif;--jade-radius:10px;--jade-shadow:0 16px 48px #00080547;--jade-button-gold:linear-gradient(180deg, #efdaa1 0%, #ddbf7e 55%, #cfac68 100%);--jade-button-green:linear-gradient(180deg, #183c30, #09271f);--jade-button-shadow:inset 0 1px 0 #fff5d8, inset 0 0 0 3px #fff1c42e, 0 3px 0 #796137, 0 7px 14px #0003;--jade-button-secondary-shadow:inset 0 1px 0 #efdaa11f, 0 2px 0 #03130e;--jade-panel-shadow:inset 0 0 0 3px #dabe7d0d, 0 18px 48px #00080559}.app-surface.is-lobby{isolation:isolate;background:var(--jade-bg);height:100dvh;min-height:0;padding:0}.app-surface.is-lobby:before{z-index:-1;opacity:1;aspect-ratio:auto;filter:none;background:linear-gradient(90deg,#02150f94,#02150f1f 65%,#02150f4d),url(/assets/img/jade/hero.webp) 50% 52%/cover no-repeat;width:100%;height:294px;position:absolute;inset:0 0 auto;transform:none}.app-surface.is-lobby:after{content:none}.app-surface .app-header--lobby{border:0;border-bottom:1px solid var(--jade-line);width:100%;min-height:80px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:#03161061;border-radius:0;grid-template-columns:auto 1fr auto;gap:36px;margin:0;padding:8px max(32px,50% - 695px);position:relative;top:auto;left:auto;transform:none}.app-surface .app-header--lobby .brand{gap:13px;padding:0}.app-surface .app-header--lobby .brand img{width:44px;height:44px}.app-surface .app-header--lobby .brand strong{color:var(--jade-text);letter-spacing:.025em;font-size:18px;font-family:var(--jade-font)}.app-surface .app-header--lobby .brand strong:after{background:var(--jade-gold);width:4px;height:4px;box-shadow:none}.app-surface .app-header--lobby .brand small{color:var(--jade-muted);letter-spacing:.17em;margin-top:6px;font-size:14px;display:block}.app-surface .app-header--lobby nav{align-items:center;gap:12px}.app-surface .app-header--lobby nav :is(button,a){min-height:44px;color:var(--jade-muted);border-radius:9px;padding:0 18px;font-size:15px}.app-surface .app-header--lobby nav .is-active{color:var(--jade-text);background:#dec7911a}.app-surface .app-header--lobby .header-actions{gap:14px}.app-surface .app-header--lobby .account-button{width:44px;min-height:44px;box-shadow:none;background:0 0;border:0;padding:1px}.app-surface .account-button.is-guest{border-radius:999px;gap:5px;width:auto}.app-surface .account-button.is-guest b{text-overflow:ellipsis;max-width:6em;color:var(--jade-gold);white-space:nowrap;font-size:13px;display:block;overflow:hidden}.app-surface .app-header--lobby .locale-trigger{color:var(--jade-text);background:0 0;border:0;font-size:14px}.app-surface .app-header--lobby .locale-select{min-width:125px}.app-surface .app-header--lobby .locale-menu{border:1px solid var(--jade-line);background:var(--jade-deep);box-shadow:var(--jade-shadow);border-radius:12px}.app-surface .app-header--lobby .locale-option{color:var(--jade-text)}.app-surface .app-header--lobby .locale-option:is(:hover,.is-selected){background:var(--jade-raised)}.app-surface .portal-home.safe-zone{width:min(1440px,100% - 64px);margin:0 auto;padding:0}.app-surface .portal-hero{text-align:left;grid-template-columns:minmax(0,1fr) 310px;align-items:center;gap:36px;min-height:276px;padding:28px 0;display:grid}.app-surface .portal-hero h1{letter-spacing:.025em;font-size:clamp(36px,4vw,58px);font-weight:500;line-height:1.2}.app-surface .portal-hero h1 span{color:var(--jade-text)}.app-surface .portal-hero h1 em{color:var(--jade-gold-bright)}.app-surface .portal-hero-desc{color:#e0e2d4;max-width:760px;margin:16px 0 0;font-size:clamp(15px,1.3vw,18px);line-height:1.7}.app-surface .portal-hero-actions{flex-direction:column;align-items:stretch;gap:9px;margin:0;display:flex}.app-surface .portal-hero-actions>p{color:var(--jade-muted);text-align:center;margin:3px 0 0;font-size:14px;line-height:1.6}.app-surface .portal-hero-copy{min-width:0}.app-surface .portal-hero-copy .portal-kicker{display:none}.app-surface .portal-hero-actions>button{color:#172016;background:linear-gradient(#f0d89f,#d5ae66);border:1px solid #f5dfaa;border-radius:10px;justify-content:flex-start;gap:14px;min-height:68px;padding:0 24px;font-size:22px;font-weight:700;transition:background .16s,box-shadow .16s,transform .16s;box-shadow:inset 0 0 0 3px #6f4d1c47,inset 0 4px #fff9db8c,0 3px #805f2d,0 7px 16px #0000003d}.app-surface .portal-hero-actions>button:hover:not(:disabled){background:linear-gradient(#f8e4b5,#e6bf78);border-color:#fff0c9;transform:translateY(-1px)}.app-surface .portal-hero-actions>button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 0 0 3px #6f4d1c47,inset 0 2px 5px #6f4d1c2e,0 1px #805f2d}.app-surface .portal-hero-actions>button:focus-visible{outline:2px solid var(--jade-gold-bright);outline-offset:5px}.app-surface .lobby-icon{fill:currentColor;stroke:none;flex:none;width:22px;height:22px;display:block}.app-surface .portal-match-icon{width:30px;height:30px}.app-surface .portal-match-arrow{width:22px;height:22px;margin-left:auto}.app-surface .portal-games{border-top:0;padding:18px 0 32px}.app-surface .portal-games-head{align-items:center;gap:16px;margin-bottom:16px;display:flex}.app-surface .portal-games-head:after{background:var(--jade-line-soft);content:"";flex:1;height:1px}.app-surface .portal-games-head h2{color:var(--jade-gold-bright);font-size:28px;line-height:1.2}.app-surface .portal-section-mark{width:9px;height:9px;color:var(--jade-gold)}.app-surface .portal-card-grid.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px 20px}.app-surface .portal-card-grid .game-card{background:var(--jade-deep);border:1px solid #697052;border-radius:11px;box-shadow:inset 0 0 0 3px #ddc18308,0 4px 18px #00080529}.app-surface .portal-card-grid .game-card:after{z-index:2;opacity:0;pointer-events:none;content:"";border:24px solid #0000;border-image:url(/assets/img/jade/card-frame.png) 170/24px;transition:opacity .16s;position:absolute;inset:0}.app-surface .portal-card-grid .game-card:focus-within{border-color:#eccb87;transform:none;box-shadow:inset 0 0 0 1px #c8a66b,0 8px 22px #00000038}.app-surface .portal-card-grid .game-card:focus-within:after{opacity:1}@media (hover:hover){.app-surface .portal-card-grid .game-card:hover{border-color:#eccb87;transform:none;box-shadow:inset 0 0 0 1px #c8a66b,0 8px 22px #00000038}.app-surface .portal-card-grid .game-card:hover:after{opacity:1}}.app-surface .game-card-cover{flex-direction:column;align-items:stretch;gap:0;min-height:0;padding:0;display:flex}.app-surface .portal-card-grid .game-card-art{aspect-ratio:2.5;background:var(--jade-deep);border:0;border-radius:0;width:100%;height:auto;display:block}.app-surface .portal-card-grid .game-card-art img{object-fit:cover;opacity:1;filter:none;width:100%;height:100%;display:block;position:static;inset:auto;-webkit-mask-image:linear-gradient(#000 0 calc(100% - 48px),#0000 100%);mask-image:linear-gradient(#000 0 calc(100% - 48px),#0000 100%)}.app-surface .portal-card-grid .game-card:hover img{filter:none;transform:scale(1.025)}.app-surface .game-card-glyph{display:none}.app-surface .portal-card-grid .game-card-copy{gap:2px;min-height:0;margin-top:-14px;padding:4px 22px 0;display:grid;position:relative}.app-surface .portal-card-grid .game-card-copy strong{color:var(--jade-text);font-family:var(--jade-display);font-size:30px;font-weight:600;line-height:1.2}.app-surface .portal-card-grid .game-card-copy small{color:var(--jade-muted);font-size:16px;line-height:1.4}.app-surface .play-card-modes.multiplayer-card-modes{border:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(48px,.48fr);gap:10px;margin:10px 22px 16px;padding:0;display:grid}.app-surface .play-card-modes .play-mode{min-width:0;min-height:52px;color:var(--jade-text);background:#08241c;border:1px solid #998457;border-radius:8px;justify-content:center;gap:8px;padding:5px 8px;font-size:16px;font-weight:600;transition:background .16s,border-color .16s,box-shadow .16s,transform .16s;box-shadow:inset 0 1px #fff0c60f,inset 0 -2px #00000029}.app-surface .play-card-modes .play-mode:first-child{color:#172016;background:linear-gradient(#efdaa5,#d5af6d);border-color:#f1d59b;font-weight:700;box-shadow:inset 0 1px #fff0cd,inset 0 -2px #83551f29,0 2px #846236,0 3px 6px #00000024}.app-surface .play-card-modes .play-mode:hover{background:var(--jade-raised);border-color:var(--jade-gold-bright)}.app-surface .play-card-modes .play-mode:first-child:hover{background:linear-gradient(#f8e7bc,#e2bf7e)}.app-surface .play-card-modes .play-mode:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #00000029}.app-surface .play-card-modes .play-mode:first-child:active{background:linear-gradient(#dfbf80,#e6c98e);box-shadow:inset 0 2px 4px #6f4d1c33}.app-surface .play-card-modes .play-modes-toggle{min-width:0;min-height:48px;color:var(--jade-muted);flex-wrap:nowrap;gap:4px;padding:0;font-size:14px}.app-surface .play-modes-toggle .lobby-icon{width:14px;height:14px}.app-surface .play-modes-toggle:is(:hover,:focus-visible,[aria-expanded=true]){color:var(--jade-gold-bright)}.app-surface .game-card-cover:focus-visible{outline-offset:-5px;border-radius:10px}@media (width<=1100px){.app-surface .app-header--lobby{gap:18px;padding-inline:24px}.app-surface .app-header--lobby .brand strong{font-size:16px}.app-surface .app-header--lobby nav{gap:4px}.app-surface .app-header--lobby nav :is(button,a){padding-inline:12px}.app-surface .portal-card-grid .game-card-copy{padding-inline:16px}.app-surface .play-card-modes.multiplayer-card-modes{gap:7px;margin-inline:16px}.app-surface .play-card-modes .play-mode{font-size:14px}}@media (width>=621px) and (width<=1023px){.app-surface .portal-card-grid.game-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-surface .account-button.is-guest{flex-direction:column;justify-content:center;gap:0;min-width:44px;padding:0 2px}.app-surface .account-button.is-guest .account-login-icon{width:30px;height:30px}.app-surface .account-button.is-guest b{font-size:11px;line-height:14px}.app-surface .app-header--lobby{grid-template-columns:minmax(0,1fr) auto;gap:8px;min-height:68px;padding:8px 16px}.app-surface .app-header--lobby .brand{gap:7px}.app-surface .app-header--lobby .brand img{width:34px;height:34px}.app-surface .app-header--lobby .brand strong{white-space:nowrap;letter-spacing:0;font-size:12px;display:block}.app-surface .app-header--lobby .brand strong:after,.app-surface .app-header--lobby .brand small{display:none}.app-surface .app-header--lobby .header-actions{gap:3px}.app-surface .app-header--lobby .locale-select{min-width:53px}.app-surface .app-header--lobby .locale-trigger{min-width:53px;padding:0 4px}.app-surface .app-header--lobby .locale-current i{display:none}.app-surface .app-header--lobby .locale-current b{display:inline}.app-surface .app-header--lobby .mobile-menu-button{border-color:var(--jade-line);background:#02110c80;border-radius:8px;width:44px;min-height:44px}.app-surface .app-header--lobby nav{display:none}.app-surface .app-header--lobby nav.is-mobile-open{border:1px solid var(--jade-line);background:var(--jade-deep);box-shadow:var(--jade-shadow);border-radius:10px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:16px;right:16px}.app-surface .app-header--lobby nav.is-mobile-open :is(a,button){justify-content:flex-start;min-height:48px}.app-surface .portal-home.safe-zone{width:calc(100% - 32px)}.app-surface.is-lobby:before{background-image:url(/assets/img/jade/hero-small.webp);background-position:50%;height:310px}.app-surface .portal-hero{text-align:left;grid-template-columns:minmax(0,1fr);gap:18px;min-height:242px;padding:24px 0}.app-surface .portal-hero h1{font-size:clamp(28px,7.3vw,40px);line-height:1.3}.app-surface .portal-hero h1 em{display:inline}.app-surface .portal-hero-desc{margin:10px 0 0;font-size:14px}.app-surface .portal-hero-actions{gap:8px;width:100%;margin:0}.app-surface .portal-hero-actions>button{flex:1;gap:10px;min-width:0;min-height:56px;padding:0 18px;font-size:18px}.app-surface .portal-games{padding-top:18px}.app-surface .portal-games-head{gap:14px;margin-bottom:14px}.app-surface .portal-games-head h2{font-size:23px}}@media (width<=620px){.app-surface .portal-card-grid.game-grid{grid-template-columns:minmax(0,1fr);gap:12px}.app-surface .game-card-cover{grid-template-columns:108px minmax(0,1fr);gap:14px;min-height:88px;padding:10px 12px 0;display:grid}.app-surface .portal-card-grid .game-card-art{aspect-ratio:auto;border-radius:6px;width:108px;height:78px}.app-surface .portal-card-grid .game-card-art img{-webkit-mask-image:none;mask-image:none}.app-surface .portal-card-grid .game-card-copy{align-content:center;gap:5px;margin-top:0;padding:0}.app-surface .portal-card-grid .game-card-copy strong{font-size:22px}.app-surface .portal-card-grid .game-card-copy small{font-size:14px}.app-surface .play-card-modes.multiplayer-card-modes{gap:8px;margin:10px 12px}.app-surface .play-card-modes .play-mode,.app-surface .play-card-modes .play-modes-toggle{min-height:48px}}@media (width<=359px){.app-surface .app-header--lobby{padding-inline:10px}.app-surface .app-header--lobby .brand span{display:block}.app-surface .app-header--lobby .brand strong{font-size:10px}.app-surface .app-header--lobby .brand img{width:28px;height:28px}.app-surface .portal-home.safe-zone{width:calc(100% - 24px)}.app-surface .play-card-modes .play-mode{gap:5px;padding-inline:4px}.app-surface .play-mode .lobby-icon{width:18px;height:18px}}@media (prefers-reduced-motion:reduce){.app-surface .portal-card-grid .game-card:hover img,.app-surface .play-card-modes .play-mode,.app-surface .portal-hero-actions>button{transform:none!important}}html[data-reduce-motion=true] .app-surface .portal-card-grid .game-card:hover img,html[data-reduce-motion=true] .app-surface .play-card-modes .play-mode,html[data-reduce-motion=true] .app-surface .portal-hero-actions>button{transform:none!important}.app-surface .portal-match-picker{width:min(560px,100vw - 32px)}.app-surface .portal-match-games{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.app-surface .portal-match-game{border:1px solid var(--jade-line);background:var(--jade-deep);min-height:76px;color:var(--jade-text);text-align:left;border-radius:10px;align-items:center;gap:12px;padding:16px;text-decoration:none;display:flex}.app-surface .portal-match-game:hover{border-color:var(--jade-gold);background:var(--jade-surface)}.app-surface .portal-match-game:focus-visible{outline:2px solid var(--jade-gold);outline-offset:3px}.app-surface .portal-match-game svg{width:28px;height:28px;color:var(--jade-gold);fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 28px}.app-surface .portal-match-game>span:last-child{color:var(--jade-muted);margin-left:auto}@media (width<=480px){.app-surface .portal-match-games{grid-template-columns:1fr;gap:8px}.app-surface .portal-match-game{min-height:56px;padding:12px 16px}}.app-surface .setup-dialog{background:var(--jade-surface);border-radius:16px;width:min(100%,760px);padding:0}.app-surface .setup-dialog .modal-header{text-align:left;border-bottom:1px solid var(--jade-line-soft);align-items:flex-start;padding:22px 24px 18px;display:flex}.app-surface .setup-dialog .modal-header .eyebrow{color:var(--jade-gold);font-family:var(--jade-font);letter-spacing:.06em;font-size:14px}.app-surface .setup-dialog .modal-header h2{letter-spacing:.02em;margin:8px 0 4px;font-size:30px}.app-surface .setup-dialog .modal-content{padding:20px 24px;overflow:auto}.app-surface .setup-dialog .modal-footer{border-top:1px solid var(--jade-line-soft);justify-content:flex-end;margin:0;padding:16px 24px}.app-surface .setup-dialog .modal-footer .primary-button{min-width:142px}.app-surface .setup-settings-grid{gap:14px;margin-top:16px}.app-surface .setup-settings-grid>:only-child{grid-column:1/-1}.app-surface .setup-side{border-color:var(--jade-line-soft);background:var(--jade-deep);padding:14px}.app-surface .setup-side .panel-label{text-align:left;color:var(--jade-muted)}.app-surface .difficulty-card{color:var(--jade-text);border-color:var(--jade-line-soft);background:var(--jade-deep);box-shadow:none;border-radius:9px}.app-surface .difficulty-card small{color:var(--jade-muted)}.app-surface .difficulty-card.is-active{border-color:var(--jade-gold);color:var(--jade-gold-bright);background:var(--jade-raised);box-shadow:inset 0 0 0 1px var(--jade-gold)}.app-surface .segmented-btn{border-color:var(--jade-line-soft);color:var(--jade-muted);background:var(--jade-deep)}.app-surface .segmented-btn.is-active{border-color:var(--jade-gold);color:var(--jade-text);background:var(--jade-raised);box-shadow:none}.app-surface .setup-side select{color:var(--jade-text);border-color:var(--jade-line);background:var(--jade-surface);font-weight:600}.app-surface .setup-hint{color:var(--jade-muted);font-size:14px;line-height:1.6}.app-surface .room-screen.safe-zone{padding-top:36px}.app-surface .room-panel{border-color:var(--jade-line);background:var(--jade-surface);border-radius:16px;padding:30px}.app-surface .room-invite{background:var(--jade-deep);border-color:var(--jade-line)}.app-surface :is(.room-player,.matchmaking-player){background:var(--jade-deep);border-color:var(--jade-line-soft)}.app-surface .room-player span,.app-surface .matchmaking-player>span{font-size:14px}.app-surface .matchmaking-player.is-found{border-color:var(--jade-success)}.app-surface .matchmaking-avatar{background:var(--jade-surface);border-color:var(--jade-line)}.app-surface .room-field input,.app-surface .room-settings select{color:var(--jade-text);background:var(--jade-deep);border-color:var(--jade-line)}.app-surface .room-error{color:var(--jade-danger);background:#342b22;border-color:#805849}@media (width<=620px){.app-surface .setup-dialog .modal-header{padding:18px 18px 14px}.app-surface .setup-dialog .modal-header h2{font-size:26px}.app-surface .setup-dialog .modal-content{padding:16px 18px}.app-surface .setup-dialog .modal-footer{padding:14px 18px}.app-surface .setup-dialog .modal-footer .primary-button{flex:1}.app-surface .setup-settings-grid{gap:10px}.app-surface .room-screen.safe-zone{padding-top:20px}.app-surface .room-panel{padding:20px 18px}}.app-surface.app-surface :is(.primary-button,.auth-form-react button,.asset-replay-buttons .is-primary){min-height:48px;color:var(--jade-gold-ink);background:var(--jade-button-gold);box-shadow:var(--jade-button-shadow);border:1px solid #ecd59b;border-radius:9px;font-weight:700;transition:filter .14s,transform .14s,box-shadow .14s}.app-surface.app-surface :is(.primary-button,.auth-form-react button,.asset-replay-buttons .is-primary):hover:not(:disabled){background:var(--jade-button-gold);filter:brightness(1.06);transform:translateY(-1px)}.app-surface.app-surface :is(.primary-button,.auth-form-react button,.asset-replay-buttons .is-primary):active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 1px 4px #52361040,0 1px #796137}.app-surface.app-surface :is(.ghost-button,.back-button,.game-icon-button,.asset-back-lobby,.asset-record-replay,.asset-endgame-intro button,.asset-replay-buttons button:not(.is-primary),.asset-empty-react button,.room-actions button){color:var(--jade-text);background:var(--jade-button-green);box-shadow:var(--jade-button-secondary-shadow);border:1px solid #6f7050;border-radius:8px;transition:border-color .14s,filter .14s,transform .14s}.app-surface.app-surface :is(.ghost-button,.back-button,.game-icon-button,.asset-back-lobby,.asset-record-replay,.asset-endgame-intro button,.asset-replay-buttons button,.asset-empty-react button,.room-actions button):hover:not(:disabled){border-color:var(--jade-gold);filter:brightness(1.12)}.app-surface.app-surface :is(.ghost-button,.back-button,.game-icon-button,.asset-record-replay,.asset-replay-buttons button):active:not(:disabled){transform:translateY(1px);box-shadow:inset 0 2px 5px #00000040}.app-surface.app-surface :is(.modal-panel,.room-panel,.game-settings-popover-react,.account-popover-react){box-shadow:var(--jade-panel-shadow);border-color:#9d8b5e}.app-surface.app-surface .modal-panel{position:relative}.app-surface.app-surface .modal-panel:after{content:"";z-index:5;opacity:.65;pointer-events:none;border:16px solid #0000;border-image:url(/assets/img/jade/card-frame.png) 170/20px;position:absolute;inset:4px}.app-surface.app-surface :is(.modal-header,.game-settings-popover-react>header){box-shadow:inset 0 1px #f2d79924}.app-surface.app-surface :is(.modal-header h2,.room-context-copy h2){color:var(--jade-gold-bright);font-family:var(--jade-display)}.app-surface.app-surface :is(input:not([type=range]):not([type=checkbox]),select,textarea){box-shadow:inset 0 2px 5px #000a063d}.app-surface.app-surface .segmented-btn{box-shadow:inset 0 1px #ddc18314,0 2px #000c0759}.app-surface.app-surface .segmented-btn.is-active{color:var(--jade-gold-bright);border-color:var(--jade-gold);background:var(--jade-button-green);box-shadow:inset 0 0 0 2px #ddc18326,0 2px #03130e}.app-surface.app-surface :is(.modal-description,.setup-hint,.field-help,.feedback-field-label,.dialog-desc-react,.auth-form-react label,.room-context-copy p,.room-context-details>div,.matchmaking-guidance,.matchmaking-steps strong){font-size:14px;line-height:1.65}.app-surface.app-surface .danger-button{color:#ffddd1;background:#592f27;border-color:#a86450;box-shadow:inset 0 1px #ffd6bf1f,0 2px #351b16}@media (prefers-reduced-motion:reduce){.app-surface.app-surface :is(button,a):is(:hover,:active){transform:none}}html[data-reduce-motion=true] .app-surface.app-surface :is(button,a):is(:hover,:active){transform:none}.app-surface.app-surface .jade-setup-dialog .difficulty-card.is-active{background:var(--jade-button-green);box-shadow:inset 3px 0 var(--jade-gold), inset 0 1px #efdaa12e}.app-surface.app-surface :is(.jade-setup-dialog,.jade-endgame-dialog) :is(.modal-header p,.difficulty-card-copy small,.panel-label,.setup-hint){font-size:14px}.app-surface.app-surface .jade-endgame-dialog .endgame-catalog-card{border:1px solid var(--jade-line-soft);background:var(--jade-surface);border-radius:9px;padding:18px 14px;box-shadow:inset 0 1px #ddc1831a}.app-surface.app-surface .jade-endgame-dialog .endgame-catalog{row-gap:12px}.app-surface.app-surface .jade-endgame-dialog .endgame-catalog-card:is(:hover,:focus-visible){border-color:var(--jade-gold);background:var(--jade-raised)}.app-surface.app-surface .jade-endgame-dialog .endgame-catalog-card :is(span:not(.endgame-index),em){font-size:14px}:root{--ink-950:var(--jade-bg);--ink-900:var(--jade-deep);--ink-850:var(--jade-surface);--ink-800:var(--jade-raised);--paper:var(--jade-text);--paper-soft:var(--jade-muted);--text-muted:var(--jade-muted);--gold:var(--jade-gold-bright);--action-gold:var(--jade-gold);--surface-line:var(--jade-line-soft);--line:var(--jade-line-soft);--panel:var(--jade-surface);--font-display:var(--jade-display);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--shadow:var(--jade-shadow);font-family:var(--jade-font)}.app-surface,.app-surface.is-assets,.app-surface.is-game{color:var(--jade-text);background:var(--jade-bg)}.app-surface :is(button,a,input,select,summary){-webkit-tap-highlight-color:transparent}.app-surface :is(button,a,input,select,summary):focus-visible{outline:2px solid var(--jade-gold-bright);outline-offset:3px}.app-surface :is(input,select,textarea){color:var(--jade-text);border:1px solid var(--jade-line);background:var(--jade-deep);border-radius:8px}.app-surface :is(input,textarea)::placeholder{color:#9cac9f}.app-surface button:disabled{opacity:.46;cursor:not-allowed}.app-surface :is(.primary-button,.portal-primary-action){color:var(--jade-gold-ink);background:var(--jade-gold);border:1px solid #efcf8a;font-weight:700;box-shadow:inset 0 1px #fff9d961,0 5px 14px #00000029}.app-surface :is(.primary-button,.portal-primary-action):hover:not(:disabled){background:var(--jade-gold-bright);filter:none;transform:translateY(-1px)}.app-surface :is(.primary-button,.ghost-button):active:not(:disabled){transform:translateY(1px)}.app-surface .ghost-button{color:var(--jade-text);border:1px solid var(--jade-line);background:var(--jade-deep);font-weight:500}.app-surface .ghost-button:hover:not(:disabled){background:var(--jade-raised);border-color:var(--jade-gold)}.app-surface .danger-button{color:#ffddd1;background:#592f27;border:1px solid #a86450}.app-surface .modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000906bd}.app-surface .modal-panel{color:var(--jade-text);border:1px solid var(--jade-line);background:var(--jade-surface);box-shadow:var(--jade-shadow);border-radius:16px}.app-surface .modal-header{border-color:var(--jade-line-soft);padding:22px 24px 18px}.app-surface .modal-header h2{color:var(--jade-text);font-size:28px;line-height:1.3}.app-surface .modal-header .eyebrow{color:var(--jade-gold);letter-spacing:.12em;font-size:13px}.app-surface .modal-description{color:var(--jade-muted);line-height:1.65}.app-surface .modal-content{padding:20px 24px 24px}.app-surface .modal-footer{border-color:var(--jade-line-soft);background:#000c082e;padding:16px 24px}.app-surface .modal-header .icon-button{color:var(--jade-muted);border-color:var(--jade-line-soft);background:var(--jade-deep);border-radius:8px;flex:0 0 44px}.app-surface .modal-header .icon-button:hover{color:var(--jade-text);border-color:var(--jade-gold)}.app-surface .loading-line{border-color:var(--jade-line-soft)}.app-surface .feedback-launcher{border-color:var(--jade-line);color:var(--jade-gold);background:var(--jade-deep);box-shadow:var(--jade-shadow)}.app-surface .feedback-form :is(input,textarea){background:var(--jade-deep);border-color:var(--jade-line)}.app-surface .feedback-dialog .modal-header{border-top:2px solid var(--jade-gold);border-radius:15px 15px 0 0}.app-surface .feedback-dialog .modal-header h2{font-family:var(--jade-display)}.app-surface .feedback-form{gap:10px}.feedback-field-label{color:var(--jade-muted);font-size:13px;line-height:1.6}.app-surface .feedback-form textarea{font-family:var(--jade-font);min-height:180px;font-size:15px}.feedback-character-count{color:var(--jade-muted);font-variant-numeric:tabular-nums;justify-self:end;font-size:12px}.feedback-form .feedback-status:empty{min-height:0}.app-surface :is(.account-status-react,.field-help){color:var(--jade-muted)}@media (width<=620px){.app-surface.is-lobby .feedback-launcher{width:max-content;min-width:44px;margin:0 0 20px auto;padding:0 14px;position:relative;bottom:auto;right:auto}.app-surface.is-lobby .feedback-launcher-label{display:inline}.app-surface .modal-backdrop{padding:12px}.app-surface .modal-panel{border-radius:14px;max-height:calc(100dvh - 24px)}.app-surface .modal-header{padding:18px 18px 14px}.app-surface .modal-header h2{font-size:25px}.app-surface .modal-content{padding:16px 18px 20px}.app-surface .modal-footer{padding:14px 18px}}@media (prefers-reduced-motion:reduce){.app-surface *,.app-surface :before,.app-surface :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}html[data-reduce-motion=true] .app-surface *,html[data-reduce-motion=true] .app-surface :before,html[data-reduce-motion=true] .app-surface :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}
