:root{--ink:#654e49;--muted:#8c766f;--pink:#f6bccc;--pink-dark:#a96a79;--cream:#fffaf0;--peach:#fff0e6;--line:#d9baad;--yellow:#ffe8a6;--mint:#d8eadc;--sky:#ceeaf1;--shadow:0 7px 0 #d8b9b0,0 16px 30px rgba(101,78,73,.13);--hand:'Ma Shan Zheng','Kaiti SC','STKaiti','KaiTi',cursive;--play:'ZCOOL KuaiLe','Kaiti SC','STKaiti','KaiTi',sans-serif}
html{background:#dceff1;scroll-behavior:smooth}
body{color:var(--ink);font-family:'Nunito','Noto Sans SC','PingFang SC','Microsoft YaHei',sans-serif;background:radial-gradient(circle at 80% 9%,#fff7ea 0 8%,transparent 28%),radial-gradient(circle at 15% 36%,#f9dfe8 0 6%,transparent 25%),repeating-linear-gradient(0deg,transparent 0 33px,rgba(128,172,174,.09) 34px 35px),repeating-linear-gradient(90deg,transparent 0 33px,rgba(128,172,174,.09) 34px 35px),#dceff1}
.shell{max-width:1180px}.site-header{height:76px}.brand{font-family:var(--play);font-size:24px;color:#6b4a43}.brand-icon{background:#f8c1ce;border:2px solid var(--ink);box-shadow:3px 4px 0 #d59e9b;color:#fffef6}.header-note{font-family:var(--play);font-size:14px;color:#88766e}footer{font-family:var(--play);color:#8c766f}
h1,h2,h3{color:#654a43}.hero h1,.page-title h1{font-family:var(--hand);font-weight:400;letter-spacing:.04em}.hero h1{font-size:clamp(42px,5.2vw,68px);line-height:1.25}.page-title h1{font-size:clamp(34px,4.5vw,48px);line-height:1.2}.eyebrow{color:#a66b7c;font-family:var(--play);font-size:13px;letter-spacing:.09em}.hero p,.page-title p{color:#806f6a}
.hero,.panel,.modal{border:2px solid #a98479;box-shadow:var(--shadow);background:linear-gradient(135deg,rgba(255,252,242,.96),rgba(255,245,239,.94));position:relative}
.hero{min-height:490px;border-radius:30px;overflow:visible;background:radial-gradient(circle at 64% 18%,#fffbeb 0 16%,transparent 38%),linear-gradient(135deg,#fffaf0 5%,#f9dce4 61%,#cceaf2 100%)}
.hero:before,.panel:before{content:'✿';position:absolute;right:20px;top:-20px;display:grid;place-items:center;width:39px;height:39px;border:2px solid #a98479;border-radius:50%;background:#fff2c9;color:#e0a4ad;font-size:24px;box-shadow:2px 3px 0 #d7b8ac;transform:rotate(15deg);z-index:1}
.hero:after{content:'♡  ✦  ♡';font-family:var(--play);letter-spacing:.45em;color:#c78196;position:absolute;bottom:21px;right:34px;opacity:.8}
.panel{border-radius:25px;background-color:#fffaf2}.panel:before{width:27px;height:27px;font-size:17px;top:-15px;right:16px;background:#cdebf0}
.lobby-grid>.panel:first-child:before{content:'♡';background:#ffdae3}.library:before{content:'✿';background:#fff0b7}.board-panel:before{content:'✦'}
.hero-art{height:330px}.orbit{border-color:#cda0a1;width:290px;height:290px}.art-card{border-color:#81645b;box-shadow:7px 8px 0 #d2aeb0;background:#fff8ef}.art-card.one{width:200px;height:230px;left:9%;top:50px;background:#fff9ec}.art-card.two{width:145px;height:170px;right:6%;top:105px;background:#d8f0f1;font-size:50px}.art-card img{width:160px;height:168px;object-fit:contain}.art-card small{font-family:var(--play);font-size:15px;margin-top:2px}.art-star{color:#e6a4b5}
.ticket,.tab,.text-button{position:relative;font-family:var(--play);letter-spacing:.025em;border:2px solid #75574e;background:linear-gradient(170deg,#ffe9ee,#f5b8c9);color:#634a45;box-shadow:0 4px 0 #c79e9b,0 7px 10px rgba(96,66,65,.14);border-radius:17px;transition:transform .16s,box-shadow .16s,filter .16s;text-decoration:none;touch-action:manipulation}
.ticket{padding:10px 38px;min-height:51px}.ticket:before,.text-button:before{content:'✿';position:absolute;left:12px;top:50%;transform:translateY(-50%) rotate(-14deg);font-size:15px;color:#fff7e9;text-shadow:1px 1px 0 #ad7882}.ticket:after{content:'✦';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:11px;color:#fff8ed}.ticket:hover,.tab:hover,.text-button:hover{transform:translateY(-2px);box-shadow:0 6px 0 #c79e9b,0 9px 14px rgba(96,66,65,.16);filter:saturate(1.07)}.ticket:active,.tab:active,.text-button:active{transform:translateY(3px);box-shadow:0 1px 0 #c79e9b}.ticket.secondary{background:linear-gradient(170deg,#fffcf0,#e0f3f2);border-color:#866b5e;box-shadow:0 4px 0 #a8cbd0}.ticket.mint{background:linear-gradient(170deg,#ecf9e9,#c8e9d4);border-color:#7f987f;box-shadow:0 4px 0 #9eb9a5}.ticket.small{min-height:40px;padding:7px 29px;font-size:13px;border:2px solid #75574e;box-shadow:0 3px 0 #c79e9b}.ticket.small:before{left:8px;font-size:12px}.ticket.small:after{right:7px}.ticket:disabled{filter:grayscale(.25);opacity:.55}.tab{min-height:43px;padding:7px 15px;background:#fff5e8;border-radius:14px;font-size:14px;white-space:nowrap}.tab.active{background:#f6c0ce;border-color:#75574e;color:#634a45;box-shadow:0 3px 0 #bc8f8d}.tab span{display:inline-grid;place-items:center;min-width:23px;height:23px;border-radius:50%;background:#fff9ef;border:1px solid #d5aaa8;font-family:'Nunito',sans-serif;font-size:11px;margin-left:3px}.text-button{padding:5px 11px 5px 26px;background:#fff6e9;font-size:12px;min-height:34px}.text-button:before{left:9px;color:#d08b99}.card-actions{gap:8px}.card-actions .text-button:last-child{background:#fce9e8}
.name-input,.field input,.field textarea{border:2px solid #be9b92;background:#fffdf6;box-shadow:inset 0 2px 0 #f7e9d8;color:#5e4945}.name-input{height:51px;border-radius:16px}.name-input:focus,.field input:focus,.field textarea:focus{border-color:#c8839b;box-shadow:0 0 0 4px #f7d7dd}
.page-title{margin-top:30px;margin-bottom:26px}.page-title .ticket{flex-shrink:0}.info-block h2,.library h2,.game-panel h2,.game-side h2{font-family:var(--play);font-size:20px}.info-block+.info-block{border-top:2px dashed #e4c7c0}.player-chip{border:2px solid #d5aba3;background:#fff2e8;border-radius:15px}.player-chip.waiting{background:#f1f8f4;border-color:#afc9b9}.invite-box{border:2px dashed #cfa9a6;background:#fff9ec}.subtle{color:#826e68;font-size:13px}.draft-note{display:block;border:2px dashed #c69ba8;background:#fff2f2;padding:10px 14px;border-radius:15px;color:#986574;font-family:var(--play);font-size:14px}
.library-card{position:relative;border:2px solid #c5a49b;border-radius:20px;background:linear-gradient(165deg,#fff9ec,#fff4eb);box-shadow:0 4px 0 #ead1c8;padding:16px 15px 13px}.library-card.chance{background:linear-gradient(165deg,#fffaf2,#fce6ee)}.library-card.punishment{background:linear-gradient(165deg,#fffaf0,#e7f5f3)}.library-card:after{content:'✦';position:absolute;right:16px;top:11px;color:#d497a4;font-size:20px}.library-card h3{font-family:var(--play);font-size:22px;margin:6px 20px 8px 0;font-weight:400}.library-card p{font-size:13px;line-height:1.7}.card-number{font-family:'Nunito',sans-serif;letter-spacing:.1em;font-weight:900;font-size:10px;color:#b58780}.card-list{gap:14px}.empty{background:#fff7ec;border:2px dashed #d3aaa7}
.board-panel{padding:17px}.board-caption{display:flex;justify-content:space-between;gap:8px;color:#ad7c80;font-family:var(--play);font-size:12px;padding:2px 5px 12px}.board{gap:9px}.square{border:2px solid #a78378;border-radius:17px;box-shadow:0 4px 0 #dfc9bf;min-height:128px;background:#fff9e9;text-align:left;color:var(--ink);font:inherit;transition:transform .15s,box-shadow .15s}.square:nth-child(4n+2){background:#fbe3eb}.square:nth-child(4n+3){background:#ddf1f3}.square:nth-child(4n){background:#ebf4dc}.square:hover,.square:focus-visible{transform:translateY(-2px);box-shadow:0 6px 0 #dfc9bf;outline:none}.square.current{border-color:#ce798e;box-shadow:0 0 0 3px #ffe4a4,0 4px 0 #dfc9bf}.square.done{opacity:.7}.square-number{color:#9e6875;font-family:'Nunito',sans-serif;font-weight:900;letter-spacing:.08em}.square h3{font-family:var(--play);font-size:22px;line-height:1.25;margin:13px 0 5px;white-space:nowrap}.square p{color:#836e6b;line-height:1.5}.square-deco{position:absolute;right:10px;top:8px;color:#d39eae;font-size:17px}.pawns{margin-top:auto}.pawn{background:#ffd0db;border:1.5px solid #8e6770;border-radius:9px;font-family:var(--play);font-size:11px;box-shadow:0 2px 0 #cf9aa5}.pawn.p2{background:#c8edf2;border-color:#708e94}
.turn-name{font-family:var(--play);font-size:27px}.task-callout,.result-card,.claim{border:2px solid #c9a89e;box-shadow:0 3px 0 #ead0c6;background:#fff7ec}.task-callout h3,.result-card h3{font-family:var(--play);font-size:21px}.claim{border-radius:14px}.preview-panel{text-align:center}.preview-bunny{width:155px;height:155px;object-fit:contain}.preview-panel h2{margin:0 0 8px}.preview-panel .ticket{margin-top:10px}.task-detail{position:relative;background:linear-gradient(145deg,#fffaf0,#fce8ed);text-align:center}.task-detail h2{font-family:var(--play);font-size:31px;margin:8px 0 14px}.task-detail p{line-height:1.8;font-size:16px;margin:0 0 20px}.detail-bunny{width:100px;height:95px;object-fit:contain}.modal-backdrop{backdrop-filter:blur(4px)}.modal h2{font-family:var(--play);font-size:28px}.field{font-family:var(--play);font-size:15px}.field input,.field textarea{border-radius:13px}
@media(max-width:850px){.hero{grid-template-columns:1fr;padding:40px 6% 20px}.hero-art{display:block;height:200px;order:-1}.orbit{width:180px;height:180px;left:50%;top:0}.art-card.one{width:125px;height:150px;left:calc(50% - 100px);top:20px}.art-card.one img{width:105px;height:110px}.art-card.one small{font-size:10px}.art-card.two{width:100px;height:116px;right:calc(50% - 110px);top:55px;font-size:30px}.art-card.two small{font-size:10px}.art-star{right:16%;bottom:2px}.lobby-grid,.game-layout{grid-template-columns:1fr}.game-side{grid-template-columns:repeat(2,minmax(0,1fr))}.game-side .wide{grid-column:1/-1}}
@media(max-width:580px){.shell{padding:0 12px 22px}.site-header{height:66px}.brand{font-size:21px}.hero{padding:28px 23px 30px;min-height:0;border-radius:24px}.hero h1{font-size:42px;margin:3px 0 12px}.hero p{font-size:14px;line-height:1.75}.hero-art{height:160px}.orbit{width:160px;height:160px}.art-card.one{left:calc(50% - 85px);width:115px;height:130px;top:12px}.art-card.one img{width:90px;height:94px}.art-card.two{right:calc(50% - 100px);top:38px;width:89px;height:97px}.hero-controls{margin-top:18px}.hero-controls .ticket,.hero-controls .name-input{width:100%}.page-title{margin:24px 2px 23px}.page-title h1{font-size:37px}.page-title p{font-size:13px}.page-title .ticket{margin-top:14px}.lobby-grid{gap:19px}.panel{padding:16px;border-radius:20px}.library-heading{align-items:flex-start}.library-heading h2{margin-bottom:3px}.library-heading .ticket{min-width:104px}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}.tab{padding:7px 2px;font-size:12px;min-height:43px}.tab span{min-width:18px;height:18px;margin-left:1px}.card-list{grid-template-columns:1fr;gap:10px}.library-card{min-height:0;padding:12px 14px 11px}.library-card h3{font-size:21px;margin:4px 20px 5px 0}.library-card p{font-size:12px;margin-bottom:8px}.card-actions{justify-content:flex-end}.board-panel{padding:9px}.board-caption{font-size:10px;padding:3px 4px 10px}.board{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.square{order:var(--mobile-order);min-height:112px;padding:10px;border-radius:13px;box-shadow:0 3px 0 #dfc9bf}.square-number{font-size:9px}.square-deco{font-size:14px;top:7px;right:8px}.square h3{font-size:20px;line-height:1.2;margin:11px 0 5px;letter-spacing:0;white-space:normal}.square p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:12px;line-height:1.4}.pawn{font-size:9px;padding:1px 4px;line-height:1.15}.game-side{grid-template-columns:1fr;gap:15px}.game-side .wide{grid-column:1}.ticket{min-height:49px}.ticket.small{min-height:38px}.row>.ticket{flex:1}.modal{padding:20px}}
@media(max-width:380px){.square h3{font-size:18px}.square{min-height:108px}.square-number{font-size:9px}.library-heading{flex-wrap:wrap}.hero h1{font-size:37px}}
