:root{color:#4a2a12;font-synthesis:none;background:#ffb066;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.6}*{box-sizing:border-box}body{background:radial-gradient(900px 420px at 50% -80px,#ffe9c4b3,#0000),linear-gradient(#ffd9a4 0%,#ffb066 45%,#ef8b45 100%);min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button,a{-webkit-tap-highlight-color:transparent}button{border:0}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1{letter-spacing:-1px;margin-bottom:18px;font-size:35px;line-height:1.22}h2{margin-bottom:14px;font-size:18px}h2 small{color:#a5763d;font-weight:400}p{font-size:14px}small{font-size:12px}.mast{justify-content:space-between;align-items:center;max-width:860px;margin:auto;padding:22px 22px 16px;display:flex}.brand{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.brand-art{align-items:center;gap:12px;display:flex}.brand-cn{width:auto;height:36px;display:block}.brand-dixit{width:auto;height:31px;display:block}.brand small{letter-spacing:2px;color:#8a5a33;font-size:10px;font-weight:400;display:block}main{max-width:760px;margin:auto;padding:0 20px 40px}.hero{padding:35px 8px 26px}.hero h1{margin:16px 0;font-size:42px;line-height:1.22}.hero p{color:#7c4a24;line-height:1.9}.eyebrow{color:#b06a20;letter-spacing:2px;font-size:11px;font-weight:700}.panel{background:#fffaf2;border:1px solid #f0dcc0;border-radius:22px;margin-bottom:16px;padding:22px;box-shadow:0 4px 16px #7c3a100d}.section-head{align-items:center;gap:10px;margin-bottom:15px;display:flex}.section-head h2{margin:0}.step{color:#b07a33;background:#ffefd6;border:1px solid #ecc9a2;border-radius:7px;padding:3px 8px;font-size:11px}.upload{text-align:center;cursor:pointer;background:#fff3df;border:1px dashed #d9a866;border-radius:14px;flex-direction:column;gap:8px;padding:30px 12px;display:flex}.upload span{color:#b08040;font-size:11px}.upload input,.file-button input{opacity:0;width:1px;height:1px;position:absolute}.upload:focus-within,.file-button:focus-within{outline:2px solid #c65a1e}label{color:#8a5a33;margin:14px 0;font-size:12px;display:block}input,select{color:#4a2a12;background:#fff;border:1px solid #e8cfa8;border-radius:10px;outline:none;width:100%;margin-top:6px;padding:12px;display:block}input:focus,select:focus{border-color:#c65a1e;box-shadow:0 0 0 3px #c65a1e1a}.primary,.secondary{text-align:center;border-radius:11px;width:100%;margin:10px 0;padding:12px 15px;font-size:14px;font-weight:600;display:block}.primary{color:#fff8ee;background:#c65a1e}.secondary{color:#9c4f1d;background:#fff3e0;border:1px solid #ecc9a2}.small{width:auto;margin:0;padding:8px 12px;font-size:12px}.muted,.hint{color:#a0764f;font-size:12px}.hint{margin:9px 0 0;font-size:11px}.text-btn{color:#9c5a20;background:0 0;padding:8px 3px;font-size:12px}.divider{text-align:center;color:#b3855a;margin:23px 0;font-size:11px}.note{color:#8a5a33;padding:15px 8px;font-size:12px}.note p{color:#a0764f;margin:8px 0;font-size:11px;line-height:1.8}.alert{color:#88603e;overflow-wrap:anywhere;background:#fff3df;border:1px solid #ddac83;border-radius:12px;margin:12px 0;padding:14px;font-size:13px}.processing{z-index:4;background:#ffefd6;border-radius:12px;margin:12px 0;padding:14px;position:sticky;top:8px;box-shadow:0 5px 20px #7c3a101a}.processing strong{font-size:13px;display:block}progress{accent-color:#c65a1e;width:100%;height:12px}.processing small{text-align:right;display:block}.room-head{padding:22px 4px}.room-head h1{margin-bottom:10px;font-size:27px}.title-line{justify-content:space-between;align-items:center;gap:10px;display:flex}.sync-row{justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.ready-banner{color:#9c6a1f;background:#ffefd6;border-radius:10px;margin:14px 0;padding:12px;font-size:13px}.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:16px 0;display:grid}.picture{aspect-ratio:3/4;background:#f7e8d2;border:3px solid #0000;border-radius:10px;width:100%;min-width:0;padding:0;position:relative;overflow:hidden}.picture img{object-fit:contain;background:#fbf1de;width:100%;height:100%;display:block}.picture.chosen{border-color:#d9772e;box-shadow:0 0 0 2px #d9772e2a}.picture:disabled{opacity:1}.picture:disabled:not(.chosen){cursor:default}.slot,.check{color:#fff;background:#5a2e14e0;border-radius:7px;padding:2px 7px;font-size:12px;position:absolute;bottom:5px;left:5px}.check{background:#d9772e;left:auto;right:5px}.players{gap:12px;display:grid}.player{border-bottom:1px solid #f3e2c8;align-items:center;gap:12px;padding:8px 0;display:flex}.player strong{font-size:13px}.player small{color:#a0764f;font-size:11px;display:block}.avatar{border-radius:12px;flex-shrink:0;place-items:center;width:37px;height:37px;font-weight:600;display:grid}.a0{color:#a05c22;background:#ffe3c2}.a1{color:#8a6a2f;background:#f6d9b8}.a2{color:#96603a;background:#f3e0cd}.a3{color:#a2543a;background:#f8d9c4}.score{align-items:baseline;gap:4px;margin-left:auto;font-size:22px;font-weight:700;display:flex}.score small{font-weight:400;display:inline}.score b{color:#c98a2e;font-size:12px}.kick{font-size:10px}.results small{text-align:center;color:#a0764f;font-size:10px;display:block}.saved{text-align:left;color:#9c5a20;background:#fff3df;border:1px solid #ecc9a2;border-radius:10px;width:100%;margin:8px 0;padding:12px;display:block}.saved small{color:#b08040;display:block}summary{cursor:pointer;font-size:13px}details{border-top:1px solid #f3e2c8;padding:10px 0}details p{margin:6px 0;font-size:11px}.danger{color:#a56855;margin-left:14px}footer{text-align:center;color:#8a5a33;padding:32px 10px 0;font-size:10px;line-height:1.9}footer button{font-size:10px}.file-button{cursor:pointer}.board .picture:disabled:not(.chosen){filter:saturate(.7)}.results .picture:disabled{filter:none}@media (min-width:680px){.hero{padding-top:50px}.hero h1{font-size:53px}.cards{grid-template-columns:repeat(4,minmax(0,1fr))}.panel{padding:26px}}@media (max-width:350px){main{padding:0 12px 30px}.mast{padding:16px}.hero h1{font-size:36px}.panel{padding:16px}.cards{gap:5px}.sync-row{font-size:11px}.brand-cn{height:29px}.brand-dixit{height:25px}.brand-art{gap:8px}}.processing small{overflow-wrap:anywhere;text-align:left}.lounge-brand{letter-spacing:1px;align-items:center;gap:10px;font-size:23px;font-weight:750;display:flex}.lounge-brand small{letter-spacing:2px;color:#81502a;font-size:9px;font-weight:500;display:block}.lounge-mark{color:#a74b1c;background:#fff1d9;border:1px solid #ce9a62;border-radius:14px;place-items:center;width:44px;height:44px;font-size:30px;display:grid;box-shadow:0 4px 14px #87400e12}.lounge-count,.library-head>span{color:#81502a;font-size:11px}.lounge-hero{padding-bottom:35px}.library-head{justify-content:space-between;align-items:center;gap:12px;margin:0 4px 16px;display:flex}.library-head h2{margin:0;font-size:21px}.game-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.game-tile{background:#fff8ec;border:1px solid #ffe9cc;border-radius:23px;overflow:hidden;box-shadow:0 10px 28px #87400e14}.game-art{background:radial-gradient(at 50% 70%,#fff5d9a6,#0000 65%),linear-gradient(135deg,#e9a75e,#f7d79e);height:200px;position:relative;overflow:hidden}.art-card{text-align:center;color:#fff5df;background:linear-gradient(145deg,#b95725,#e59957);border:4px solid #fff5df;border-radius:12px;place-content:center;width:96px;height:135px;font-family:Songti SC,SimSun,serif;font-size:25px;line-height:1.3;display:grid;position:absolute;top:30px;left:calc(50% - 48px);transform:rotate(12deg);box-shadow:0 10px 18px #87400e33}.art-card-back{background:linear-gradient(145deg,#537568,#94ab79);font-size:48px;transform:translate(-35px)rotate(-15deg)}.game-availability{color:#644829;background:#fff7e8de;border-radius:20px;padding:3px 9px;font-size:10px;position:absolute;top:14px;left:14px}.game-info{padding:21px}.game-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.game-title h3{margin:0;font-size:24px}.game-title>span{white-space:nowrap;color:#81502a;font-size:11px}.game-info p{color:#81502a;margin:10px 0;font-size:12px;line-height:1.8}.game-info .game-subtitle{margin-top:3px;font-size:11px}.game-tags{flex-wrap:wrap;gap:6px;margin:15px 0;display:flex}.game-tags span{color:#735031;background:#f5e7d1;border-radius:7px;padding:3px 8px;font-size:10px}.game-enter{margin-bottom:0}.game-coming{text-align:center;color:#81502a;background:#fff2dc40;border:1px dashed #b6814f;border-radius:23px;flex-direction:column;justify-content:center;align-items:center;padding:30px 20px;display:flex}.game-coming>span{font-size:34px;font-weight:300}.game-coming h3{margin:8px 0;font-size:16px}.game-coming p{margin:0;font-size:12px;line-height:1.9}.lounge-rooms{margin-top:24px}.lounge-note{color:#6e401c;padding:26px 4px 0;font-size:13px}.lounge-note p{color:#81502a;margin:8px 0 0;font-size:11px;line-height:1.9}.back-to-lounge{white-space:nowrap;background:#fff2dcbd;border:1px solid #dfbe96;border-radius:10px;padding:8px 10px;font-size:12px}.players{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.player{text-align:center;background:#fffcf5;border:1px solid #e9d7bb;border-radius:13px;flex-direction:column;align-items:center;gap:0;min-width:0;padding:12px 4px 7px;display:flex;position:relative}.player:last-child{border:1px solid #e9d7bb}.player.is-me{background:#fff0dc;border-color:#d49e6e}.avatar{background:var(--avatar-bg);width:52px;max-width:100%;height:52px;color:var(--avatar-ink);overflow-wrap:anywhere;word-break:break-all;text-align:center;border-radius:14px;flex-shrink:0;padding:4px;line-height:1.2;overflow:hidden}.avatar[data-avatar-color="0"]{--avatar-bg:#f9d8bb;--avatar-ink:#783b13}.avatar[data-avatar-color="1"]{--avatar-bg:#cce6df;--avatar-ink:#20594a}.avatar[data-avatar-color="2"]{--avatar-bg:#d9ddf6;--avatar-ink:#394782}.avatar[data-avatar-color="3"]{--avatar-bg:#f0d3e3;--avatar-ink:#7d365a}.avatar[data-avatar-color="4"]{--avatar-bg:#f4e5ad;--avatar-ink:#695016}.avatar[data-avatar-color="5"]{--avatar-bg:#cce6f4;--avatar-ink:#225773}.avatar[data-avatar-color="6"]{--avatar-bg:#e2d5ef;--avatar-ink:#603e7b}.avatar[data-avatar-color="7"]{--avatar-bg:#dbe6bf;--avatar-ink:#405923}.avatar-short{font-size:15px}.avatar-medium{font-size:12px}.avatar-long{font-size:10px}.avatar-extra-long{font-size:8px}.player .player-name{white-space:nowrap;text-overflow:ellipsis;width:100%;margin-top:7px;font-size:12px;line-height:1.4;display:block;overflow:hidden}.player-role{justify-content:center;align-items:center;gap:3px;height:19px;display:flex}.player-role span{color:#8e4f22;font-size:9px;line-height:1.3}.player .player-status{overflow-wrap:anywhere;color:#81502a;justify-content:center;align-items:center;width:100%;min-height:29px;font-size:10px;line-height:1.45;display:flex}.player .score{flex-wrap:wrap;justify-content:center;gap:3px;margin:3px 0 0;font-size:21px;line-height:1.3}.player .score small{font-size:10px}.player .score b{font-size:11px}.player .kick{border-top:1px solid #eddec8;width:100%;min-height:28px;margin-top:2px;padding:6px 3px;font-size:10px}@media (max-width:540px){.game-grid{grid-template-columns:minmax(0,1fr)}.game-coming{min-height:155px;padding:20px}.lounge-count{font-size:10px}.lounge-brand{font-size:20px}.players-panel{padding:16px 12px}.players{gap:5px}.player{padding:8px 3px 4px}.player .player-name{font-size:11px}.player .player-status{font-size:9px}.avatar{width:46px;height:46px;padding:3px}.avatar-short{font-size:13px}.avatar-medium{font-size:11px}.avatar-long{font-size:9px}.avatar-extra-long{font-size:8px}.back-to-lounge{padding:7px;font-size:11px}}@media (max-width:350px){.players-panel{padding:14px 9px}.players{gap:4px}.avatar{width:42px;height:44px}.avatar-extra-long{font-size:7px}.back-to-lounge{padding:6px 5px;font-size:10px}}.notification-host{top:max(12px,env(safe-area-inset-top));z-index:1000;pointer-events:none;padding:0 12px;position:fixed;left:0;right:0}.floating-notice{color:#4a2a12;pointer-events:auto;background:#fff8ec;border:1px solid #ecc9a2;border-radius:14px;align-items:center;gap:10px;max-width:680px;margin:0 auto;padding:12px 16px;animation:.18s ease-out notice-in;display:flex;box-shadow:0 8px 26px #7c3a1033}.floating-notice p{overflow-wrap:anywhere;white-space:pre-wrap;flex:1;margin:0;font-size:14px}.floating-notice.error{background:#ffe9dc;border-color:#e0a583}.floating-notice.success{background:#fdf3d9;border-color:#d9b980}.notice-close{color:inherit;background:0 0;min-width:36px;min-height:36px;font-size:24px}.floating-notice.confirm{flex-wrap:wrap}.notice-actions{gap:8px;margin-left:auto;display:flex}.notice-actions button{min-height:40px}.own-card{color:#fff;background:#5a2e14df;border-radius:6px;padding:3px;font-size:11px;position:absolute;top:6px;left:6px;right:6px}.score-breakdown{background:#fff3df;border-radius:10px;margin:16px 0;padding:14px}.score-breakdown h3{margin:0 0 8px;font-size:15px}.score-breakdown p{margin:6px 0;font-size:12px}.advance{margin-top:16px}.settings input{max-width:220px}@keyframes notice-in{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.floating-notice{animation:none}}.button-loading{justify-content:center;align-items:center;gap:8px;display:inline-flex}.button-spinner{border:2px solid;border-right-color:#0000;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.75s linear infinite button-spin;display:inline-block}.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}#network-status,#network-detail{overflow-wrap:anywhere}@keyframes button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.button-spinner{animation:2s linear infinite button-spin}}.game-progress{flex-wrap:nowrap;align-items:center;gap:10px;display:flex}.game-progress h2{flex:1;min-width:0;margin:0}.game-progress #refresh{white-space:nowrap;flex-shrink:0}.hand-tools,.hand-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.hand-tools small{color:#a0764f;font-size:11px}.shuffle-banner{color:#65458c;background:#eee7fa;border:1px solid #cbb8e2;border-radius:10px;padding:12px;font-size:13px}.picture.shuffle-card.chosen{border-color:#8b5cbb;box-shadow:0 0 0 2px #8b5cbb33}.shuffle-card .exchange-check{color:#fff;background:#fff;border:2px solid #8b5cbb;border-radius:4px;place-items:center;min-width:20px;min-height:20px;padding:0;display:grid}.shuffle-card.chosen .exchange-check{background:#8b5cbb}.previous-games{overflow-wrap:anywhere}@media (max-width:350px){.game-progress{gap:7px}.game-progress h2{font-size:16px}.game-progress #refresh{padding:8px;font-size:11px}}.score-table{border-collapse:collapse;width:100%;margin:6px 0;font-size:13px}.score-table th{color:#a0763d;white-space:nowrap;font-size:11px;font-weight:600}.score-table th,.score-table td{text-align:center;border-bottom:1px solid #f3e4cb;padding:7px 4px}.score-table th:first-child,.score-table td:first-child{text-align:left}.score-table tr:last-child td{border-bottom:0}.picture-cell{position:relative}.picture{display:block}.slot{color:#5a2e14;text-shadow:0 0 3px #fffdf2b3;-webkit-backdrop-filter:blur(2px)saturate(1.15);backdrop-filter:blur(2px)saturate(1.15);background:0 0;border:1px solid #5a2e14a6;place-items:center;height:24px;padding:0 8px;line-height:1;display:grid}.zoom{color:#5a2e14;-webkit-backdrop-filter:blur(2px)saturate(1.15);backdrop-filter:blur(2px)saturate(1.15);background:#5a2e141a;border:1px solid #5a2e14a6;border-radius:7px;place-items:center;width:24px;height:24px;padding:0;display:grid;position:absolute;bottom:8px;right:5px}.zoom svg{filter:drop-shadow(0 0 2px #fffdf2b3);width:13px;height:13px;display:block}.check{top:5px;bottom:auto}.zoom-overlay{z-index:1200;cursor:zoom-out;background:#1a0f07b3;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.zoom-overlay img{object-fit:contain;border-radius:10px;width:100%;height:100%;box-shadow:0 12px 44px #0008}:root{--ink:#4a2a12;--orange:#c65a1e;--canvas:#f5b97e;background:var(--canvas)}body{color:var(--ink);background-color:var(--canvas);background-image:linear-gradient(110deg,#ffdfb14d,#f2a76c26),url(/theme/oil-canvas.webp);background-repeat:no-repeat,repeat;background-size:100% 100%,420px 420px}#app{isolation:isolate;min-height:100svh;position:relative;overflow:clip}.canvas-crown{aspect-ratio:1.36;pointer-events:none;z-index:-1;opacity:.88;background:url(/theme/orange-branches.webp) 100% 0/contain no-repeat;width:clamp(240px,40vw,380px);position:absolute;top:0;right:max(0px,50vw - 500px)}.mast{padding-top:max(26px, env(safe-area-inset-top));position:relative}.brand small{color:#754721;text-shadow:0 1px #ffe8c780}.hero{padding-top:32px;padding-bottom:30px}.hero h1{letter-spacing:.025em;font-family:Songti SC,Noto Serif CJK SC,SimSun,serif;font-weight:600}.hero p{color:#6e401c}.eyebrow{color:#89501e}.panel{background-color:#fff7e9;background-image:linear-gradient(#fffaf0ed,#fff6e9ed),url(/theme/oil-canvas.webp);background-size:auto,340px 340px;border:1px solid #ffefd9cf;box-shadow:0 10px 28px #87400e12,inset 0 1px #fffdf2}.step{color:#89501e;background:#f7e3c5;border-color:#e4bb8d}.upload,.material-choice{background-color:#fff0da;background-image:linear-gradient(#fff2dfb8,#fff2dfb8),url(/theme/oil-canvas.webp);background-size:auto,340px 340px;border-color:#ce9a62}.upload span,.muted,.hint,.note p{color:#81502a}input,select{background-color:#fffdf7;border-color:#dfbe96}input::placeholder{color:#9c7958;opacity:1}.primary{background:var(--orange);box-shadow:0 3px #8e3c1017,inset 0 1px #ed9e6959}.primary:not(:disabled):active{transform:translateY(1px);box-shadow:inset 0 2px 5px #75300630}.secondary{background:#fff2dc;border-color:#ddb58b}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #8e3f15}.picture,.picture img{background-color:#fff8ee}.picture.chosen{border-color:var(--orange)}.room-head{padding-top:30px}.room-head h1{text-shadow:0 1px #ffdfb299}.painted-footer{padding-top:12px;padding-bottom:max(20px, env(safe-area-inset-bottom));color:#6e421f;margin-top:20px}.painted-horizon{aspect-ratio:2.08;pointer-events:none;background:url(/theme/painted-coast.webp) bottom/100% 100% no-repeat;border-radius:0 0 26px 26px;width:calc(100% + 40px);margin:0 -20px -2px}.footer-copy{padding:22px 12px 4px;font-size:11px;line-height:1.8}.footer-copy p{color:#81502a;margin:4px 0 0;font-size:11px}@media (min-width:700px){.hero{padding-top:42px;padding-bottom:34px}.hero h1{font-size:48px}.painted-horizon{aspect-ratio:2.45;width:calc(100% + 100px);margin-left:-50px;margin-right:-50px}}@media (max-width:400px){.canvas-crown{opacity:.8;width:218px;right:-22px}.mast{padding-top:max(24px, env(safe-area-inset-top))}.hero{padding-top:24px}.hero h1{font-size:38px}}@media (prefers-reduced-motion:reduce){.primary:active{transform:none}}@media (forced-colors:active){.canvas-crown,.painted-horizon{display:none}.panel,.upload,.material-choice,body{background-image:none}}.material-panel{background:#fff8ec;border:1px solid #e8ccb5;border-radius:16px;margin:20px 0;padding:16px}.material-tabs{gap:10px;margin-bottom:16px;display:flex}.material-tabs button{flex:1}.pack-choice{background:#fffdf8;border-radius:12px;align-items:center;gap:12px;padding:10px;display:flex}.pack-choice input{accent-color:#c65a1e;flex-shrink:0;width:22px;height:22px;margin:0}.pack-choice span{line-height:1.6}.pack-choice strong{white-space:nowrap}.image-failed .picture{background:#fde6d1}.material-panel .upload{margin-top:14px}.progress-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.progress-actions .small{white-space:nowrap;margin:0}@media (max-width:350px){.game-progress.with-image-retry .step{display:none}.game-progress.with-image-retry h2{font-size:14px}.progress-actions .small,.game-progress #refresh{padding:8px 6px;font-size:11px}}.vote-names{z-index:2;color:#fff;white-space:normal;pointer-events:none;overflow-wrap:anywhere;text-shadow:none;background:#412311d6;border-radius:9px;padding:5px 8px;font-size:12px;line-height:1.4;position:absolute;top:6px;left:6px;right:6px}.score-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.score-scroll .score-table{min-width:580px}.game-notice{border-left:3px solid var(--orange,#dc7737);background:#fff2dccc;border-radius:10px;padding:12px 16px;line-height:1.6}.game-progress #refresh{font-variant-numeric:tabular-nums;width:132px;padding-left:6px;padding-right:6px}.progress-actions button:disabled{cursor:wait}@media (max-width:350px){.game-progress #refresh{width:120px}.game-progress.with-image-retry .progress-actions{gap:4px}}
