@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;700;900&family=Noto+Sans+TC:wght@400;500;700&display=swap');
:root{color-scheme:dark;--ink:#071c28;--panel:#0a2532ee;--gold:#d9b773;--line:#b08e536b;--muted:#b0c2c5;--blue:#67cceb;--red:#f09580;font-family:'Noto Sans TC',system-ui,sans-serif;color:#f4ecdd;font-size:16px;background:#071822}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(#03162378,#031522c9),url('./assets/island-night.png') center/cover fixed}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e9c986;outline-offset:3px}button,a{touch-action:manipulation}a{color:#bce5ef}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:78px;padding:12px max(20px,calc((100vw - 1500px)/2));background:#051824cc;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.brand{font:900 1.8rem 'Noto Serif TC',serif;letter-spacing:.15em;color:#f2d599;text-shadow:0 0 24px #ca954065}.brand small{display:block;font:500 .75rem 'Noto Sans TC';letter-spacing:.12em;color:#baa57c;margin-top:4px}.nav{display:flex;flex-wrap:wrap;gap:5px}.nav button{background:transparent;border:0;padding:9px 12px;color:#d4ddd6}.nav button.active,.nav button:hover{color:#f5ce83;background:#b79b5821;border-radius:5px}.wrap{max-width:1500px;margin:auto;padding:24px}.btn,.ghost,.mini{border:1px solid var(--line);border-radius:5px;padding:10px 15px;background:#153746;color:#e7e8d9}.btn{background:linear-gradient(#e4c687,#b88646);color:#11242d;border-color:#f0d899;font-weight:800;box-shadow:0 4px 14px #0005,inset 0 1px #fff7}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn.secondary{background:linear-gradient(#205365,#103641);color:#f6dcab;border-color:#cca05d}.ghost:hover:not(:disabled),.mini:hover:not(:disabled){background:#265565}.mini{padding:4px 8px;font-size:.875rem;background:#0b2634}.panel{background:linear-gradient(140deg,#12303cee,#071c28f2);border:1px solid var(--line);border-radius:10px;box-shadow:0 16px 44px #0005,inset 0 0 0 1px #eac9890b}.eyebrow{letter-spacing:.18em;color:var(--gold);font-size:.82rem;font-weight:700}.serif,h1,h2,h3{font-family:'Noto Serif TC',serif}h1{font-size:2.3rem;color:#f5d69b;margin:7px 0 13px}h2{font-size:1.55rem;color:#f0d29c;margin:8px 0 15px}h3{font-size:1.1rem;color:#ecd19e;margin:5px 0 12px}p{line-height:1.7}.muted{color:var(--muted)}.small{font-size:.875rem}.gold{color:var(--gold)}.blue{color:var(--blue)}.red{color:var(--red)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:22px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.badge{display:inline-block;padding:5px 10px;border:1px solid var(--line);border-radius:20px;color:#e0c68f;font-size:.8rem;background:#0c2932b3}.lobby-hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center;min-height:330px;padding:30px 4vw}.lobby-hero h1{font-size:clamp(2.8rem,5.6vw,5.5rem);letter-spacing:.08em;margin:0 0 4px}.lobby-hero .tagline{font:700 clamp(1.1rem,2vw,1.6rem) 'Noto Serif TC';letter-spacing:.12em;color:#e4ca9c}.lobby-hero p{max-width:530px;color:#c4d4d6}.hero-cards{display:flex;justify-content:center;align-items:center;min-height:280px}.hero-cards .card{width:165px}.hero-cards .card:first-child{transform:translate(30px,12px) rotate(-13deg)}.hero-cards .card:nth-child(2){z-index:2;transform:translateY(-12px)}.hero-cards .card:last-child{transform:translate(-30px,12px) rotate(13deg)}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.mode{padding:25px;position:relative}.mode.selected{border-color:#e8c580;box-shadow:0 0 0 1px #e8c58040,0 10px 30px #0005}.mode ul{padding-left:20px;color:#c7d8da;line-height:1.9}.mode .btn{width:100%;margin-top:8px}.lobby-bottom{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:22px;padding:15px 20px;background:#071f2bdd;border:1px solid var(--line);border-radius:8px}.card{display:block;position:relative;min-width:0;overflow:hidden;border:1px solid #b48b51;border-radius:9px;background:#0b2430;box-shadow:0 6px 14px #0007;transition:transform .16s,border-color .16s,box-shadow .16s;isolation:isolate}.card:hover{border-color:#ffdfa0;box-shadow:0 8px 22px #000b,0 0 10px #b98f4440;transform:translateY(-3px)}.card.selected{outline:2px solid #78d9ec;border-color:#78d9ec}.card.staged{opacity:.5}.card.disabled .art{filter:grayscale(.9);opacity:.5}.card.returned{animation:glow 1.7s ease-out}.card-main{border:0;padding:0;background:transparent;color:inherit;text-align:left;display:block;width:100%;position:relative}.art{aspect-ratio:1/1;background-repeat:no-repeat;background-color:#173b45;position:relative;overflow:hidden;min-height:50px}.art:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#061a23b0)}.card-cost{position:absolute;top:7px;left:7px;border:1px solid #e1bf7a;background:#082c41f2;border-radius:50%;width:36px;height:36px;display:grid;place-items:center;font-weight:800;font-size:1.15rem;z-index:2;box-shadow:0 3px 8px #0008}.card-power{position:absolute;right:7px;bottom:38px;font:800 1.3rem 'Noto Serif TC';display:grid;place-items:center;background:#713d34ed;border:1px solid #e4be74;border-radius:6px;min-width:39px;height:36px;z-index:2;padding:0 5px}.card-name{display:block;padding:10px 9px 9px;color:#f4e4c1;font:700 .95rem 'Noto Serif TC';white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.card-tags{display:flex;align-items:center;justify-content:space-between;padding:0 8px 7px;font-size:.75rem;color:#adcacc;min-height:24px}.card-info{border:0;background:transparent;color:#e5c386;font-size:.9rem;padding:0 3px}.card-check{position:absolute;right:7px;top:7px;z-index:2;background:#157b90;border:1px solid #8cd7e5;width:23px;height:23px;border-radius:50%;text-align:center;font-size:.85rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:12px}.deck-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px}.deck-main,.side{padding:20px}.side{height:max-content;position:sticky;top:15px}.filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.filters button{border:1px solid var(--line);background:#09232f;color:#c6d6d8;border-radius:5px;padding:7px 11px;font-size:.875rem}.filters button.active{background:#d5b372;color:#10222a}.search{width:100%;background:#071e2b;border:1px solid var(--line);border-radius:5px;color:#f4ecd6;padding:10px 12px;margin-bottom:14px}.select{background:#0d2b3a;color:#e9e6d6;border:1px solid var(--line);padding:9px;border-radius:5px;max-width:100%}.stat{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid #d9d8b91a;font-size:.9rem}.curve{height:110px;display:flex;gap:9px;align-items:end;margin:18px 0}.curve-col{flex:1;text-align:center;font-size:.75rem;color:#9abac4}.curve-col i{display:block;background:linear-gradient(#e4c27c,#8b632c);border-radius:3px 3px 0 0;margin:3px 0}.preset-list{display:grid;gap:9px}.preset{padding:12px;background:#0b2a38;border:1px solid var(--line);border-radius:6px;text-align:left}.preset strong{display:block;color:#ecd2a2}.preset small{display:block;line-height:1.5;color:#b0c8ca;margin-top:5px}.battle-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px}.battle-side{padding:18px;height:max-content}.battle-main{min-width:0}.score-panel{padding:16px 20px;margin-bottom:15px}.score-top{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:center;gap:16px}.score-name{font:700 1.05rem 'Noto Serif TC'}.score-count{font-size:.8rem;color:#b7ced2;margin-top:5px}.island-meter{position:relative;display:flex;align-items:center;height:38px;border:1px solid #d1ac67;border-radius:5px;background:linear-gradient(90deg,#226687,#102c3b 50%,#723e3b);box-shadow:inset 0 2px 10px #0009}.island-meter:after{content:'';height:100%;left:50%;position:absolute;border-left:1px solid #d3b9867a}.marker{position:absolute;left:calc(50% + var(--island)*.45%);top:-5px;bottom:-5px;width:10px;border:1px solid #fff1bd;background:#e9c06d;box-shadow:0 0 14px #e6af5375;border-radius:4px;transform:translateX(-50%);transition:left .8s ease-in-out;z-index:1}.island-amount{text-align:center;font-size:.8rem;color:#e7d3a8;margin-top:7px}.score-top .enemy{text-align:right}.rounds{display:flex;justify-content:center;gap:6px}.round-dot{width:20px;height:7px;border-radius:6px;background:#57717b}.round-dot.p{background:#67cceb}.round-dot.a{background:#ed9d85}.scene-line{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:15px;border-top:1px solid #f1ddab21;padding-top:11px;font-size:.875rem}.scene-line strong{color:#f0cb85}.scene-future{display:flex;gap:6px;flex-wrap:wrap}.scene-tag{padding:4px 6px;font-size:.75rem;background:#0a2534;border:1px solid #5f6d694f;border-radius:3px}.scene-tag.current{border-color:#d7ad65;color:#efd097}.table-panel{padding:16px 18px}.table-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:13px}.table-title{font:700 1.3rem 'Noto Serif TC';color:#edcd93}.energy{font-size:1.05rem}.energy strong{font-size:1.85rem;color:#f2ce7e;line-height:1}.energy.over{color:#fa9b87}.table-grid{display:grid;grid-template-columns:58px repeat(3,minmax(0,1fr));gap:8px}.seat-label{text-align:center;font-size:.8rem;color:#c1b492}.phase-label{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#899fa6;font:700 .95rem 'Noto Serif TC';gap:5px}.phase-label.active{color:#f4d394}.phase-label small{font:400 .7rem 'Noto Sans TC';color:#9dafb2}.seat{position:relative;min-width:0;min-height:72px;border:1px solid #a98b5842;border-radius:6px;background:linear-gradient(135deg,#133442aa,#061b2899);display:grid;place-items:center;padding:6px;transition:border-color .2s,background .2s}.seat.active{border:1px dashed #c8a86a96;min-height:152px;cursor:pointer}.seat.target{border-color:#7bd6e8;background:#1c4659}.seat.done{background:#0c2531;opacity:.85}.seat.waiting{border-color:#f0c476;box-shadow:inset 0 0 15px #dcb34b17}.seat .card{width:115px;animation:enter .25s ease-out}.seat .card .art{aspect-ratio:1.3}.seat .card-tags{display:none}.seat .card-power{bottom:33px;font-size:1rem;height:28px;min-width:32px}.seat .card-cost{width:29px;height:29px;font-size:1rem;top:4px;left:4px}.seat .card-name{font-size:.8rem;padding:8px 5px}.seat-empty{font-size:.8rem;color:#91aab0;text-align:center;line-height:1.7}.stamp{display:flex;align-items:center;gap:7px;width:100%;max-width:180px}.stamp-art{width:40px;height:40px;flex:none;border:1px solid #ac8b56;border-radius:3px;overflow:hidden}.stamp-art .art{height:100%;aspect-ratio:auto}.stamp-name{font-size:.78rem;line-height:1.5;min-width:0}.stamp-name b{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.stamp-name small{color:#a8c9ce}.handbar{margin-top:17px;padding:15px 18px}.handbar-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.handbar-head strong{color:#e9d3a8}.hand{display:flex;gap:10px;overflow-x:auto;padding:3px 2px 13px}.hand .card{width:135px;min-width:110px;flex:1;max-width:160px}.hand .card .art{aspect-ratio:1.25}.hand .card-name{font-size:.85rem}.hand .card-tags{font-size:.7rem}.hand .card-cost{width:30px;height:30px;font-size:1rem}.order-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.order-chip{display:flex;align-items:center;gap:5px;background:#0a2636;border:1px solid var(--line);border-radius:5px;padding:6px;font-size:.8rem}.order-chip .seq{color:#e8c482;font-weight:700}.order-chip small{display:block;color:#8fb4bd;font-size:.7rem}.order-controls{display:flex;gap:2px;margin-left:2px}.order-controls button{padding:2px 5px;border:1px solid #c2a36466;border-radius:3px;background:#143e4b;font-size:.75rem}.playbar{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #d5b87933;margin-top:12px;padding-top:12px}.power-preview strong{font:900 1.8rem 'Noto Serif TC';color:#a8e1ed}.power-preview small{font-size:.78rem;color:#acc4c9}.submit{min-width:155px;font-size:1.1rem}.combo-item{padding:11px 0;border-bottom:1px solid #c9b48126}.combo-item strong{font-size:.9rem;color:#e9d3a4}.combo-item p{font-size:.78rem;color:#a9c2c8;line-height:1.5;margin:5px 0}.combo-item .have{color:#91d7b6}.combo-item.ready{background:#34777620;padding:10px;border:1px solid #70c6ba60;border-radius:5px}.callout{padding:12px 14px;background:#23435088;border-left:3px solid #d9b773;border-radius:0 5px 5px 0;font-size:.875rem;line-height:1.7;color:#d4dfd9}.resource-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0}.resource-row button{font-size:.75rem;padding:7px 5px}.listen-box{background:#5d492737;border:1px solid #ba965c;padding:11px;border-radius:5px;margin-top:10px;font-size:.85rem}.listen-box select{width:100%;margin-top:7px}.details{margin-top:12px;border-top:1px solid #c8ac7840;padding-top:10px}.details summary{cursor:pointer;color:#c3c7af;font-size:.85rem}.details p{font-size:.8rem;color:#a7c2c6}.opponent-grid .seat{min-height:65px;cursor:default}.opponent-grid .seat.active{min-height:70px}.opponent-grid .phase-label{font-size:.8rem}.reveal-strip{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:16px 0}.reveal-cards{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}.reveal-cards .card{width:90px}.reveal-cards .card-tags{display:none}.reveal-cards .card-name{font-size:.7rem;padding:6px 3px}.reveal-cards .card-power{bottom:28px;font-size:.85rem;min-width:26px;height:24px}.reveal-cards .card-cost{width:24px;height:24px;font-size:.85rem;top:3px;left:3px}.reveal-score{font:900 2.7rem 'Noto Serif TC';margin:6px 0}.result-delta{font-size:1.5rem;color:#e7c27e;font-weight:800}.result-lines{text-align:left;font-size:.85rem;line-height:1.8;color:#c5d6d7}.result-lines li{margin:4px 0}.modal{border:1px solid #d3ac6d;border-radius:10px;background:linear-gradient(145deg,#153949,#071c2a);color:#f2e8d4;padding:28px;width:min(740px,calc(100% - 30px));max-height:90vh;overflow:auto;box-shadow:0 30px 90px #000a}.modal::backdrop{background:#02111ed4;backdrop-filter:blur(7px)}.modal.wide{width:min(1000px,calc(100% - 26px))}.modal h2{font-size:1.9rem;text-align:center}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.modal-close{background:transparent;border:1px solid var(--line);border-radius:50%;width:32px;height:32px;color:#e7d4ad}.modal-center{text-align:center}.modal-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:22px}.detail-layout{display:grid;grid-template-columns:210px 1fr;gap:25px;align-items:start;margin-top:20px}.detail-layout .card{width:100%}.detail-layout p{margin:8px 0}.tags{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0}.tags span{font-size:.75rem;border:1px solid #6ba4ad70;padding:4px 7px;border-radius:3px;color:#b6d9dd}.omen-faces{display:flex;gap:14px;justify-content:center;margin:20px 0}.omen-face{display:grid;place-items:center;padding:17px 27px;border:1px solid #cb9d60;background:#542e2b;border-radius:8px;font:700 1.3rem 'Noto Serif TC';box-shadow:inset 0 1px 8px #f4ab5426}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{padding:16px;text-align:left;background:#123546;border:1px solid var(--line);border-radius:6px}.choice strong{display:block;color:#f0d097;margin-bottom:6px}.choice p{font-size:.85rem;line-height:1.6;color:#bdced0;margin:0}.report-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.report-stat{padding:15px;background:#082331;border:1px solid #caad7642;border-radius:6px}.report-stat strong{display:block;font:800 1.75rem 'Noto Serif TC';color:#e5ca8f;margin:5px 0}.report-stat span{font-size:.8rem;color:#b8cbd0}.lesson-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:15px}.lesson{padding:22px}.lesson .number{font:900 2rem 'Noto Serif TC';color:#b68b51}.lesson p{font-size:.9rem;color:#b4cbd0}.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.rule{padding:20px}.rule p,.rule li{font-size:.9rem;color:#c0d2d5;line-height:1.8}.rule ul{padding-left:20px}.recipe-cards{display:flex;gap:6px;margin-top:12px}.recipe-cards .card{flex:1;max-width:140px}.recipe-cards .card-tags{display:none}.recipe-cards .card-name{font-size:.75rem}.recipe-cards .card-power{bottom:33px;font-size:.9rem;height:27px;min-width:29px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th,td{padding:11px 10px;border-bottom:1px solid #ba9a5c40;text-align:left;white-space:nowrap}th{color:#d9bd88}.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#163e4e;border:1px solid #e6c583;border-radius:6px;padding:12px 18px;color:#fff0c6;z-index:100;box-shadow:0 8px 26px #0009;max-width:calc(100% - 25px);font-size:.875rem}.warn{color:#f1a48b}.spaced{margin-top:20px}.divider{border:0;border-top:1px solid #d3b5773d;margin:20px 0}.reorder-list{display:grid;gap:8px}.reorder-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:#082432}.footer{padding:24px;text-align:center;color:#99b5bc;font-size:.75rem}.nomotion *{animation:none!important;transition:none!important}@keyframes enter{from{opacity:.2;transform:translateY(25px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes glow{20%{box-shadow:0 0 20px 4px #f2ce77}100%{box-shadow:0 6px 14px #0007}}@media(max-width:1150px){.battle-shell{grid-template-columns:1fr}.battle-side{order:2}.battle-side .combo-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.deck-layout{grid-template-columns:minmax(0,1fr) 260px}.lobby-hero{padding:24px 0}.hero-cards .card{width:135px}}@media(max-width:800px){.wrap{padding:15px}.topbar{padding:12px 15px;align-items:start}.brand{font-size:1.4rem}.nav button{padding:6px 8px;font-size:.8rem}.modes{grid-template-columns:1fr}.lobby-hero{grid-template-columns:1fr;gap:0;min-height:0}.hero-cards{min-height:230px}.lobby-hero h1{text-align:center}.lobby-hero .tagline{text-align:center}.lobby-hero p{text-align:center;margin:15px auto}.lobby-hero .actions{justify-content:center}.deck-layout{grid-template-columns:1fr}.side{position:static}.score-top{grid-template-columns:1fr 1.8fr 1fr;gap:8px}.score-name{font-size:.85rem}.table-grid{grid-template-columns:42px repeat(3,minmax(0,1fr));gap:5px}.table-panel{padding:12px}.seat.active{min-height:130px}.seat .card{width:95px}.seat .card .art{aspect-ratio:1.1}.seat .card-name{font-size:.73rem}.handbar{padding:13px 12px}.hand .card{min-width:110px;flex:none}.battle-side .combo-list{grid-template-columns:1fr 1fr}.rules-grid{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr 1fr}.lobby-bottom{flex-direction:column;align-items:start}.detail-layout{grid-template-columns:150px 1fr;gap:14px}.modal{padding:20px}.scene-line{align-items:start;flex-direction:column}.phase-label{font-size:.83rem}.phase-label small{font-size:.65rem}}@media(max-width:450px){.topbar{display:block}.nav{margin-top:10px}.nav button{flex:1;padding:6px 4px}.hero-cards .card{width:120px}.brand small{display:inline;font-size:.65rem;letter-spacing:0;margin-left:12px}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.score-panel{padding:13px 10px}.score-name{font-size:.78rem}.score-count{font-size:.7rem}.table-head{align-items:start}.table-title{font-size:1.05rem}.energy{font-size:.83rem}.energy strong{font-size:1.5rem}.seat .card{width:80px}.seat .card-name{font-size:.66rem}.seat .card-power{bottom:29px;min-width:27px;height:25px;font-size:.8rem}.seat .card-cost{width:24px;height:24px;font-size:.85rem}.stamp{flex-direction:column;gap:3px;text-align:center}.stamp-art{width:30px;height:25px}.stamp-name{font-size:.63rem}.stamp-name small{display:none}.handbar-head{font-size:.8rem}.choice-grid{grid-template-columns:1fr}.detail-layout{grid-template-columns:1fr}.detail-layout>.card{max-width:180px;margin:auto}.report-grid{gap:6px}.report-stat{padding:11px}.battle-side .combo-list{grid-template-columns:1fr}.submit{min-width:120px}.playbar{gap:8px}.order-chip{font-size:.72rem}.reveal-cards .card{width:70px}.reveal-cards .card-name{font-size:.61rem}.modal h2{font-size:1.55rem}.reveal-score{font-size:2.2rem}.result-lines{font-size:.8rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Shared control typography and compact battle layout. */
.center{text-align:center}.battle-side{padding:0;display:grid;gap:12px}.battle-side>.panel{padding:17px}.battle-side h3{font-size:1rem}.battle-side .callout{padding:9px}.battle-side .callout p{margin:5px 0}.battle-side .mini{min-height:32px}.opponent-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:10px}.opponent-grid .stamp{flex-direction:column;text-align:center}.opponent-grid .stamp-name{font-size:.75rem}.opponent-grid .stamp-name small{display:none}.opponent-grid .stamp-art{width:34px;height:30px}.stamp-art .art{min-height:0}.score-top{margin-bottom:12px}.score-count{display:inline-block;font:800 1.6rem 'Noto Serif TC';color:inherit;padding:0 7px}.score-top>.red{text-align:right}.score-top .rounds{margin-top:10px}.island-marker{font-size:0}.energy{text-align:right}.energy small{display:block;font-size:.75rem;line-height:1.6;color:var(--muted)}.energy b{display:block;font-size:2rem;line-height:1.1;color:#f2ce7e}.energy b span{font-size:1rem;color:#b1cbd2}.energy.over b{color:#fa9b87}.power-preview{display:flex;flex-direction:column;gap:3px}.power-preview b{font:900 2.3rem 'Noto Serif TC';color:#a8e1ed;line-height:1.1}.report-stat b{display:block;font:800 1.6rem 'Noto Serif TC';color:#e5ca8f;margin:5px 0}.report-stat small{font-size:.875rem;color:#b8cbd0}.report-stat{overflow-wrap:anywhere}.preset span{display:block;line-height:1.6;color:#b0c8ca;font-size:.875rem;margin-top:5px}.preset-list{grid-template-columns:repeat(3,1fr);margin-top:14px}.rule{background:#092532ed;border:1px solid #aa8b534d;border-radius:8px}.order-row{margin-top:13px}.order-chip{flex:1;min-width:155px}.order-chip b{font-size:.875rem}.order-chip small{font-size:.75rem;margin:3px 0}.order-controls .select{padding:2px;min-height:29px;font-size:.8rem}.order-controls button{min-width:28px;min-height:29px;font-size:.875rem}.listen-box small{display:block;margin-top:6px;color:#c6d6d8}.result-delta small{display:block;font-size:.9rem;margin-top:8px}.result-lines p{display:flex;justify-content:space-between}.callout p{margin:6px 0}.lesson-banner{margin-bottom:18px}details>summary{cursor:pointer;line-height:1.7}details>summary::marker{color:var(--gold)}.table-title h2{margin:3px 0}.lobby-hero{min-height:290px;padding-top:20px;padding-bottom:20px}.hero-cards{min-height:230px}.lobby-hero h1{font-size:clamp(2.6rem,4.6vw,4.5rem)}.card-info{min-width:26px;min-height:24px}.filters .secondary{background:#276474;color:#fff0c6}.battle-side .combo-item p{font-size:.875rem}.seat-empty{font-size:.875rem}.card .card-name,.hand .card-name,.seat .card .card-name,.reveal-cards .card .card-name{font-size:.875rem;line-height:1.4;white-space:normal;height:48px;padding:5px 4px;display:flex;align-items:center;justify-content:center;text-align:center}.card .card-power,.hand .card .card-power,.seat .card .card-power,.reveal-cards .card .card-power{bottom:51px}.hand .card-tags{font-size:.75rem}.handbar{background:#082331d9;border:1px solid #af904c40;border-radius:8px}.handbar-head .small{font-size:.8rem}.scene-line{margin-bottom:14px}.modal-head h2{margin-top:0}.modal-close{flex:none}.hand .card{animation:enter .35s ease-out}.hand .card.returned{animation:enter .35s ease-out,glow 1.7s ease-out}.rule .badge{font-family:'Noto Sans TC',sans-serif}.score-name{white-space:nowrap}.section-head{flex-wrap:wrap}
@media(max-width:1150px){.battle-side{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:16px}.battle-side>details{align-self:start}}
@media(max-width:800px){.hero-cards{display:none}.lobby-hero{padding:10px 0 23px;min-height:0}.lobby-hero .eyebrow{text-align:center}.lobby-hero .actions .badge{display:none}.preset-list{grid-template-columns:repeat(2,minmax(0,1fr))}.handbar-head{align-items:start}.handbar-head>.small{max-width:55%;text-align:right}.score-count{font-size:1.4rem}.brand small{font-size:.7rem}.order-row>div:first-child{width:100%}.order-chip{min-width:130px}.scene-tag{font-size:.75rem}.seat .card{width:100%;max-width:125px}.seat .card .card-name{font-size:.875rem}.phase-label{font-size:.875rem}.power-preview b{font-size:1.8rem}.energy b{font-size:1.65rem}}
@media(max-width:450px){.battle-side{grid-template-columns:1fr}.score-name{font-size:.8rem}.score-top{grid-template-columns:1fr 1.5fr 1fr;gap:3px}.score-top .eyebrow{letter-spacing:0;font-size:.8rem}.score-count{font-size:1.2rem;padding:0 2px}.brand small{display:block;margin-left:0;margin-top:5px}.playbar{align-items:start}.playbar .actions{justify-content:flex-end;max-width:63%}.playbar .submit{font-size:1rem;padding:10px}.handbar{padding:12px 8px}.table-grid{grid-template-columns:35px repeat(3,minmax(0,1fr))}.table-panel{padding:9px}.seat{padding:3px}.seat-empty{font-size:.8rem}.phase-label small{font-size:.75rem}.stamp-name{font-size:.75rem}.stamp-name b{white-space:normal;line-height:1.4}.detail-layout .card{width:180px}.reveal-cards .card{width:90px}.choice{padding:13px}.modal{padding:17px}.report-stat b{font-size:1.4rem}.report-stat small{font-size:.8rem}.preset-list{grid-template-columns:1fr}.order-controls button,.order-controls .select{min-height:32px}.lobby-hero h1{font-size:2.6rem}.hero-cards{display:none}}

.return-track{display:flex;gap:8px;position:relative;align-items:center;min-height:52px;padding-right:55px;overflow:hidden}.return-token{display:inline-block;border:1px solid #bf9c59;background:#133d4d;padding:5px 8px;border-radius:5px;font-size:.75rem;animation:toPile .65s ease-in calc(.5s + var(--i)*.23s) both}.return-pile{position:absolute;right:0;border:1px solid #dcb475;background:#0b2936;padding:12px 6px;border-radius:4px;color:#e6cb95;font-size:.8rem;z-index:2}@keyframes toPile{0%{opacity:1;transform:translateX(0) scale(1)}100%{opacity:0;transform:translateX(300px) scale(.4)}}@media(prefers-reduced-motion:reduce){.return-token{animation:none}}.nomotion .return-token{animation:none!important}

/* 1.0.1: printed abilities, eight lines, hidden discoveries and free collections. */
.card{border-color:var(--rarity,#b48b51)}
.card-grid{grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px;align-items:start}
.rarity-ribbon{display:flex;justify-content:space-between;gap:5px;padding:5px 8px;background:#071b27;color:var(--rarity);border-bottom:1px solid var(--rarity);font-size:.75rem;line-height:1.5}
.rarity-ribbon span:last-child{color:#b9c9cc;text-align:right}
.art{display:block}
.card-picture{display:block;position:relative;isolation:isolate}
.card-picture .art{aspect-ratio:1.25}
.card .card-cost,.hand .card .card-cost,.seat .card .card-cost,.reveal-cards .card .card-cost{top:7px;left:7px;width:42px;height:45px;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.25rem;line-height:1.05}
.card .card-power,.hand .card .card-power,.seat .card .card-power,.reveal-cards .card .card-power{bottom:7px;right:7px;min-width:45px;height:45px;padding:3px 6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.25rem;line-height:1.05}
.card-cost small,.card-power small{font:500 .75rem/1.3 system-ui,sans-serif;display:block;color:#f4ead5;margin-bottom:2px}
.card .card-name,.hand .card-name,.seat .card .card-name,.reveal-cards .card .card-name{height:auto;min-height:40px;font-size:1rem;padding:8px 6px;line-height:1.4}
.card-brief{display:block;border-top:1px solid #d7bc763b;padding:9px 10px 10px;min-height:108px;background:#0a2634;line-height:1.55;font-size:.875rem;color:#d2dfe0}
.card-brief b,.card-brief>span,.card-brief small{display:block}
.card-brief b{color:#f4d399;font-weight:700;margin-bottom:4px}
.card-brief small{margin-top:4px;color:#edbb99;font-size:.75rem}
.card-brief.order-ability{background:linear-gradient(120deg,#194349,#122e39);border-top-color:#b5cda36b}
.card-context{display:flex;flex-direction:column;gap:4px;border-top:1px solid #c4b17d26;padding:8px 10px;color:#b9d2d7;font-size:.75rem;line-height:1.5}
.card-context span:last-child{color:#d1bf9b}
.card-mystery{padding:5px 10px;color:#c4b4e2;font-size:.75rem;background:#181f3690;line-height:1.5}
.card-mystery.found{color:#ecd197;background:#3a342b80}
.card-tags{display:flex;gap:5px;flex-wrap:wrap;padding:7px 8px;line-height:1.5;align-items:center;min-height:39px}
.card-info{min-height:30px;min-width:60px;border:1px solid #d7b57666;border-radius:4px;background:#193748;color:#f2d597;font-size:.875rem;padding:3px 6px;margin-left:auto}
.card-info:hover{background:#2e5662}
.card.disabled{opacity:.78}
.card .card-main:disabled{opacity:1}
.card.disabled .card-brief{color:#a5b7bb}
.card.staged{opacity:.66}
.hand{align-items:stretch;scroll-snap-type:x proximity}
.hand .card{width:165px;min-width:150px;max-width:205px;flex:1;scroll-snap-align:start}
.hand .card .art{aspect-ratio:1.6}
.hand .card-brief{min-height:105px}
.hand .card-tags{font-size:.75rem}
.hand .card-context{padding-top:5px;padding-bottom:5px}
.handbar-head .small{line-height:1.6}
.hero-cards .card{width:178px}
.hero-cards .card-brief{font-size:.875rem;min-height:106px}
.hero-cards .card-context,.hero-cards .card-tags,.hero-cards .card-mystery{display:none}
.seat{align-content:center;gap:5px}
.seat .card{width:100%;max-width:220px}
.seat .card .art{aspect-ratio:2.8;min-height:48px}
.seat .card-brief{min-height:0;padding:6px 8px;font-size:.875rem;line-height:1.45}
.seat .card-name{font-size:.875rem;min-height:33px;padding:6px}
.seat .card-context,.seat .card-mystery{display:none}
.seat .card-tags{display:flex;min-height:28px;padding:3px 6px;font-size:.75rem}
.seat .card-info{min-height:28px;font-size:.75rem;min-width:48px}
.seat .rarity-ribbon{padding:3px 6px}
.seat .rarity-ribbon span:last-child{display:none}
.seat .card .card-cost,.seat .card .card-power{height:39px;min-width:35px;width:35px;font-size:1.05rem;top:4px;bottom:auto}
.seat .card .card-cost{left:4px}.seat .card .card-power{right:4px}
.stamp{border:0;border-radius:4px;background:none;color:inherit;text-align:left;padding:5px;min-height:50px;cursor:pointer}
.stamp:hover{background:#2b5057}
.stamp-name{font-size:.875rem}
.stamp-name b{white-space:normal;line-height:1.4}
.stamp-name small{font-size:.75rem}
.seat.replaceable{border-style:dashed;border-color:#7eafae88}
.replace-hint,.replaced-label{font-size:.75rem;line-height:1.4;color:#a8c5c8;text-align:center}
.replaced-label{color:#f0cba2}
.seat.line-focus{border-color:#f6d188!important;box-shadow:inset 0 0 0 2px #eac87b5e,0 0 18px #eac87b24;opacity:1}
.line-panel{margin-top:15px;border-top:1px solid #dfba7252;padding-top:12px}
.line-panel b{color:#ebd09b;font-size:.875rem}
.line-panel>p{margin:8px 0 0;font-size:.75rem;line-height:1.6}
.line-panel .small{font-size:.75rem}
.line-chips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:9px}
.line-chip{border:1px solid #60818c88;border-radius:5px;background:#0b2532;color:#b7d3d8;font-size:.875rem;line-height:1.45;padding:7px 5px;min-height:38px}
.line-chip.complete{color:#f4d69a;border-color:#cfa75d;background:#554a2d4d}
.line-chip.selected{outline:2px solid #efc97f;outline-offset:1px}
.suggestion-panel{padding-top:16px;margin-top:15px;border-top:1px solid #d6b06b55}
.suggestion-panel>.btn{width:100%;font-size:.875rem;padding:9px}
.suggestion-list{list-style:none;margin:12px 0;padding:0;display:grid;gap:9px}
.suggestion-list li{padding:9px 10px;border-left:2px solid #d3ae63;background:#0b1e2de8}
.suggestion-list b,.suggestion-list span,.suggestion-list small{display:block;line-height:1.5;font-size:.875rem}
.suggestion-list b{color:#eed49e}.suggestion-list span{margin:4px 0;color:#98d8dd}.suggestion-list small{color:#bbcdd0}
.resolution-extras{display:grid;grid-template-columns:1fr 1fr;gap:18px;border-top:1px solid var(--line);margin-top:16px;padding-top:16px}
.resolution-extras p{margin:5px 0}
.secret-discovery{padding:14px;border:1px solid #deb979;border-radius:7px;background:linear-gradient(110deg,#44372599,#183a4299);margin:12px 0;animation:discover .7s ease-out}
.secret-discovery b{color:#ffdda1}.secret-discovery small{font-size:.875rem;color:#c5d5d4;line-height:1.6;display:block}
.undiscovered{border-style:dashed;text-align:center}.undiscovered h3{font-size:1.65rem;letter-spacing:.18em;color:#a99abb}.discovered{border-color:#d2ad6f}
.pack-shelf{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}
.pack-box{overflow:hidden;padding:20px 18px;border-color:var(--pack-color);display:flex;flex-direction:column;position:relative;background:linear-gradient(145deg,#204754ed,#081d29f5)}
.pack-box h2{font-size:1.25rem;margin-top:21px;color:var(--pack-color)}
.pack-box p{font-size:1rem;line-height:1.6;margin:0 0 20px;flex:1}
.pack-box .btn{margin-top:20px;width:100%;font-size:.875rem;padding:10px 8px}
.pack-number{font:800 2.6rem/1.3 'Noto Serif TC',serif;letter-spacing:.15em;color:var(--pack-color);padding:38px 10px;text-align:center;border:1px solid var(--pack-color);box-shadow:inset 0 0 0 7px #081f2990;background:linear-gradient(#0b22297d,#0a263c99),url('./assets/island-night.png') center/cover}
.pack-rates{padding:18px 22px}
.pack-reveal{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;align-items:start;margin:23px 0}
.pack-back{min-height:328px;width:100%;border:1px solid #eac176;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;background:linear-gradient(145deg,#0e3847dd,#061e2cef),url('./assets/island-night.png') center/cover;box-shadow:inset 0 0 0 7px #092b3f,inset 0 0 0 8px #ddba7070,0 10px 30px #0006;transition:transform .2s,box-shadow .2s;color:#eccc90}
.pack-back:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 7px #092b3f,inset 0 0 0 8px #ddba7070,0 0 30px #d6ac5d55}
.pack-back>span{font:800 1.5rem/1.5 'Noto Serif TC',serif;writing-mode:vertical-rl;letter-spacing:.25em;margin-bottom:10px}
.pack-back small{font-size:.875rem}
.pack-revealed{animation:unpack .4s ease-out;min-width:0}
.pack-revealed .card-brief{min-height:108px}
.new-collection,.repeat-collection{display:block;text-align:center;margin-top:8px;font-size:.875rem;color:#e4c58c;padding:4px}
.new-collection{color:#a5e9c8}.rarity-legend{box-shadow:0 0 0 1px #f3ca7644,0 5px 24px #d4a2472e}
.reveal-cards{align-items:start}
.reveal-cards .card{width:calc(33.333% - 5px);min-width:110px;max-width:180px}
.reveal-cards .card .art{aspect-ratio:1.5}
.reveal-cards .card-brief{font-size:.875rem;padding:7px;min-height:110px}
.reveal-cards .card .card-name{font-size:.875rem}
.reveal-cards .card-tags{display:flex;padding:5px;font-size:.75rem}
.reveal-cards .card-context{display:none}
.reveal-cards .rarity-ribbon span:last-child{display:none}
.detail-layout>.card{width:100%;max-width:240px}
.volume-control{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:20px 0 28px}
.volume-control input{accent-color:#d5b478;flex:1;min-width:140px;height:32px}
.volume-control output{min-width:42px;color:#f3d395}
.nav .music-toggle{border:1px solid #9d86534d;border-radius:5px;color:#dfbf80}
.nav .music-toggle[aria-pressed=true]{border-color:#88c7b2;color:#a7dfca}
.filters>label{display:flex;gap:7px;align-items:center;min-height:38px}
.order-controls{flex-wrap:wrap}.order-controls .select{font-size:.875rem;max-width:100%;min-height:34px}
.order-chip{min-width:180px}.order-chip>div{min-width:0}.order-chip b{overflow-wrap:anywhere}
@keyframes unpack{from{opacity:.2;transform:rotateY(80deg) translateY(6px)}to{opacity:1;transform:rotateY(0) translateY(0)}}
@keyframes discover{from{opacity:.2;box-shadow:0 0 30px #efbf70a0}to{opacity:1;box-shadow:0 0 0 transparent}}
@media(min-width:1151px){.battle-shell{grid-template-columns:265px minmax(0,1fr)}}
@media(max-width:1150px){.pack-shelf{grid-template-columns:repeat(3,minmax(0,1fr))}.pack-box:last-child{grid-column:auto}.pack-reveal{gap:8px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.hero-cards .card{width:155px}.line-chips{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:800px){.pack-shelf{grid-template-columns:repeat(2,minmax(0,1fr))}.pack-reveal{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pack-back{min-height:310px}.hand .card{min-width:158px;max-width:190px;flex:none}.line-chips{grid-template-columns:repeat(2,minmax(0,1fr))}.seat .card-brief{padding:6px;font-size:.875rem}.seat .card-tags>span{display:none}.seat .card-tags{justify-content:center}.seat .card-info{margin:0;width:100%}.seat .card-brief b{margin-bottom:3px}.seat .card .art{aspect-ratio:2.2}.seat .card-picture{min-height:48px}.resolution-extras{gap:10px}.pack-number{font-size:2.2rem;padding:28px 8px}.card-grid{gap:12px}.detail-layout{grid-template-columns:minmax(180px,.7fr) 1fr}}
@media(max-width:450px){.card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.deck-main{padding:0}.card-brief{padding:8px;font-size:.875rem;min-height:118px}.card .card-name{font-size:.875rem;min-height:42px}.card .card-cost,.card .card-power{font-size:1.15rem}.card-context{padding:6px 8px}.rarity-ribbon{font-size:.75rem;padding:4px 6px}.rarity-ribbon span:last-child{max-width:65px}.card-tags{padding:5px 6px}.card-tags>span{font-size:.75rem}.pack-shelf{gap:10px}.pack-box{padding:12px}.pack-box h2{font-size:1.05rem;line-height:1.5;margin-top:14px}.pack-box p{font-size:.875rem}.pack-number{font-size:1.8rem;padding:24px 5px}.pack-reveal{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pack-back{min-height:295px}.seat .card-name{font-size:.875rem!important;padding:5px 2px}.seat .card-brief{padding:5px;font-size:.875rem;word-break:normal}.seat .rarity-ribbon{font-size:.75rem}.seat .card .card-cost,.seat .card .card-power{width:29px;min-width:29px;height:37px;top:3px;padding:1px 3px;font-size:1rem}.seat .card .card-cost{left:3px}.seat .card .card-power{right:3px}.seat .card-cost small,.seat .card-power small{font-size:.75rem}.stamp{padding:3px}.stamp-name{font-size:.75rem}.replace-hint,.replaced-label{font-size:.75rem}.detail-layout{grid-template-columns:1fr}.detail-layout>.card{width:220px}.reveal-strip{grid-template-columns:1fr}.reveal-cards .card{min-width:90px;width:calc(33.333% - 4px)}.reveal-cards .card-brief{font-size:.875rem}.reveal-cards .card-mystery{font-size:.75rem;padding:5px}.resolution-extras{grid-template-columns:1fr}.line-chip{font-size:.875rem}.order-chip{min-width:160px}.nav button{min-height:37px}.nav .music-toggle{flex-basis:100%}.line-panel>.actions{gap:7px}}
@media(prefers-reduced-motion:reduce){.pack-revealed,.secret-discovery{animation:none}.pack-back{transition:none}}
.nomotion .pack-revealed,.nomotion .secret-discovery{animation:none!important}
/* 萬象牌搭：薄演出、幽默圖卡與牌局島誌。 */
.comic-intro{padding:8px 0 20px;border-bottom:1px solid #a88b5140;margin-bottom:22px}
.comic-intro h2{font-size:clamp(24px,3vw,35px);color:var(--gold);margin:10px 0}.comic-intro>p{line-height:1.8;max-width:66ch}
.comic-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.comic-card{display:flex;flex-direction:column;overflow:hidden;padding:0;border:1px solid #b995595e;border-radius:10px;background:linear-gradient(145deg,#183c40,#0a1d29);color:#f1e8cf;text-align:left;box-shadow:0 7px 24px #0003}
.comic-known{cursor:pointer;transition:transform .2s,border-color .2s}.comic-known:hover{transform:translateY(-3px);border-color:#d9b778}.comic-known:focus-visible{outline:3px solid #78cde0;outline-offset:4px}
.comedy-art{width:100%;aspect-ratio:1;background-image:url('./assets/wanxiang-comedy-v1.png');background-size:400% 400%;background-position:var(--comic-x) var(--comic-y);background-repeat:no-repeat;background-color:#19363c}
.comic-copy{padding:17px 18px 19px}.comic-kind{font-size:11px;letter-spacing:1px;color:#d8b974}.comic-copy h3{margin:8px 0 10px;font-size:20px;font-family:var(--serif,serif);line-height:1.4;color:#fff0c7}.comic-copy p{font-size:13px;line-height:1.8;margin:0 0 15px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.comic-copy small{font-size:11px;color:#9fb9b9}
.comic-minus .comic-kind{color:#efb494}.comic-locked{align-items:center;justify-content:center;min-height:205px;padding:24px;text-align:center;border-style:dashed;border-color:#71878544;color:#87a2a1;background:radial-gradient(ellipse at center,#163132,#0a2028)}
.comic-mystery{font-size:44px;color:#b4996173;font-family:serif}.comic-locked h3{margin:8px 0;color:#adbeaf;letter-spacing:4px}.comic-locked p{font-size:12px;line-height:1.7}.comic-pages{justify-content:center;margin:26px 0 8px}
.comic-detail{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);gap:30px;align-items:start}.comic-detail>.comedy-art{border-radius:8px;box-shadow:0 10px 40px #0005;border:1px solid #dab46c77}
.comic-detail-copy blockquote{margin:18px 0;padding:20px 22px;border-left:3px solid #d6af6a;background:#193c3e88;font-size:18px;line-height:1.9;color:#f3e6c9}.comic-detail-copy h2{font-size:32px;margin:12px 0}.comic-detail-copy>p{line-height:1.85}
.wanxiang-result{padding:12px 14px;margin:0 0 18px;border-left:2px solid #b9a263;background:#193c3d55;border-radius:0 6px 6px 0}.wanxiang-result>b{display:block;color:#ecd4a0;margin-top:5px;font-size:16px}.wanxiang-result>b>small{font:12px sans-serif;color:#c4d5c6;margin-left:6px}.wanxiang-result>p{font-size:12px;line-height:1.8;margin:7px 0 10px}.wanxiang-result.minus{border-left-color:#bd8060}.wanxiang-result.plus{border-left-color:#80b99a}
.story-report-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:22px 0}.story-report-callout p{margin:6px 0 0}.story-report-callout b{font-size:18px}
.story-book{max-width:820px;margin:auto}.story-cover{padding:24px 10px 30px;text-align:center;border-bottom:1px solid #aa955361}.story-cover h1{font-size:clamp(25px,4vw,38px);line-height:1.5;margin:15px 0;color:#f2d99e}.story-cover p{max-width:65ch;margin:16px auto;line-height:1.8}
.story-chapter{padding:38px 8px 26px;border-bottom:1px solid #8a915b42}.story-chapter>h2{color:#dfbf81;font-size:28px;margin:10px 0 18px}.story-intro{color:#cfdfd1;line-height:2.05;font-size:16px}.story-turn{margin:26px 0;padding-left:20px;border-left:1px solid #c3a6674d}.story-turn h3{font-size:17px;color:#ddccab;display:flex;align-items:center;gap:12px}.story-turn>p{line-height:2;font-size:15px;color:#ebecdb}.story-turn details{color:#93aeaf;font-size:12px;line-height:1.9}.story-ending{font-size:14px;line-height:1.95;color:#b7caca;background:#18353899;padding:16px 18px;border-radius:5px}.story-finale{margin:30px 8px;font-size:17px;line-height:2;color:#edd59d}.story-copy-text{display:block;width:100%;min-height:180px;margin-top:10px;background:#0b232b;border:1px solid #baa46655;border-radius:5px;color:#d9e0d6;padding:14px;font:13px/1.7 sans-serif}
@media(max-width:850px){.comic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.comic-detail{grid-template-columns:1fr;gap:22px}.comic-detail>.comedy-art{max-width:470px;margin:auto}.story-report-callout{align-items:start;flex-direction:column}}
@media(max-width:480px){.comic-grid{gap:12px}.comic-copy{padding:12px}.comic-copy h3{font-size:16px}.comic-copy p{font-size:12px;-webkit-line-clamp:3}.comic-copy small{display:none}.comic-locked{min-height:165px;padding:16px 10px}.comic-intro h2{font-size:25px}.story-turn{padding-left:12px}.story-turn h3{flex-wrap:wrap}.story-turn>p{font-size:14px}.comic-detail-copy blockquote{font-size:16px;padding:16px}}

/* 1.4 role builder */
.builder-basic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.builder-filter{display:flex;flex-direction:column;gap:6px;font-size:.875rem;min-width:0}.builder-filter .select{width:100%;min-width:0}.builder-search{align-items:center}.builder-search .search{flex:1;min-width:160px}.builder-more{margin:0 0 20px;border-bottom:1px solid var(--line);padding:12px 0}.builder-more summary,.preset-picker summary{cursor:pointer;font-size:1rem}.preset-picker{padding:16px;margin-bottom:20px}.preset-picker .preset{display:flex;flex-direction:column;gap:10px}.preset small{font-size:.875rem;color:var(--muted)}.builder-active-pair{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px;border:1px solid var(--gold);background:#123233;margin-bottom:16px;font-size:.875rem}.builder-active-pair span{flex:1}.builder-meld{padding:14px 0;border-bottom:1px solid var(--line)}.builder-meld:last-child{border-bottom:0}.builder-meld p{margin:8px 0}.builder-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.builder-slots>button,.builder-slots>div{min-width:0;border:1px solid var(--line);border-radius:8px;background:#09252b;padding:9px;color:var(--text);text-align:left}.builder-slots small{display:block;font-size:.8125rem;color:var(--muted);margin-bottom:6px}.builder-slots b{font-size:.875rem;overflow-wrap:anywhere}.builder-slots .filled{border-color:#789678}.builder-recommendation{display:block;width:100%;padding:10px 0;background:none;border:0;border-bottom:1px solid var(--line);color:var(--text);text-align:left}.builder-recommendation small{display:block;font-size:.875rem;margin-top:5px;color:var(--muted)}.pair-card-cue{font-size:.8125rem;display:block;width:100%;padding:7px 8px;background:#193330;border:0;border-top:1px solid var(--line);color:var(--gold);text-align:left;cursor:pointer}.deck-pairings{margin-top:20px}.deck-pairings summary{font-size:.875rem;cursor:pointer}.builder-slots button:hover,.pair-card-cue:hover{background:#24473e}
@media(max-width:650px){.builder-basic{grid-template-columns:1fr;gap:9px}.builder-filter{flex-direction:row;align-items:center}.builder-filter>span{flex:0 0 90px}.builder-slots{gap:5px}.builder-slots>button,.builder-slots>div{padding:8px 6px}.builder-active-pair{align-items:flex-start}.builder-active-pair span{flex-basis:100%}.preset-list{grid-template-columns:1fr}}

/* Learning and retrospective information stays outside the live table. */
.journey-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.journey-stop{padding:18px}.journey-stop h3{margin:10px 0}.school-fold{margin:20px 0;border-top:1px solid #856a4066;padding-top:16px}.school-fold summary{cursor:pointer;font-size:1rem;color:#e5c482}.visit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.visit-card{display:grid;grid-template-columns:130px 1fr;gap:18px;padding:18px}.visit-art .card{width:100%;height:auto;min-height:210px}.visit-art .art{min-height:145px}.review-turn{padding:18px 0;border-bottom:1px solid #856a4066}.review-plan{padding:15px;margin:12px 0;background:#102c36;border:1px solid #856a4066;border-radius:12px}.review-plan summary{cursor:pointer;color:#f2d28b}.review-layout{display:grid;grid-template-columns:minmax(190px,260px) 1fr;gap:20px;margin-top:16px}.review-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.review-cell{position:relative;aspect-ratio:2/3;min-height:70px;background:#061a24;border:1px solid #856a4066;overflow:hidden}.review-cell .art{position:absolute;inset:0}.review-cell small{position:absolute;bottom:0;left:0;right:0;background:#04131ee6;text-align:center;font-size:.75rem;color:#fff}.review-cell>span:not(.art){display:block;text-align:center;padding-top:24px;color:#849aa7}.review-entry{margin:20px 0}.review-plan ol{padding-left:22px;line-height:1.8}
@media(max-width:800px){.journey-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.visit-grid{grid-template-columns:1fr}}@media(max-width:480px){.visit-card{grid-template-columns:100px minmax(0,1fr);padding:12px;gap:12px}.visit-art .card{min-height:170px}.visit-art .art{min-height:115px}.review-layout{grid-template-columns:1fr}.review-board{max-width:280px;margin:auto}.journey-stop{padding:14px}}
