/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@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}.start{inset-inline-start:var(--spacing)}.block{display:block}.grid{display:grid}.hidden{display:none}}:root{--ink:#433a4d;--muted:#7d7387;--cream:#fffaf1;--paper:#fff;--pink:#ff8eaa;--pink-dark:#e96889;--peach:#ffd8ca;--mint:#ccebd9;--lavender:#ddd2f4;--board:#efc77e;--board-line:#9f7443;--shadow:0 18px 48px #5c486921}*{box-sizing:border-box}html{background:#fff7ef;min-height:100%}body{min-width:320px;min-height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:radial-gradient(circle at 8% 14%,#ffd2ddb3,#0000 22rem),radial-gradient(circle at 95% 42%,#ccebd9b3,#0000 24rem),#fff8ef;margin:0;font-family:PingFang SC,Microsoft YaHei,Noto Sans CJK SC,system-ui,sans-serif}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #705bbf59}.app-shell{min-height:100svh;padding-bottom:max(28px, env(safe-area-inset-bottom));position:relative;overflow:hidden}.topbar{z-index:20;justify-content:space-between;align-items:center;width:min(1040px,100% - 32px);height:76px;margin:0 auto;display:flex;position:relative}.brand,.help-button,.back-button,.room-code,.share-button,.game-actions button,.modal-close,.tutorial-back{cursor:pointer;background:0 0;border:0}.brand{align-items:center;gap:10px;padding:4px;font-size:18px;font-weight:800;display:inline-flex}.brand-mark{width:46px;display:flex;position:relative}.brand-mark .mascot+.mascot{margin-left:-8px}.help-button{background:#ffffffad;border-radius:999px;padding:9px 13px;font-size:14px;font-weight:700;box-shadow:0 5px 18px #4b375614}.help-button span{background:var(--lavender);border-radius:50%;place-items:center;width:20px;height:20px;margin-right:4px;display:inline-grid}.cloud{z-index:0;background:#ffffff8c;border-radius:50px;width:150px;height:52px;position:absolute}.cloud:before,.cloud:after{content:"";background:inherit;border-radius:50%;position:absolute}.cloud:before{width:72px;height:72px;top:-30px;left:26px}.cloud:after{width:58px;height:58px;top:-21px;right:22px}.cloud-one{top:170px;left:-55px;transform:scale(.85)}.cloud-two{top:560px;right:-50px;transform:scale(.65)}.mascot{z-index:1;border-radius:48% 48% 45% 45%;flex:none;width:86px;height:78px;display:inline-block;position:relative;box-shadow:inset 0 -9px #00000012,0 12px 18px #4a3a5429}.mascot:before,.mascot:after{content:"";background:inherit;border-radius:6px 18px 7px 16px;width:25px;height:24px;position:absolute;top:-6px}.mascot:before{left:8px;transform:rotate(-20deg)}.mascot:after{right:8px;transform:scaleX(-1)rotate(-20deg)}.mascot-1{background:#4c4058}.mascot-2{background:#fffaf3;border:2px solid #e7dcca;box-shadow:inset 0 -9px #96786412,0 12px 18px #4a3a5421}.mascot-small{border-width:1px;width:35px;height:33px;box-shadow:inset 0 -4px #0000000d,0 4px 8px #4a3a541f}.mascot-small:before,.mascot-small:after{border-radius:3px 8px 3px 7px;width:11px;height:10px;top:-3px}.mascot-small:before{left:3px}.mascot-small:after{right:3px}.mascot-eye{background:#2f2835;border-radius:50%;width:5px;height:8px;position:absolute;top:31px}.mascot-1 .mascot-eye{background:#fff7eb}.mascot-eye-left{left:27px}.mascot-eye-right{right:27px}.mascot-mouth{border-bottom:2px solid #d66c83;border-radius:50%;width:12px;height:7px;position:absolute;top:48px;left:50%;transform:translate(-50%)}.mascot-small .mascot-eye{width:2px;height:4px;top:12px}.mascot-small .mascot-eye-left{left:11px}.mascot-small .mascot-eye-right{right:11px}.mascot-small .mascot-mouth{border-width:1px;width:6px;height:4px;top:20px}.lobby{z-index:2;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px;width:min(960px,100% - 32px);min-height:calc(100svh - 110px);margin:8px auto 0;display:grid;position:relative}.hero-copy{padding:22px 0 70px}.hero-mascots{align-items:center;gap:13px;margin-bottom:24px;display:flex}.sparkle{color:#f5a45f;font-size:28px;animation:1.9s ease-in-out infinite twinkle}@keyframes twinkle{50%{opacity:.65;transform:scale(.72)rotate(18deg)}}.eyebrow{background:var(--mint);letter-spacing:.05em;border-radius:999px;margin:0 0 13px;padding:7px 12px;font-size:13px;font-weight:800;display:inline-block}.hero-copy h1{letter-spacing:-.055em;max-width:570px;margin:0;font-size:clamp(34px,4.5vw,58px);line-height:1.2}.hero-subtitle{color:var(--muted);margin:21px 0;font-size:17px;line-height:1.8}.feature-pills{flex-wrap:wrap;gap:8px;display:flex}.feature-pills span{color:#6c6275;background:#ffffffb8;border:1px solid #594a6617;border-radius:12px;padding:7px 11px;font-size:13px}.lobby-card{box-shadow:var(--shadow);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffe0;border:1px solid #5f4e6c14;border-radius:28px;padding:30px}.primary-button,.secondary-button,.mini-primary{cursor:pointer;border:0;border-radius:15px;font-weight:800;transition:transform .15s,box-shadow .15s,opacity .15s}.primary-button{background:var(--pink);color:#fff;width:100%;min-height:52px;padding:13px 18px;box-shadow:0 9px 20px #e9688940}.primary-button:hover,.secondary-button:hover,.mini-primary:hover{transform:translateY(-1px)}.primary-button:active,.secondary-button:active,.mini-primary:active{transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled,.mini-primary:disabled{cursor:not-allowed;opacity:.55;box-shadow:none;transform:none}.create-button{font-size:17px}.create-button span{vertical-align:-1px;margin-right:8px;font-size:23px}.ai-button{color:#5e4f71;cursor:pointer;text-align:left;background:#f3eefb;border:2px solid #d9cbef;border-radius:15px;grid-template-rows:auto auto;grid-template-columns:38px 1fr;align-items:center;width:100%;min-height:62px;margin-top:10px;padding:10px 16px;transition:transform .15s,border-color .15s;display:grid}.ai-button:hover{border-color:#bdabe0;transform:translateY(-1px)}.ai-button:active{transform:translateY(1px)}.ai-button:disabled{opacity:.55;cursor:not-allowed;transform:none}.ai-button>span{color:#fff;background:#7662a0;border-radius:11px;grid-row:1/3;place-items:center;width:32px;height:32px;font-size:17px;display:grid}.ai-button strong{font-size:15px}.ai-button small{color:#91849e;margin-top:2px;font-size:10px}.divider{color:#aaa1af;align-items:center;gap:12px;margin:25px 0 20px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:#eee8ef;flex:1;height:1px}.room-label{margin-bottom:8px;font-size:13px;font-weight:700;display:block}.join-row{grid-template-columns:1fr 84px;gap:9px;display:grid}.room-input{width:100%;height:50px;color:var(--ink);letter-spacing:.14em;text-transform:uppercase;background:#fffdfa;border:2px solid #eee6ef;border-radius:14px;padding:0 15px;font-weight:800}.room-input::placeholder{color:#c8c0ca;letter-spacing:.05em;font-weight:500}.room-input:focus{border-color:#c7b8ea}.secondary-button{color:#675779;background:#f4eefb;border:2px solid #e7dbef}.privacy-note{text-align:center;color:#9b929f;margin:19px 0 0;font-size:12px}.loading-card{z-index:2;width:260px;box-shadow:var(--shadow);text-align:center;background:#ffffffd9;border-radius:26px;margin:22vh auto 0;padding:30px;position:relative}.loading-mascots{justify-content:center;gap:4px;display:flex}.loading-card p{color:var(--muted);margin:18px 0 0;font-weight:700}.offline-banner{z-index:80;top:max(8px, env(safe-area-inset-top));color:#fff;background:#564b61;border-radius:999px;width:max-content;max-width:calc(100% - 24px);padding:8px 14px;font-size:12px;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #32283a33}.game-layout{z-index:2;width:min(620px,100% - 20px);margin:3px auto 0;position:relative}.game-heading{grid-template-columns:52px 1fr auto;align-items:center;min-height:54px;margin-bottom:8px;display:grid}.back-button{background:#ffffffb8;border-radius:14px;width:42px;height:42px;font-size:32px;line-height:1;box-shadow:0 5px 16px #46375014}.room-caption{color:var(--muted);margin-bottom:1px;font-size:10px;display:block}.room-code{letter-spacing:.12em;padding:0;font-size:18px;font-weight:900}.room-code small{color:var(--pink-dark);letter-spacing:0;margin-left:5px;font-size:10px}.share-button{background:var(--pink);color:#fff;border-radius:13px;padding:10px 14px;font-size:13px;font-weight:800;box-shadow:0 7px 15px #e9688933}.ai-room-badge{color:#6b5983;background:#eee7fa;border-radius:12px;padding:9px 12px;font-size:12px;font-weight:800}.players-row{grid-template-columns:1fr 1fr;gap:9px;display:grid}.player-card{background:#ffffffc2;border:2px solid #0000;border-radius:17px;align-items:center;gap:9px;min-height:54px;padding:8px 12px;transition:border-color .2s,transform .2s;display:flex;position:relative}.player-card.is-active{border-color:#ffc0cf;transform:translateY(-1px)}.player-card.is-me:after{content:"我的位置";color:#ae9bb8;font-size:8px;position:absolute;bottom:4px;right:8px}.player-card strong,.player-card span{display:block}.player-card strong{font-size:13px}.player-card div>span{color:var(--muted);font-size:10px}.turn-dot{background:var(--pink);border-radius:50%;width:8px;height:8px;margin-left:auto;animation:1.5s ease-in-out infinite pulse;box-shadow:0 0 0 4px #ff8eaa29}@keyframes pulse{50%{opacity:.5}}.status-bubble{width:max-content;max-width:95%;color:var(--muted);background:#ffffffb8;border-radius:999px;margin:10px auto 8px;padding:6px 13px;font-size:12px;font-weight:700}.status-bubble.your-turn{color:#ad4d69;background:#ffe0e7}.board-wrap{background:#f6dfb2;border-radius:22px;padding:7px;box-shadow:0 18px 40px #7753362e,inset 0 0 0 1px #7a543014}.board{aspect-ratio:1;background:var(--board);touch-action:manipulation;border-radius:16px;grid-template-columns:repeat(15,1fr);width:100%;padding:7px;display:grid;overflow:hidden}.intersection{touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border:0;min-width:0;min-height:0;margin:0;padding:0;position:relative}.intersection:before,.intersection:after{content:"";z-index:0;background:var(--board-line);opacity:.72;position:absolute}.intersection:before{height:1px;top:calc(50% - .5px);left:0;right:0}.intersection:after{width:1px;top:0;bottom:0;left:calc(50% - .5px)}.intersection.col-0:before{left:50%}.intersection.col-14:before{right:50%}.intersection.row-0:after{top:50%}.intersection.row-14:after{bottom:50%}.intersection.col-3.row-3,.intersection.col-11.row-3,.intersection.col-7.row-7,.intersection.col-3.row-11,.intersection.col-11.row-11{background:radial-gradient(circle at center, var(--board-line) 0 2px, transparent 2.5px)}.intersection:not(:disabled):hover{background-color:#ffffff29;border-radius:50%}.stone{z-index:2;aspect-ratio:1;border-radius:50%;width:82%;animation:.16s ease-out placeStone;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes placeStone{0%{opacity:.45;transform:translate(-50%,-50%)scale(.35)}}.stone-1{background:radial-gradient(circle at 34% 27%,#756680 0,#4a3d55 42%,#2e2734 100%);box-shadow:inset -2px -3px 4px #00000040,0 2px 3px #462f2661}.stone-2{background:radial-gradient(circle at 34% 27%,#fff 0,#fffaf1 44%,#eadfce 100%);box-shadow:inset -2px -3px 4px #785a4626,0 2px 3px #462f2652}.stone.is-last:after{content:"";aspect-ratio:1;background:#ef617f;border-radius:50%;width:24%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #fff9}.waiting-card,.result-card{background:#ffffffe0;border-radius:20px;grid-template-columns:auto 1fr;align-items:center;gap:11px;margin-top:11px;padding:14px;display:grid;box-shadow:0 10px 26px #53415d1a}.waiting-card .primary-button,.result-card .primary-button{grid-column:1/-1;min-height:46px}.waiting-icon,.result-emoji{background:#fff0f3;border-radius:14px;place-items:center;width:44px;height:44px;font-size:22px;display:grid}.waiting-card strong,.result-card strong{font-size:14px;display:block}.waiting-card p,.result-card p{color:var(--muted);margin:3px 0 0;font-size:11px;line-height:1.5}.request-card{background:#fff;border-radius:16px;justify-content:space-between;align-items:center;gap:9px;margin-top:10px;padding:11px 14px;font-size:12px;display:flex;box-shadow:0 8px 22px #503d5a1a}.request-card p{margin:0}.request-card div{gap:6px;display:flex}.request-card button{cursor:pointer;border:0;border-radius:10px;min-height:35px;padding:7px 12px;font-weight:700}.text-button{background:#f3edf4}.mini-primary{background:var(--pink);color:#fff}.game-actions{justify-content:center;gap:12px;padding:12px 0 0;display:flex}.game-actions button{color:#7d7185;padding:8px 10px;font-size:11px}.game-actions button:disabled{opacity:.4;cursor:not-allowed}.toast{z-index:100;left:50%;bottom:max(25px, env(safe-area-inset-bottom));color:#fff;background:#4c4058;border-radius:999px;width:max-content;max-width:calc(100% - 30px);padding:11px 17px;font-size:13px;font-weight:700;animation:.2s ease-out toastIn;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #342a3c47}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,10px)}}.modal-backdrop{z-index:90;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#392e4173;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.tutorial-modal{background:var(--paper);text-align:center;border-radius:28px;width:min(390px,100%);padding:24px 25px 22px;position:relative;box-shadow:0 28px 70px #30253745}.modal-close{z-index:2;color:#948b99;border-radius:50%;width:38px;height:38px;font-size:26px;position:absolute;top:10px;right:12px}.tutorial-visual{background:#fff2e9;border-radius:22px;place-items:center;height:145px;margin-bottom:16px;display:grid;position:relative;overflow:hidden}.tutorial-visual>span{color:#f4a45f;font-size:28px;position:absolute;top:10px;right:17px}.tutorial-visual-1{background:#edf8f1}.tutorial-visual-2{background:#f3eefb}.five-demo{background:var(--board);color:#4a3e54;letter-spacing:2px;border-radius:18px;padding:14px 18px;font-size:28px;box-shadow:0 8px 18px #7a583629}.tap-demo{background:var(--board);border-radius:18px;place-items:center;width:82px;height:82px;display:grid;position:relative}.tap-demo:before,.tap-demo:after{content:"";background:var(--board-line);opacity:.7;position:absolute}.tap-demo:before{width:100%;height:1px}.tap-demo:after{width:1px;height:100%}.tap-demo i{z-index:1;background:#4a3d55;border-radius:50%;width:36px;height:36px;box-shadow:0 3px 5px #0003}.tap-demo b{color:var(--pink);font-size:38px;position:absolute;bottom:-10px;right:-26px;transform:rotate(-18deg)}.share-demo{align-items:center;gap:18px;display:flex}.share-demo em{color:#a991be;letter-spacing:5px;font-style:normal;font-weight:900}.tutorial-kicker{color:var(--pink-dark);letter-spacing:.08em;margin:0 0 6px;font-size:11px;font-weight:800}.tutorial-modal h2{margin:0;font-size:23px}.tutorial-text{min-height:50px;color:var(--muted);margin:10px 4px 14px;font-size:14px;line-height:1.75}.tutorial-dots{justify-content:center;gap:6px;margin-bottom:16px;display:flex}.tutorial-dots i{background:#e5dfe7;border-radius:99px;width:6px;height:6px;transition:width .2s}.tutorial-dots i.active{background:var(--pink);width:20px}.tutorial-next{min-height:50px}.tutorial-back{color:var(--muted);margin-top:10px;padding:5px;font-size:12px}@media (width<=760px){.topbar{width:calc(100% - 22px);height:64px}.brand{font-size:16px}.help-button{padding:8px 10px;font-size:12px}.lobby{width:calc(100% - 24px);margin-top:6px;display:block}.hero-copy{text-align:center;padding:15px 5px 28px}.hero-mascots,.feature-pills{justify-content:center}.hero-mascots{margin-bottom:19px}.hero-copy h1{font-size:clamp(31px,9vw,43px);line-height:1.22}.hero-subtitle{margin:15px 8px;font-size:14px}.lobby-card{border-radius:24px;padding:22px}.game-layout{width:calc(100% - 12px)}.board-wrap{border-radius:18px;padding:5px}.board{border-radius:14px;padding:5px}.stone{width:86%}.cloud-one{top:120px}.cloud-two{top:440px}}@media (height<=720px) and (width<=760px){.topbar{height:54px}.game-heading{min-height:45px;margin-bottom:4px}.back-button{width:37px;height:37px}.players-row{gap:6px}.player-card{min-height:47px;padding:6px 9px}.status-bubble{margin:6px auto}.game-actions{padding-top:5px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
