.heaven-finale{z-index:100;color:#ffedbd;isolation:isolate;background:#050e15;animation:.5s both heaven-reveal;position:fixed;inset:0;overflow:hidden}.heaven-scene{perspective:900px;background:radial-gradient(at 50% 38%,#47615766,#0000 55%),linear-gradient(#080f1a,#13272a 65%,#070e14);animation:.5s 1.7s both heaven-shake;position:absolute;inset:0;overflow:hidden}.heaven-clouds{background:radial-gradient(at 15% 18%,#71918155,#0000 28%),radial-gradient(at 85% 26%,#9b97665c,#0000 28%),radial-gradient(at 40% 90%,#789c8b42,#0000 30%);animation:6s ease-out both heaven-cloud-drift;position:absolute;inset:-10%}.heaven-beam{clip-path:polygon(42% 0,58% 0,100% 100%,0 100%);background:linear-gradient(#fff1b980,#ecd18f08);width:60%;height:85%;animation:1.2s both heaven-reveal;position:absolute;top:0;left:50%;transform:translate(-50%)}.heaven-gate{aspect-ratio:1;border:2px solid #e5bf7c88;border-radius:50%;width:min(90vw,850px);position:absolute;top:-12%;left:50%;transform:translate(-50%)rotateX(64deg);box-shadow:0 0 65px #eaca6944,inset 0 0 55px #eaca6933}.heaven-gate i{border:1px dashed #f3d58e;border-radius:50%;animation:24s linear infinite heaven-spin;position:absolute;inset:7%}.heaven-gate i+i{opacity:.6;border-style:solid;border-width:3px;inset:14%}.heaven-gate span{text-align:center;letter-spacing:.5em;color:#ffe6a5;font-size:clamp(14px,3vw,30px);line-height:3;position:absolute;inset:24%}.heaven-hand{transform-origin:50% 40%;filter:drop-shadow(18px 30px 4px #0009)drop-shadow(0 0 22px #e8b95666);width:min(56vw,440px);height:72%;animation:6.2s cubic-bezier(.2,.7,.25,1) both heaven-descend;position:absolute;top:-5%;left:50%}.heaven-hand svg{width:100%;height:100%;overflow:visible}.heaven-impact{aspect-ratio:1;width:min(90vw,850px);position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)rotateX(67deg)}.heaven-impact i{border:3px solid #fff2b3;border-radius:50%;animation:2.2s ease-out 1.7s both heaven-wave;position:absolute;inset:0;box-shadow:0 0 30px #ffda79,inset 0 0 30px #ffda7966}.heaven-impact i:nth-child(2){animation-delay:1.9s}.heaven-impact i:nth-child(3){border-style:dashed;animation-delay:2.1s}.heaven-dust{position:absolute;top:58%;left:50%}.heaven-dust i{width:3px;height:14px;animation:heaven-spark 2.1s var(--delay) ease-out both;background:#ffe8a1;border-radius:50%;position:absolute;box-shadow:0 0 10px #eac26e}.heaven-victor{width:clamp(120px,23vw,210px);height:clamp(160px,31vw,280px);animation:1.1s 2.6s both heaven-victor-in;position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.heaven-victor img{object-fit:cover;object-position:top;filter:sepia(.2)drop-shadow(0 0 10px #e7c580);border-radius:48% 48% 30% 30%;width:100%;height:100%;position:relative;-webkit-mask-image:linear-gradient(#000 65%,#0000);mask-image:linear-gradient(#000 65%,#0000)}.victor-halo{background:repeating-conic-gradient(from 0deg,#e8c87533 0 1deg,transparent 1deg 15deg);border:2px solid #efcb82;border-radius:50%;animation:28s linear infinite heaven-spin;position:absolute;inset:-20%;box-shadow:0 0 40px #eccc7466,inset 0 0 45px #f5d98655}.victor-orbit{border:3px solid #ffe8a2;border-radius:50%;animation:5s linear infinite heaven-orbit;position:absolute;inset:-25%;transform:rotate(-28deg)rotateX(65deg);box-shadow:0 0 14px #ffd779}.victor-orbit.second{border-width:1px;animation-direction:reverse;animation-delay:-2s}.heaven-caption{text-align:center;text-shadow:0 3px 20px #000;animation:1s 2.9s both heaven-title-in;position:absolute;top:65%;left:5%;right:5%}.heaven-caption p{letter-spacing:.4em;color:#e5c684;margin:0 0 12px;font-size:clamp(13px,2vw,18px)}.heaven-caption h2{letter-spacing:.18em;margin:0 0 12px;font-family:Kaiti SC,STKaiti,KaiTi,serif;font-size:clamp(32px,7vw,64px);font-weight:500}.heaven-caption span{letter-spacing:.15em;font-size:clamp(12px,2vw,16px)}.heaven-caption small{color:#b2b8a9;letter-spacing:.14em;margin:18px 0 0;font-size:13px;display:block}.heaven-skip{right:24px;bottom:max(24px,env(safe-area-inset-bottom));color:#e5d4b0;cursor:pointer;background:#0c1e24cc;border:1px solid #ac94625e;border-radius:24px;padding:12px 18px;font-size:12px;position:absolute}.heaven-skip:focus-visible{outline-offset:4px;outline:2px solid #f0d18b}@keyframes heaven-reveal{0%{opacity:0}to{opacity:1}}@keyframes heaven-descend{0%{opacity:0;transform:translate(-50%,-110%)rotateX(45deg)rotate(-16deg)scale(.45)}12%{opacity:1}27%{transform:translate(-50%,2%)rotateX(20deg)rotate(-12deg)scale(1.15)}32%{transform:translate(-50%)rotateX(18deg)rotate(-12deg)scale(1.1)}43%{opacity:1}64%,to{opacity:.1;transform:translate(-50%,-25%)rotateX(12deg)rotate(-12deg)scale(1.55)}}@keyframes heaven-wave{0%{opacity:0;transform:scale(.12)}10%{opacity:1}to{opacity:0;transform:scale(1.7)}}@keyframes heaven-shake{0%,to{transform:translate(0)}20%{transform:translateY(6px)}40%{transform:translate(-4px,-3px)}60%{transform:translate(3px,2px)}80%{transform:translate(-1px)}}@keyframes heaven-cloud-drift{0%{transform:scale(1)}to{transform:scale(1.2)translateY(3%)}}@keyframes heaven-spark{0%{opacity:0;transform:rotate(var(--angle)) translateY(0)}15%{opacity:1}to{opacity:0;transform:rotate(var(--angle)) translateY(var(--distance)) scale(.1)}}@keyframes heaven-victor-in{0%{opacity:0;transform:translate(-50%,-45%)scale(.7)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes heaven-title-in{0%{opacity:0;filter:blur(5px);transform:translateY(15px)}to{opacity:1;filter:blur();transform:translateY(0)}}@keyframes heaven-spin{to{transform:rotate(360deg)}}@keyframes heaven-orbit{0%{transform:rotate(-28deg)rotateY(0)rotateX(65deg)}to{transform:rotate(-28deg)rotateY(360deg)rotateX(65deg)}}@media (width<=580px){.heaven-hand{width:86vw;height:64%;top:1%}.heaven-gate{width:130vw;top:0}.heaven-caption{top:65%}.heaven-caption small{margin-top:12px}.heaven-skip{white-space:nowrap;right:50%;bottom:max(16px,env(safe-area-inset-bottom));transform:translate(50%)}.heaven-dust i:nth-child(2n){display:none}}@media (height<=500px){.heaven-victor{width:110px;height:150px;top:48%;left:32%}.heaven-caption{top:30%;left:52%;right:4%}.heaven-caption h2{font-size:32px}.heaven-caption small{margin-top:10px}}@media (prefers-reduced-motion:reduce){.heaven-finale,.heaven-finale *{animation:none!important}.heaven-hand{opacity:.12;transform:translate(-50%)}.heaven-impact,.heaven-dust{display:none}.heaven-caption,.heaven-victor{opacity:1}}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.hidden\!{display:none!important}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.transform\!{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)!important}.resize{resize:both}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}.brand-button{color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:14px;display:flex}.header-status{color:#4d6c63;letter-spacing:.12em;align-items:center;gap:10px;margin-left:auto;font-size:12px;display:flex}.sound-button{margin-left:10px}.home-link{color:#17352f;letter-spacing:.1em;cursor:pointer;white-space:nowrap;background:#f5efdfcc;border:1px solid #c8a467;border-radius:999px;align-items:center;margin-left:14px;padding:8px 16px;font-size:13px;text-decoration:none;display:inline-flex}.home-link:hover{background:#fff}.stone-badge{border-radius:50%;width:20px;height:20px;margin:10px auto}.black-stone{background:radial-gradient(circle at 35% 28%,#59605c,#090c0b 65%);box-shadow:0 5px 12px #0006}.white-stone{background:radial-gradient(circle at 35% 28%,#fffef2,#c9c6b7 68%);box-shadow:0 5px 12px #0004}.preview-board button.stone{position:relative;transform:scale(.84);box-shadow:0 3px 6px #2d241d66}.preview-board button.stone.black{background:radial-gradient(circle at 32% 28%,#65706c,#101514 61%,#050706)}.preview-board button.stone.white{background:radial-gradient(circle at 32% 28%,#fffef2,#d8d4c5 58%,#a9a392)}.preview-board button.last:after{content:"";background:#b64838;border-radius:50%;width:22%;height:22%;position:absolute;top:39%;left:39%;box-shadow:0 0 3px #fff8}.preview-board button:disabled{cursor:default}.dialogue-line{color:#354f48;background:#eaf0e4c4;border:1px solid #708e8229;border-radius:3px;justify-content:center;align-items:center;gap:12px;width:min(100%,560px);min-height:54px;margin:14px auto 0;padding:9px 16px;display:flex;box-shadow:0 10px 22px #26403815}.dialogue-line b{white-space:nowrap;color:#805b35;font-size:12px}.dialogue-line span{letter-spacing:.04em;font-size:13px}.turn-label .white-dot{background:#f2efe2}.turn-label .black-dot{background:#111715}.scene-medium{background:linear-gradient(#9aa99b 0 35%,#d1b98e 70%,#716b5c)}.scene-hard{background:linear-gradient(#263f45 0 43%,#4f6261 70%,#1e3438)}.scene-hard .sun,.scene-hard .petals,.rain{display:none}.scene-hard .rain{z-index:1;pointer-events:none;opacity:.26;background:repeating-linear-gradient(102deg,#0000 0 34px,#d8eff3 35px 36px,#0000 37px 72px);animation:1.3s linear infinite rainMove;display:block;position:absolute;inset:0}@keyframes rainMove{to{transform:translate(-40px,75px)}}.selection-card,.ending-card{text-align:center;color:#243b35;background:linear-gradient(135deg,#fbf7e9,#eee5cb);border:1px solid #d8bd82;width:min(720px,100%);max-height:min(88svh,820px);padding:34px clamp(22px,5vw,46px) 28px;position:relative;overflow:auto;box-shadow:0 34px 100px #001d1899}.selection-card h2,.ending-card h2{letter-spacing:.08em;margin:7px 0 24px;font-size:27px;font-weight:500}.eyebrow{color:#8a683e;letter-spacing:.32em;margin:0;font-size:11px}.theme-grid{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.theme-grid button{color:#39534c;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;min-height:92px;padding:12px 7px}.theme-grid b{margin-bottom:7px;font-size:17px;display:block}.theme-grid span{color:#75827e;font-size:10px;line-height:1.5}.theme-grid button.selected,.difficulty-grid button.selected{background:#e1ede4;border-color:#1e6859;box-shadow:inset 0 0 0 1px #1e6859}.opponent-label{margin:26px 0 10px}.difficulty-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:25px;display:grid}.difficulty-grid button{color:#304d45;text-align:left;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;align-items:center;gap:10px;min-height:72px;padding:10px;display:flex}.difficulty-grid i{color:#f3e7c9;background:#315d53;border-radius:50%;place-items:center;width:32px;height:32px;font-style:normal;display:grid}.difficulty-grid b,.difficulty-grid small{display:block}.difficulty-grid small{color:#7b8581;margin-top:3px;font-size:10px}.ending-card{width:min(540px,100%)}.ending-card p:not(.eyebrow){color:#53655f;font-size:15px;line-height:1.9}.ending-card blockquote{color:#2f554b;letter-spacing:.08em;margin:25px 0;font-size:18px}.end-actions{justify-content:center;gap:12px;display:flex}.secondary-button{color:#315d53;cursor:pointer;background:0 0;border:1px solid #315d53;min-width:150px;padding:12px 22px}@media (width<=780px){.header-status{display:none}.theme-grid{grid-template-columns:repeat(3,1fr)}.difficulty-grid{grid-template-columns:1fr}.selection-card{max-height:94svh}.dialogue-line{min-height:48px}.brandbar h1{font-size:21px}.preview-board{border-width:8px}}:root{--ink:#152723;--jade:#1f685b;--gold:#c8a467;--paper:#f5efdf}*{box-sizing:border-box}body{color:var(--ink);background:#d9e2d3;margin:0;font-family:Noto Serif SC,Songti SC,serif}button{font:inherit}.world-shell{isolation:isolate;background:linear-gradient(#a9c6b7 0 42%,#d8dfca 70%,#9fae8c);min-height:100svh;position:relative;overflow:hidden}.world-shell:before{content:"";z-index:-5;background:radial-gradient(circle at 52% 22%,#fff7d1aa,#0000 26%),linear-gradient(90deg,#183c3830,#0000 24% 76%,#183c3830);position:absolute;inset:0}.mountains{z-index:-4;opacity:.68;filter:blur(1px);background:linear-gradient(145deg,#0000 33%,#55756d 34% 47%,#0000 48%) 0 0/45% 100%,linear-gradient(215deg,#0000 31%,#759085 32% 52%,#0000 53%) 36% 0/55% 100%;position:absolute;inset:25% -5% 0}.sun{z-index:-3;background:#f5dfae66;border-radius:50%;width:110px;height:110px;position:absolute;top:14%;left:56%;box-shadow:0 0 80px #f5dfae}.bamboo{z-index:-1;opacity:.75;background:repeating-linear-gradient(87deg,#0000 0 22px,#274d44 24px 29px,#0000 31px 54px);width:22%;position:absolute;top:-5%;bottom:-8%}.bamboo:after{content:"";filter:blur(.4px);background:repeating-linear-gradient(24deg,#0000 0 38px,#42685c 39px 44px,#0000 46px 72px);position:absolute;inset:0}.bamboo-left{left:-8%;transform:rotate(-5deg)}.bamboo-right{right:-8%;transform:scaleX(-1)rotate(-5deg)}.brandbar{color:#17352f;z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#e8eee1a6;border-bottom:1px solid #31544b2b;align-items:center;gap:14px;height:88px;padding:14px clamp(20px,4vw,64px);display:flex;position:relative}.brandbar h1{letter-spacing:.18em;margin:0;font-size:27px;font-weight:600}.brandbar p{letter-spacing:.34em;color:#546f67;margin:0 0 2px;font-size:11px}.seal{color:#8c3f32;border:2px solid #8c3f32;border-radius:5px;place-items:center;width:47px;height:47px;font-weight:700;display:grid;transform:rotate(-3deg)}.sound-button{color:#284c43;cursor:pointer;background:#eff3e8aa;border:1px solid #3a5d54;border-radius:50%;width:42px;height:42px;margin-left:auto}.game-stage{grid-template-columns:minmax(130px,220px) minmax(340px,620px) minmax(130px,220px);justify-content:center;align-items:center;gap:clamp(16px,3vw,58px);min-height:calc(100svh - 88px);padding:30px;display:grid}.character-card{text-align:center;color:#304d45;align-self:center}.character-card p{letter-spacing:.24em;opacity:.7;margin:13px 0 2px;font-size:12px}.character-card h2{letter-spacing:.12em;margin:0;font-size:24px}.portrait{aspect-ratio:.78;background:linear-gradient(145deg,#567c70,#163b35);border-radius:46% 46% 18% 18%;place-items:center;width:min(15vw,168px);margin:auto;display:grid;position:relative;overflow:hidden;box-shadow:0 25px 50px #163b3540,inset 0 0 0 1px #f6e7b759}.portrait:before{content:"";aspect-ratio:1;background:#e2c6a7;border-radius:50%;width:63%;position:absolute;top:13%;box-shadow:0 55px 0 25px #315f53}.portrait span{z-index:1;color:#503d30;margin-top:-46%;font-size:27px;position:relative}.sage .portrait{background:linear-gradient(145deg,#9c9b83,#435f58)}.sage .portrait:before{box-shadow:0 55px 0 25px #6b756c}.board-wrap{text-align:center}.turn-label{color:#e9e3cc;letter-spacing:.1em;background:#173c35dd;border-radius:999px;align-items:center;gap:8px;margin-bottom:12px;padding:7px 16px;font-size:13px;display:inline-flex}.turn-label span{background:#151918;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 2px #d5b675}.preview-board{aspect-ratio:1;background-color:#cfae6f;background-image:linear-gradient(#60472f 1px,#0000 1px),linear-gradient(90deg,#60472f 1px,#0000 1px);background-position:50%;background-size:7.14286% 7.14286%;border:12px solid #684b2f;outline:1px solid #d0ad6a;grid-template-columns:repeat(15,1fr);width:min(72vw,590px);padding:5.7%;display:grid;transform:perspective(1000px)rotateX(2deg);box-shadow:0 28px 60px #213b344a,inset 0 0 45px #8b5a2c78}.preview-board button{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;transform:scale(.74)}.preview-board button:hover,.preview-board button:focus-visible{background:#f4e4ae8c;outline:2px solid #fff6c7}.board-quote{color:#324c45;letter-spacing:.16em;margin:17px 0 0;font-size:13px}.opening-backdrop{z-index:20;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0b2622aa;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.opening-card{text-align:center;color:#243b35;background:linear-gradient(135deg,#fbf7e9,#eee5cb);border:1px solid #d8bd82;border-radius:4px;width:min(560px,100%);padding:42px clamp(28px,6vw,60px) 30px;position:relative;box-shadow:0 34px 100px #001d1899,inset 0 0 65px #ddc89542}.opening-card:before,.opening-card:after{content:"";border-color:#a47f42;width:24px;height:24px;position:absolute}.opening-card:before{border-top:1px solid;border-left:1px solid;top:12px;left:12px}.opening-card:after{border-bottom:1px solid;border-right:1px solid;bottom:12px;right:12px}.opening-mark{letter-spacing:.5em;color:#8a683e;font-size:12px}.opening-card h2{letter-spacing:.2em;margin:9px 0 14px;font-size:44px;font-weight:500}.opening-card p{color:#465a53;font-size:15px;line-height:1.9}.divider{color:#a07844;align-items:center;gap:12px;margin:18px 0;display:flex}.divider:before,.divider:after{content:"";background:#bda579;flex:1;height:1px}.divider span{font-size:9px}.opening-card blockquote{letter-spacing:.12em;color:#25483f;margin:25px 0;font-size:19px}.primary-button{color:#f8f0d8;cursor:pointer;letter-spacing:.35em;background:#1c564b;border:1px solid #d5ba7d;min-width:190px;padding:12px 28px;box-shadow:0 8px 22px #1c564b42}.text-button{color:#74817d;cursor:pointer;background:0 0;border:0;margin:13px auto 0;font-size:12px;display:block}.petals i{z-index:2;opacity:.72;background:#f0b7b2;border-radius:70% 20%;width:9px;height:15px;animation:12s linear infinite fall;position:absolute;top:-5%;left:8%}.petals i:nth-child(2n){animation-delay:-4s;left:17%}.petals i:nth-child(3n){animation-delay:-8s;left:71%}.petals i:nth-child(5n){animation-duration:16s;left:89%}@keyframes fall{to{transform:translate(18vw,110vh)rotate(540deg)}}@media (width<=780px){.game-stage{grid-template-columns:1fr;padding:18px}.character-card{display:none}.preview-board{width:min(92vw,590px)}.opening-card h2{font-size:34px}.brandbar{height:72px}.game-stage{min-height:calc(100svh - 72px)}}@media (prefers-reduced-motion:reduce){.petals{display:none}*{scroll-behavior:auto!important;animation:none!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}.world-shell{background:#748876 url(/games/luozi-wuhui/assets/backgrounds/pavilion.png) 50%/cover fixed}.world-shell:before{z-index:-1;background:linear-gradient(90deg,#0a241c65,#0000 35% 65%,#0a241c65)}.mountains,.sun,.bamboo{display:none}.petals{pointer-events:none}.game-stage{z-index:2;grid-template-columns:minmax(150px,260px) minmax(0,580px) minmax(150px,260px);gap:clamp(14px,2.5vw,40px);padding:26px 3vw;position:relative}.board-wrap{min-width:0}.preview-board{aspect-ratio:1;background:#d9b77b;width:100%;padding:0;display:block;position:relative;transform:none;box-shadow:0 24px 70px #031c16aa,inset 0 0 40px #805d3c66}.board-grid{position:absolute;inset:6%}.grid-line{pointer-events:none;z-index:0;background:#614626;position:absolute}.grid-line.horizontal{width:100%;height:1px;left:0;transform:translateY(-50%)}.grid-line.vertical{width:1px;height:100%;top:0;transform:translate(-50%)}.star-point{pointer-events:none;background:#543820;border-radius:50%;width:6px;height:6px;position:absolute;transform:translate(-50%,-50%)}.preview-board .board-grid button{z-index:2;touch-action:manipulation;background:0 0;border:0;border-radius:50%;width:6.1%;height:6.1%;padding:0;position:absolute;transform:translate(-50%,-50%)}.preview-board .board-grid button.stone{position:absolute;transform:translate(-50%,-50%)}.preview-board .board-grid button:not(:disabled):hover,.preview-board .board-grid button:focus-visible{background:#ffffd866;outline:2px solid #fff4c4}.preview-board .board-grid button.stone.black{background:radial-gradient(circle at 30% 25%,#687c71,#0d1914 58%,#020705)}.preview-board .board-grid button.stone.white{background:radial-gradient(circle at 30% 25%,#fffff5,#e4e0cb 56%,#a7ab94)}.portrait{aspect-ratio:2/3;background:#254437;border:1px solid #f2d79777;border-radius:45% 45% 12px 12px;width:100%;overflow:hidden;box-shadow:0 20px 60px #001d14aa}.portrait:before{display:none}.portrait img{object-fit:cover;width:100%;height:100%;animation:7s ease-in-out infinite breathe;display:block}.character-card{color:#fff5df;text-shadow:0 2px 8px #061c15}.character-card p{opacity:1}.character-card h2{font-size:23px}.character-card.active .portrait{outline-offset:5px;outline:2px solid #e3c689}.character-card:not(.active) .portrait{filter:saturate(.72)}.sound-button{white-space:nowrap;border-radius:22px;width:auto;min-width:82px;padding:0 12px;font-size:12px}.brandbar{background:#eff2e5dc}.dialogue-line{background:#f7f1dfec}.role-note{color:#eee7ce;margin:7px 0;font-size:11px}@keyframes breathe{50%{transform:scale(1.025)}}@media (width<=780px){.game-stage{grid-template-columns:1fr 1fr;align-content:start;gap:12px;padding:16px}.character-card{text-align:left;grid-row:1;align-items:center;gap:10px;display:flex}.character-card.han{grid-column:1}.character-card.sage{grid-column:2;justify-content:flex-end}.character-card .portrait{aspect-ratio:auto;border-radius:20px 20px 6px 6px;width:64px;min-width:64px;height:88px;margin:0}.character-card h2{font-size:16px}.character-card p{margin:0;font-size:10px}.character-card .stone-badge,.role-note{display:none}.board-wrap{grid-area:2/1/auto/-1}.preview-board{border-width:8px;width:100%}.header-status{display:none}.world-shell{background-attachment:scroll}.dialogue-line{text-align:left;align-items:flex-start}.end-actions{flex-wrap:wrap}}@media (prefers-reduced-motion:reduce){.portrait img{animation:none}}.scene-background{object-fit:cover;z-index:-2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.world-shell{background-color:#748876;background-image:none}.scene-huashen:before{background:#06172ac4}.scene-yuanying:before{background:#aa632c44}.scene-huashen .petals{display:none}.scene-huashen .rain{z-index:1;pointer-events:none;opacity:.26;background:repeating-linear-gradient(102deg,#0000 0 34px,#d8eff3 35px 36px,#0000 37px 72px);display:block;position:absolute;inset:0}.role-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin:4px 0 26px;display:grid}.role-grid button{color:#304d45;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;padding:0 0 12px;overflow:hidden}.role-grid button.selected,.realm-grid button.selected{background:#e1ede4;border-color:#1e6859;box-shadow:inset 0 0 0 2px #1e6859}.role-grid img{aspect-ratio:1/1.12;object-fit:cover;object-position:top;width:100%}.role-grid b,.role-grid small{display:block}.role-grid b{margin:8px 0 4px;font-size:16px}.role-grid small{color:#718079;padding:0 6px;font-size:10px;line-height:1.45}.realm-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:28px;display:grid}.realm-grid button{text-align:left;color:#304d45;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;align-items:center;gap:10px;padding:14px;display:flex}.realm-grid i{color:#f5e8c9;background:#315d53;border-radius:50%;place-items:center;width:38px;height:38px;font-style:normal;display:grid}.realm-grid b,.realm-grid small{display:block}.realm-grid small{color:#718079;margin-top:4px;font-size:10px}.watch-gallery{pointer-events:none;z-index:4;position:absolute;inset:0}.watcher{width:70px;animation:6s ease-in-out infinite breathe;position:absolute}.watcher img{object-fit:cover;object-position:top;opacity:.9;border:1px solid #dfc88e;border-radius:50% 50% 12px 12px;width:64px;height:82px;box-shadow:0 7px 22px #001d18aa}.watcher span{color:#365047;background:#fff8e8ef;border-radius:9px;width:150px;padding:7px 9px;font-size:11px;position:absolute;top:8px;left:58px;box-shadow:0 8px 18px #001d1844}.watcher-0{top:3%;left:1%}.watcher-1{top:3%;right:1%}.watcher-2{bottom:2%;right:1%}.watcher-1 span,.watcher-2 span{left:auto;right:58px}.character-card,.board-wrap{z-index:5}@media (width<=1050px){.watch-gallery{display:none}}@media (width<=900px){.role-grid{grid-template-columns:repeat(2,1fr)}.realm-grid{grid-template-columns:1fr}}.is-opening .game-stage,.is-opening .brandbar{visibility:hidden}.cinematic-opening{-webkit-backdrop-filter:none;backdrop-filter:none;color:#fbefd5;background:linear-gradient(90deg,#071a25c9,#07192375,#061823a8),url(/games/luozi-wuhui/assets/backgrounds/ascension.png) 50%/cover;padding:36px 24px;overflow-y:auto}.story-card{text-align:center;text-shadow:0 2px 18px #001724;width:min(900px,100%);padding:28px 0}.story-card .eyebrow{color:#e9c98b;letter-spacing:.45em}.brush-title,.brush-heading,.story-lines{font-family:Kaiti SC,STKaiti,KaiTi,DFKai-SB,Songti SC,serif}.brush-title{letter-spacing:.14em;color:#fff0cc;margin:12px 0;font-size:clamp(64px,10vw,132px);font-weight:500;line-height:1.25;animation:1.8s ease-out both ink-reveal}.story-subtitle{letter-spacing:.5em;color:#e5c48c;font-size:16px}.story-invitation{letter-spacing:.2em;margin:42px 0 30px}.story-lines{max-width:720px;min-height:200px;margin:30px auto;font-size:clamp(18px,2vw,23px);line-height:1.9}.story-lines p{margin:12px 0;animation:1.7s ease-out both ink-reveal}.story-card .primary-button{letter-spacing:.15em;background:#102f33bf;border-color:#e3c18a;border-radius:3px}.story-card .text-button{color:#e7d7b3}.audio-caption{opacity:.7;margin-top:24px;font-size:12px}@keyframes ink-reveal{0%{clip-path:inset(0 100% 0 0);opacity:0;filter:blur(5px)}to{clip-path:inset(0);opacity:1;filter:blur()}}.role-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.role-grid button{border-radius:12px}.selection-card{max-height:90svh;overflow-y:auto}.ending-backdrop{overflow-y:auto}.ending-card{z-index:2;border-radius:12px;max-height:90svh;position:relative;overflow-y:auto}.ending-card p{line-height:1.9}.ending-card .end-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.ending-card .primary-button,.ending-card .secondary-button{letter-spacing:.1em}.brush-heading{font-size:clamp(28px,4vw,44px)}.character-card.thinking .portrait{transition:box-shadow .7s;box-shadow:0 0 30px #ead39888}.ascension{-webkit-backdrop-filter:none;backdrop-filter:none;background:linear-gradient(#03162277,#081e32aa),url(/games/luozi-wuhui/assets/backgrounds/ascension.png) 50%/cover}.ascension .ending-card{color:#fae8bb;background:#071e2dde;border:1px solid #e6c888;animation:1.8s ease-out both arrival;box-shadow:0 0 90px #eebf6540}.ascension .ending-card p,.ascension .ending-card blockquote,.ascension .eyebrow{color:#eee0bf}.ascension-effects{pointer-events:none;z-index:1;position:fixed;inset:0;overflow:hidden}.spirit-ring{border:2px solid #f6d994;border-radius:50%;width:28vmin;height:28vmin;animation:3.2s ease-out both breakthrough;position:absolute;top:50%;left:50%;box-shadow:0 0 55px #f5cf77,inset 0 0 45px #f5cf7799}.spirit-ring.second{animation-delay:.45s}.ascension-effects>span{width:1px;height:1px;position:absolute;top:50%;left:50%}.ascension-effects>span>i{background:linear-gradient(#0000,#ffe4a3,#0000);width:3px;height:28vh;animation:3s ease-out both sword-flight;display:block;box-shadow:0 0 12px #f3cd81}@keyframes breakthrough{0%{opacity:0;transform:translate(-50%,-50%)scale(.15)}20%{opacity:.8}to{opacity:0;transform:translate(-50%,-50%)scale(6)}}@keyframes sword-flight{0%{opacity:0;transform:translateY(0)}20%{opacity:.75}to{opacity:0;transform:translateY(-110vh)}}@keyframes arrival{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.role-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=580px){.role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cinematic-opening{padding:24px 18px}.story-lines{min-height:260px;font-size:18px}.story-subtitle{letter-spacing:.2em}.cinematic-opening{padding:max(22px,env(safe-area-inset-top)) 20px max(28px,env(safe-area-inset-bottom));background:linear-gradient(#0719238f,#071923c4 46%,#061823e0),url(/games/luozi-wuhui/assets/backgrounds/ascension.png) 50%/cover;align-items:flex-start}.story-card{width:100%;max-width:430px;margin:0 auto;padding:8px 0 18px}.story-card .eyebrow{letter-spacing:.28em;font-size:10px}.brush-title{letter-spacing:.08em;margin:20px 0 13px;font-family:Kaiti SC,STKaiti,KaiTi,DFKai-SB,Songti SC,serif;font-size:clamp(48px,14vw,60px);font-weight:600;line-height:1.08}.story-subtitle{letter-spacing:.2em;margin:0;font-family:Kaiti SC,STKaiti,KaiTi,DFKai-SB,Songti SC,serif;font-size:15px}.story-lines{text-align:left;letter-spacing:.035em;max-width:25em;min-height:0;margin:30px auto 24px;font-family:Kaiti SC,STKaiti,KaiTi,DFKai-SB,Songti SC,serif;font-size:17px;line-height:1.72}.story-lines p{text-wrap:pretty;margin:0 0 15px}.story-card .primary-button{min-width:min(100%,250px);padding:13px 20px}.audio-caption{margin:20px 0 6px;font-size:11px}.story-card .text-button{margin-top:4px}.selection-card{width:100%;max-height:96svh;padding:20px 14px 16px}.selection-card h2{letter-spacing:.02em;white-space:nowrap;margin:5px 0 15px;font-size:clamp(17px,5.2vw,20px)}.role-grid button{text-align:left;border-radius:10px;align-items:center;min-height:76px;padding:0;display:flex}.role-grid img{aspect-ratio:auto;object-position:top center;width:76px;min-width:76px;height:76px}.role-grid button span{min-width:0;padding:7px 10px}.role-grid small{-webkit-line-clamp:2;-webkit-box-orient:vertical;padding:0;font-size:10px;line-height:1.35;display:-webkit-box;overflow:hidden}.realm-grid{gap:7px;margin-bottom:16px}.realm-grid button{gap:9px;min-height:64px;padding:9px 11px}.realm-grid i{width:34px;min-width:34px;height:34px}.realm-grid small{margin-top:2px;line-height:1.3}.opponent-label{margin:16px 0 8px}.theme-grid{grid-template-columns:repeat(2,1fr);gap:7px}.theme-grid button{min-height:72px;padding:8px 6px}.theme-grid b{margin-bottom:3px;font-size:15px}.brandbar{padding:7px 8px}.brand-button{gap:7px}.brandbar h1{font-size:18px}.brandbar p{font-size:9px}.seal{width:34px;height:34px}.game-stage{grid-template-columns:1fr 1fr;gap:5px;padding:7px 5px 10px}.character-card{gap:6px;min-width:0}.character-card.sage{text-align:right;justify-content:flex-end}.character-card .portrait{outline-offset:2px;border-radius:12px 12px 4px 4px;outline-width:1px;width:42px;min-width:42px;height:50px}.character-card h2{margin:1px 0;font-size:13px}.character-card p{font-size:8px;line-height:1.2}.board-wrap{width:100%;min-width:0}.preview-board{border-width:4px;width:100%;max-width:none}.board-grid{inset:5.4%}.turn-label{min-height:28px;margin-bottom:4px;font-size:11px}.dialogue-line{gap:7px;min-height:42px;margin-top:7px;padding:7px 9px}.dialogue-line b{font-size:10px}.dialogue-line span{font-size:11px;line-height:1.35}.sound-button{min-width:68px;padding:0 8px;font-size:10px}.cinematic-opening{padding:max(34px,env(safe-area-inset-top)) 18px max(40px,env(safe-area-inset-bottom));align-items:flex-start}.story-card{padding:16px 0 28px}.brush-title{margin:26px 0 18px;font-size:clamp(56px,16vw,68px)}.story-lines{text-align:center;letter-spacing:.025em;max-width:22em;min-height:290px;margin:38px auto 32px;font-size:17px;line-height:1.8}.story-lines p{white-space:pre-line;text-wrap:balance;margin:0 0 21px}.role-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.role-grid button{text-align:center;border-radius:12px;min-height:0;padding:0 0 10px;display:block}.role-grid img{aspect-ratio:auto;object-fit:cover;object-position:top center;border-radius:0;width:100%;min-width:0;height:118px}.role-grid button span{padding:5px 7px 0;display:block}.role-grid b{margin:0 0 3px;font-size:15px}.role-grid small{-webkit-line-clamp:2;padding:0;font-size:10px;line-height:1.3}.story-card:has(.story-invitation){min-height:calc(100svh - max(74px,env(safe-area-inset-top)) - max(64px,env(safe-area-inset-bottom)));flex-direction:column;justify-content:center;display:flex}.story-card:has(.story-invitation) .eyebrow{letter-spacing:.34em;margin-bottom:5px;font-size:12px}.story-card:has(.story-invitation) .brush-title{margin:28px 0 20px;font-size:clamp(62px,18vw,76px)}.story-card:has(.story-invitation) .story-subtitle{padding-bottom:27px;position:relative}.story-card:has(.story-invitation) .story-subtitle:after{content:"";background:linear-gradient(90deg,#0000,#ddc18c,#0000);width:52px;height:1px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.story-card:has(.story-invitation) .story-invitation{letter-spacing:.12em;margin:44px 0 0;font-family:Kaiti SC,STKaiti,KaiTi,DFKai-SB,Songti SC,serif;font-size:17px}.story-card:has(.story-invitation) .primary-button{width:min(86%,320px);margin:42px auto 0}.story-card:has(.story-invitation) .text-button{margin-top:8px}}@media (prefers-reduced-motion:reduce){.story-lines p,.brush-title{clip-path:none;filter:none;opacity:1;animation:none}.ascension-effects{display:none}.ascension .ending-card{animation:none}}.feedback-link{z-index:30;color:#f7e8c5;letter-spacing:.12em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#153d37e8;border:1px solid #d8bd82aa;border-radius:999px;padding:9px 15px;font-size:12px;text-decoration:none;transition:transform .2s,background .2s;position:fixed;bottom:18px;right:18px;box-shadow:0 8px 24px #001b1766}.feedback-link:hover,.feedback-link:focus-visible{outline-offset:2px;background:#20584e;outline:2px solid #f1d79a;transform:translateY(-2px)}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:4px;display:grid}.color-grid button{color:#304d45;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;border-radius:10px;justify-content:center;align-items:center;gap:10px;min-height:58px;padding:9px 14px;display:flex}.color-grid button.selected{background:#e1ede4;border-color:#1e6859;box-shadow:inset 0 0 0 2px #1e6859}.color-grid b,.color-grid small{text-align:left;display:block}.color-grid small{color:#718079;margin-top:2px;font-size:10px}.color-stone{border-radius:50%;flex:0 0 28px;width:28px;height:28px;box-shadow:0 3px 7px #18332b55}.color-stone.black{background:radial-gradient(circle at 30% 25%,#687c71,#0d1914 58%,#020705)}.color-stone.white{background:radial-gradient(circle at 30% 25%,#fffff5,#e4e0cb 56%,#a7ab94);border:1px solid #b8b49f}.review-return{z-index:30;color:#f7e8c5;cursor:pointer;letter-spacing:.1em;background:#153d37ed;border:1px solid #d8bd82;border-radius:999px;padding:10px 18px;position:fixed;bottom:18px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #001b1780}@media (width<=580px){.feedback-link{right:10px;bottom:max(10px,env(safe-area-inset-bottom));letter-spacing:.08em;padding:7px 11px;font-size:10px}}.story-link{z-index:30;color:#f7e8c5;letter-spacing:.12em;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#153d37e8;border:1px solid #d8bd82aa;border-radius:999px;padding:9px 15px;font-size:12px;text-decoration:none;transition:transform .2s,background .2s;position:fixed;bottom:64px;right:18px;box-shadow:0 8px 24px #001b1766}.story-link:hover,.story-link:focus-visible{outline-offset:2px;background:#20584e;outline:2px solid #f1d79a;transform:translateY(-2px)}.copy-button{color:#f7efd8;letter-spacing:.1em;cursor:pointer;background:#315d53;border:1px solid #315d53;border-radius:999px;margin-top:14px;padding:10px 20px;font-size:13px;transition:background .2s,transform .2s}.copy-button:hover,.copy-button:focus-visible{outline-offset:2px;background:#26483f;outline:2px solid #315d5355;transform:translateY(-1px)}@media (width<=580px){.story-link{right:10px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 40px);letter-spacing:.08em;padding:7px 11px;font-size:10px}.copy-button{width:100%;padding:9px 14px;font-size:12px}.color-grid{gap:7px}.color-grid button{min-height:50px;padding:7px 9px}.color-stone{flex-basis:24px;width:24px;height:24px}.review-return{left:10px;bottom:max(10px,env(safe-area-inset-bottom));padding:8px 11px;font-size:10px;transform:none}}.mode-card,.lobby-card{width:min(560px,100%)}.mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.mode-grid button{color:#304d45;cursor:pointer;background:#f9f3e4;border:1px solid #bcae8e;border-radius:14px;min-height:150px;padding:24px 18px;transition:transform .2s,border-color .2s}.mode-grid button:hover,.mode-grid button:focus-visible{border-color:#1e6859;outline:2px solid #1e685955;transform:translateY(-3px)}.mode-grid b,.mode-grid small{display:block}.mode-grid b{margin-bottom:13px;font-size:18px}.mode-grid small{color:#718079;line-height:1.7}.lobby-card .primary-button{margin-bottom:22px}.join-row{gap:8px;max-width:390px;margin:0 auto;display:flex}.join-row input{text-transform:uppercase;letter-spacing:.18em;background:#fffaf0;border:1px solid #bcae8e;border-radius:8px;flex:1;min-width:0;padding:12px 14px}.join-row button{color:#f7efd8;cursor:pointer;background:#315d53;border:1px solid #315d53;border-radius:8px;padding:10px 17px}.join-row button:disabled,.lobby-card button:disabled{opacity:.5;cursor:not-allowed}.room-code{background:#f9f3e4;border:1px solid #c9b68d;border-radius:14px;padding:22px}.room-code small,.room-code strong{display:block}.room-code strong{letter-spacing:.18em;color:#28584d;margin:10px 0;font-size:clamp(38px,8vw,62px)}.room-code p{color:#718079;font-size:13px}.online-error{color:#8d3f36;margin:16px 0 0;font-size:13px}@media (width<=580px){.mode-grid{grid-template-columns:1fr;gap:10px}.mode-grid button{min-height:102px;padding:16px}.mode-grid b{margin-bottom:7px}.join-row{flex-direction:column}.join-row button{min-height:44px}.room-code{padding:18px}.room-code strong{font-size:36px}}.last-move-note{color:#fff0c4;text-shadow:0 1px 3px #102d29;min-height:1.5em;margin:8px 0 0;font-size:12px;line-height:1.5}.preview-board button.last:after{background:#d14432;border:1px solid #fff2c5;width:26%;height:26%;top:37%;left:37%;box-shadow:0 0 0 1px #78332966}
