:root{--ink:#40343d;--pink:#ed537c;--paper:#fffaf6;--line:#eddfdd;--muted:#917f87}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:"Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;background:var(--paper);background-image:radial-gradient(#e4d3d044 .7px,transparent .7px);background-size:8px 8px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;font-size:13px;cursor:pointer;border:1px solid var(--line);color:var(--ink);background:#fffdfb;border-radius:9px;padding:10px 14px;font-weight:700;transition:background .15s,transform .15s}button:hover{background:#ffe9ee}button:active{transform:translateY(1px)}button:focus-visible,a:focus-visible{outline:3px solid #ba669d;outline-offset:4px}button:disabled{opacity:.4;cursor:default}header{max-width:1240px;margin:auto;display:flex;align-items:center;padding:21px 30px;border-bottom:1px solid var(--line);gap:20px}.brand{text-decoration:none;color:var(--pink);font-family:Arial,sans-serif;font-size:44px;font-weight:1000;letter-spacing:-4px;line-height:1}.brand span{display:inline-block;transform:rotate(10deg)}.brand i{font-size:16px;vertical-align:top;letter-spacing:0;margin-left:8px}.brand-caption{font-size:12px;font-weight:700;line-height:1.8}.brand-caption small{display:block;font-size:9px;letter-spacing:1.8px;color:var(--muted)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.local{font-size:10px;letter-spacing:1.6px;color:var(--muted);margin-right:12px}main{max-width:1160px;margin:auto;padding:30px 20px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:10px;letter-spacing:2px;color:#b58896;font-weight:800}h1{font-size:34px;letter-spacing:-1.5px;margin:7px 0 8px;font-weight:900}h1 span{font-size:19px;color:var(--pink);display:inline-block;transform:rotate(15deg);margin-left:12px}.intro p{font-size:13px;margin:0;color:var(--muted)}.mode-switch{display:flex;background:#f1e9e6;border:1px solid #e8ddda;padding:5px;border-radius:13px;gap:5px}.mode-switch button{background:transparent;border:0;padding:12px 22px;color:#97878e}.mode-switch button.selected{background:white;color:var(--pink);box-shadow:0 3px 8px #69435210}.mode-switch span{font-size:9px;margin-left:6px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start}.play-area{background:#f6eeeb;border:1px solid #e8dad6;border-radius:20px;padding:15px 22px 17px}.game-toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.game-toolbar>span{font-size:9px;font-weight:800;letter-spacing:1.2px;color:#9a7f88}.game-toolbar i{display:inline-block;width:6px;height:6px;background:var(--pink);border-radius:50%;margin-right:6px}.game-toolbar button{padding:7px 9px;font-size:11px;background:transparent;border:0}.boards{display:flex;justify-content:center;gap:14px}.board{min-width:0;width:100%;max-width:400px}.board-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0 4px;gap:8px}.player-tag{font-size:10px;letter-spacing:1px;display:block;color:var(--pink);font-weight:800}.score{font-family:Arial,sans-serif;font-weight:800;font-size:30px;letter-spacing:-1px;display:block;line-height:1.1;margin-top:4px}.next{display:flex;align-items:center;gap:9px}.next span{font-size:9px;letter-spacing:1px;color:var(--muted);font-weight:700}.next canvas{width:42px;height:42px;background:#fffcf9;border:1px solid #eaddd6;border-radius:12px}.canvas-wrap{position:relative;border:2px solid #d8b7ae;border-top-color:#e7c6bd;border-radius:15px 15px 24px 24px;overflow:hidden;box-shadow:0 5px 0 #e7d5ce;background:#fffdf8}.field{display:block;width:100%;height:auto;touch-action:none}.controls{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:15px;color:var(--muted);font-size:10px}.controls button{padding:6px 9px;font-size:11px;border-radius:6px;box-shadow:0 2px 0 #e5d6d1;background:#fffaf6}.controls span{margin:0 4px}.play-caption{display:flex;justify-content:space-between;font-size:10px;color:#9c838a;margin-top:17px;gap:10px}.play-caption strong{color:var(--pink)}aside section{border:1px solid var(--line);border-radius:16px;background:#fffcf9}.rule-card{padding:21px 21px 18px;text-align:center}.card-eyebrow{font-size:9px;letter-spacing:1.7px;color:#b68c9a;font-weight:700}.rule-card h2{font-size:23px;letter-spacing:-1px;line-height:1.45;margin:14px 0 0}.rule-card>canvas{width:100%;height:auto}.rule-card>p{font-size:12px;line-height:1.9;color:#99858d;margin:0 0 19px}.rule-card>p b{color:var(--pink)}.combo-note{display:flex;gap:12px;text-align:left;background:#fff0f3;padding:14px;border-radius:11px}.combo-note>span{font-size:24px;color:var(--pink)}.combo-note b{font-size:12px;color:#c14c70}.combo-note p{font-size:11px;color:#a47c8a;line-height:1.7;margin:5px 0 0}.evolution{margin-top:16px;padding:18px}.section-title{display:flex;justify-content:space-between;align-items:center}.section-title h2{font-size:13px;margin:0}.section-title>span{font-size:9px;color:#b096a0;letter-spacing:1px}#evolution{display:grid;grid-template-columns:repeat(5,1fr);gap:8px 3px;margin:18px 0}#evolution div{text-align:center}#evolution canvas{width:37px;height:37px;max-width:100%;display:block;margin:auto}#evolution span{font-size:9px;color:#9a8490}.evolution p{border-top:1px dashed var(--line);padding-top:12px;font-size:10px;line-height:1.9;color:#a58c96;margin:0}.best{padding:17px 5px;display:flex;justify-content:space-between;align-items:center}.best>span{font-size:10px;letter-spacing:1px;font-weight:700;color:#a1828d}.best small{display:block;font-size:9px;letter-spacing:0;font-weight:400;margin-top:5px}.best>b{font-size:23px;color:#ba7388;font-family:Arial,sans-serif}footer{display:flex;justify-content:space-between;margin-top:25px;padding:19px 0;border-top:1px solid var(--line);color:#b69fa4;font-size:9px;letter-spacing:1px}footer b{color:var(--pink)}dialog{border:1px solid #edcdd6;border-radius:25px;padding:32px;width:min(440px,calc(100% - 30px));color:var(--ink);background:#fffaf7;text-align:center;box-shadow:0 25px 100px #603c5330}dialog::backdrop{background:#49323c38;backdrop-filter:blur(4px)}.modal-icon{color:var(--pink);font-size:35px;margin-bottom:16px}dialog h2{font-size:27px;letter-spacing:-1px;margin:12px 0}dialog p{font-size:12px;color:var(--muted);line-height:1.9}.modal-controls{margin:22px 0;background:#f7eae8;padding:14px;border-radius:12px;font-size:12px;line-height:2}.primary{background:var(--pink);color:white;width:100%;border:0;padding:16px;font-size:14px;border-radius:12px;box-shadow:0 4px 0 #c93960}.primary:hover{background:#d9456e}.primary span{float:right}.modal-foot{font-size:10px}#help-dialog{text-align:left;width:min(510px,calc(100% - 30px))}#help-dialog ol{padding-left:22px;font-size:13px;line-height:1.9;color:var(--muted)}#help-dialog li{margin-bottom:10px}.duo-layout{grid-template-columns:minmax(0,1fr) 240px}.duo-layout .play-area{padding:15px}.duo-layout .play-caption{font-size:9px}.duo-layout .controls{gap:3px}.duo-layout .controls button{padding:6px}.duo-layout .controls span{margin:0 2px}.duo-layout .rule-card{padding:18px 14px}.duo-layout .rule-card h2{font-size:20px}@media(min-width:1500px){main{max-width:1240px}.game-layout{grid-template-columns:minmax(0,1fr) 300px}.board{max-width:420px}}@media(max-width:900px){.game-layout,.duo-layout{grid-template-columns:minmax(0,1fr) 220px;gap:15px}.play-area{padding:14px}.local{display:none}.rule-card{padding:18px 12px}.rule-card h2{font-size:20px}.game-toolbar>span{font-size:8px}.duo-layout{grid-template-columns:1fr}.duo-layout aside{display:none}}@media(max-width:650px){header{padding:16px;gap:12px}.brand{font-size:35px}.brand-caption{display:none}.header-actions{gap:5px}.header-actions button{font-size:11px;padding:8px}main{padding:24px 12px 0}.intro{align-items:start;gap:18px;flex-direction:column;margin-bottom:18px}h1{font-size:29px}.intro p{font-size:12px}.mode-switch{width:100%}.mode-switch button{flex:1;padding:10px}.game-layout{grid-template-columns:1fr}.play-area{padding:12px}.game-layout aside{display:grid;grid-template-columns:1fr 1fr;gap:10px}.rule-card{padding:18px 10px}.rule-card h2{font-size:18px}.card-eyebrow{font-size:8px;letter-spacing:.5px}.evolution{margin:0;padding:15px 10px}.section-title{gap:5px}.section-title h2{font-size:11px}.section-title>span{font-size:8px}.best{grid-column:1/-1}.duo-layout aside{display:none}.duo-layout .boards{gap:9px}.duo-layout .play-area{padding:10px 7px}.duo-layout .next{gap:4px}.duo-layout .next span{font-size:8px}.duo-layout .next canvas{width:30px;height:30px}.duo-layout .score{font-size:24px}.duo-layout .controls{flex-wrap:wrap;font-size:9px}.duo-layout .controls span{display:none}.game-toolbar>span{font-size:8px;letter-spacing:.5px}.game-toolbar button{font-size:10px;padding:6px}.play-caption{font-size:9px}.duo-layout .play-caption{flex-direction:column;align-items:center;gap:4px}footer span:last-child{display:none}footer{font-size:8px;letter-spacing:0}.combo-note{padding:9px;gap:6px}.combo-note p{font-size:10px}.combo-note b{font-size:11px}}
:root{color-scheme:light}
@media(min-width:651px){.board{max-width:min(400px,max(220px,calc((100dvh - 345px)*.625)))}.intro{margin-bottom:20px}main{padding-top:24px}.play-area{padding-top:10px}.game-toolbar{margin-bottom:8px}.board-head{margin-bottom:8px}.play-caption{margin-top:12px}.controls{margin-top:12px}}
#restart{color:#cf4e75;background:#fff3f5}
.battle-guide{display:none}
/* Prevent iOS long-press selection/callouts during play, without blocking scrolling. */
#game-screen,#game-screen *,#online-screen,#online-screen *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#game-screen img,#game-screen canvas,#game-screen a,#online-screen canvas{-webkit-user-drag:none}
.controls button{touch-action:none;user-select:none;-webkit-user-select:none;min-width:44px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.controls button kbd{font:10px monospace;color:#8b7b70}.touch-arrow{font-size:18px}.controls button strong{font-size:12px}.item-hud>button{touch-action:manipulation;min-height:48px}
@media(pointer:coarse),(max-width:650px){.controls,.duo-layout .controls{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:6px}.controls>span,.controls button kbd,.item-hud kbd{display:none}.controls button,.duo-layout .controls button{min-height:52px;padding:8px 3px;font-size:18px}.controls button[data-drop]{background:#e6a9ad;color:#513f42}.board:nth-child(2) .controls button[data-drop]{background:#b6ccd8}.controls button strong{font-size:13px}.header-actions button,.lobby-tools button{min-height:44px}.game-layout,.duo-layout{grid-template-columns:1fr}.game-layout aside{display:none}.board{max-width:min(400px,calc((100dvh - 300px)*.625))}.duo-layout .board{max-width:360px}.intro{margin-bottom:12px}.intro p{display:none}.play-caption{line-height:1.5}.item-hud>button{min-height:48px}.item-hud{margin-bottom:8px}main{padding-bottom:env(safe-area-inset-bottom,12px)}}
.item-queue{display:grid;grid-template-columns:1fr 1fr;gap:6px;list-style:none;margin:0 0 9px;padding:0}.item-queue li{display:flex;flex-direction:column;align-items:center;gap:3px;border:1px dashed #c7b9a4;border-radius:9px;background:#fffaf0;padding:7px 3px;font-size:11px}.item-queue li.filled:first-child{border:2px solid #bd8389;background:#fff0e9}.item-queue .skill-order{font-size:9px;color:#927b68}.item-queue .skill-icon{font-size:24px;line-height:28px}.item-queue .empty{color:#ada18f}
.lobby-tools{display:flex;gap:8px}
#settings-dialog{width:min(470px,calc(100% - 28px));padding:25px;text-align:left;border:2px dashed #a69b88}
.settings-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.settings-heading h2{margin:7px 0 18px}.settings-heading>button{align-self:flex-start;padding:7px 11px;background:#f5eddf}
.audio-row{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:12px;align-items:center;padding:18px 0;border-top:1px dashed #cfc1ab}.audio-label{grid-column:1/-1}.audio-label label{font-size:16px;font-weight:800}.audio-label small{display:block;margin-top:5px;color:#93836e;font-size:12px}.audio-row .mute-icon{font-size:20px;padding:7px;border-radius:10px;background:#eee5d6}.audio-row input{width:100%;accent-color:#cb7e87;cursor:pointer;min-height:32px}.audio-row output{font-size:13px;text-align:right;color:#897057;font-variant-numeric:tabular-nums}.sound-tests{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}.sound-tests span{font-size:12px;color:#988570}.sound-tests button{font-size:12px;padding:8px 12px}.settings-save{font-size:10px!important;margin-bottom:0}#audio-note{font-size:12px;margin-top:20px}
.mode-card.lobby-selected{outline:3px dashed #655a49;outline-offset:5px}
.mode-card.lobby-selected>b{color:#584d40;transform:scale(1.2)}
@media(min-width:651px) and (max-height:820px){header{padding-top:12px;padding-bottom:12px}.brand{font-size:37px}main{padding-top:16px}.intro{margin-bottom:16px}h1{font-size:28px;margin:5px 0}.intro .eyebrow{font-size:9px}.intro p{font-size:12px}.game-toolbar{margin-bottom:5px}.score{font-size:26px}.board-head{margin-bottom:6px}.board{max-width:min(400px,max(180px,calc((100dvh - 330px)*.625)))}}

/* 뽀뽀쪽: an illustrated title lobby and a separate play screen. */
[hidden]{display:none!important}
:root{--ink:#684c3c;--pink:#dc6683;--paper:#eff8f5;--line:#ddc69e;--muted:#857566}
body{background:#edf6f3;background-image:radial-gradient(#b3d6d04a .8px,transparent .8px);background-size:12px 12px}
body.is-lobby{background:#72b6c6}
#lobby{min-height:100dvh;display:flex;flex-direction:column;background:#72b6c6;position:relative;isolation:isolate}
.lobby-top{position:absolute;left:0;right:0;top:0;z-index:2;padding:18px 26px;display:flex;justify-content:space-between;align-items:center;color:#fff5df;text-shadow:0 2px 3px #3a6c7c60}
.lobby-top>span{font-size:12px;font-weight:800;letter-spacing:2px}.lobby-top button{background:#fff6e6e8;border:2px solid #cfa96d;color:#745540;border-radius:20px;box-shadow:0 3px 0 #8d6f4e40}
.lobby-art{height:calc(100dvh - 190px);min-height:340px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center}
.lobby-art::before{content:"";position:absolute;inset:-40px;background:none;filter:blur(28px);opacity:.65;z-index:-1}
.lobby-art img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 20px #294c6640)}
.lobby-menu{position:relative;min-height:190px;padding:15px 20px 14px;text-align:center;background:linear-gradient(#fff5dc,#f5e2b9);border-top:4px solid #cfa461;box-shadow:0 -6px 0 #ffefc38c,0 -16px 30px #214f5d25}
.lobby-invite{margin:0 0 12px;color:#885e43;font-size:16px;font-weight:800;letter-spacing:.3px}
.lobby-modes{display:flex;justify-content:center;gap:22px;max-width:790px;margin:auto}
.mode-card{position:relative;display:flex;align-items:center;text-align:left;gap:10px;width:350px;min-height:87px;border-radius:24px;padding:9px 19px 9px 8px;border:3px solid #b7884e;box-shadow:inset 0 3px 0 #fff6eccc,0 6px 0 #9c7246,0 10px 16px #97714625;transition:transform .15s,box-shadow .15s;flex-shrink:1}
.solo-card{background:linear-gradient(#ffb9c7,#f295ac)}.duo-card{background:linear-gradient(#b8e4cf,#8dcebd)}
.solo-card:hover{background:linear-gradient(#ffcad5,#f5a0b6)}.duo-card:hover{background:linear-gradient(#cdf0dc,#a5dccc)}.mode-card:hover{transform:translateY(-3px);box-shadow:inset 0 3px 0 #fff6eccc,0 9px 0 #9c7246,0 13px 20px #97714625}.mode-card:active{transform:translateY(4px);box-shadow:inset 0 3px 0 #fff6eccc,0 2px 0 #9c7246}
.mode-card:disabled{opacity:.5;transform:none}.mode-card strong{display:block;font-size:25px;letter-spacing:-1px;color:#734537;text-shadow:0 1px 0 #fff0d7}.mode-card small{display:block;font-size:11px;font-weight:600;margin-top:5px;color:#875b50}.duo-card small{color:#4c7563}.mode-card>b{margin-left:auto;color:#fff4d7;text-shadow:0 2px 0 #b5805b;font-size:19px}.mode-portrait{width:70px;height:70px;object-fit:contain}.duo-card .mode-portrait{width:90px}
#asset-status{font-size:11px;color:#9b7c61;margin:15px 0 0;line-height:1.6;min-height:18px}
#game-screen header{border-color:#c6b58f;background:#fff7e8b3;border-radius:0 0 20px 20px}
#game-screen .brand{font-family:"Malgun Gothic",system-ui,sans-serif;font-size:30px;letter-spacing:-2px;font-weight:1000;text-shadow:0 2px 0 #fff2d0;white-space:nowrap}#game-screen .brand span{color:#5ea991;transform:none}#game-screen .brand i{font-size:11px}
.brand-caption small{letter-spacing:2px;color:#a68a66}.header-actions button{background:#fff9ec;border-color:#dfcba8}.header-actions button:hover{background:#fff0cf}.header-actions #back-lobby{background:#d3e9dc;color:#4c7868}
.eyebrow,.card-eyebrow{color:#8c9c8a}.mode-badge{font-size:11px;letter-spacing:1px;border:1px solid #c9b68a;background:#fff5dd;color:#8c7252;padding:10px 15px;border-radius:30px;font-weight:800}
.play-area{background:#dbeae3;border:2px solid #d2b778;box-shadow:inset 0 2px 0 #fff9e9;border-radius:24px}
.canvas-wrap{border:3px solid #bf995a;background:#fff8e9;box-shadow:0 5px 0 #977547,0 8px 13px #62472814;border-radius:16px 16px 24px 24px}
.board-head{padding:0 5px}.player-tag{color:#b46074}.board:nth-child(2) .player-tag{color:#4d998a}.board:nth-child(2) .canvas-wrap{border-color:#8eae88;box-shadow:0 5px 0 #658c77,0 8px 13px #62472814}
.next canvas{border-color:#d8c398;background:#fff4dc}.score{color:#775c41}.game-toolbar>span{color:#7d8777;font-size:11px;letter-spacing:.3px}.game-toolbar button{font-size:12px}.controls{font-size:11px}.controls button{border-color:#d7c4a4;background:#fff8e9;box-shadow:0 2px 0 #c9b48e}.play-caption{color:#8c846c}.play-caption strong{color:#b55d70}
aside section{background:#fffbef;border:1px solid #dbc9a1;box-shadow:0 3px 0 #d9c59d40}.rule-card h2{color:#6e5340;font-size:21px}.rule-card>p{font-size:12px;color:#8a7965}.rule-card>canvas{max-height:105px;object-fit:contain}.combo-note{background:#fce8df}.combo-note p{font-size:12px;color:#9f7462}.combo-note b{font-size:13px;color:#ba6b66}
#evolution{grid-template-columns:repeat(3,1fr);gap:10px 6px;margin:14px 0}#evolution canvas{width:48px;height:48px}#evolution span{font-size:11px;color:#8a765d}.evolution p{font-size:11px;color:#96816b}.section-title h2{font-size:14px}.best>span{color:#9a815c}.best>b{color:#a4794a}.best small{font-size:10px}.best{padding:13px 6px}
dialog{background:#fff7e6;border:3px solid #c5a366;box-shadow:0 6px 0 #97734e,0 25px 100px #33565840}dialog::backdrop{background:#28556866}.primary{background:#df7e98;box-shadow:0 4px 0 #aa526a}.primary:hover{background:#d96c89}.secondary{display:block;width:100%;margin-top:15px;background:#dfebdc;color:#61866b;border-color:#b8cda7}.modal-controls{background:#f6e7ce}
@media(max-width:650px){.lobby-art{height:auto;min-height:0;aspect-ratio:1024/559;margin-top:54px;flex:1}.lobby-top{padding:12px 15px}.lobby-top>span{font-size:10px;letter-spacing:1px}.lobby-top button{font-size:11px;padding:7px 12px}.lobby-menu{padding:20px 18px 23px;min-height:0}.lobby-invite{font-size:16px;margin-bottom:16px}.lobby-modes{flex-direction:column;gap:16px;align-items:center}.mode-card{width:100%;max-width:370px;min-height:84px}.mode-card strong{font-size:24px}.mode-card small{font-size:12px}.lobby-art img{height:auto;max-height:calc(100dvh - 320px);min-height:200px}#game-screen .brand{font-size:25px}.header-actions button{font-size:10px;padding:8px}.intro{flex-direction:row;align-items:center}.mode-badge{font-size:9px;padding:8px}.intro h1{font-size:24px}.intro p{max-width:240px;line-height:1.6;font-size:11px}.game-toolbar>span{font-size:9px}.game-toolbar button{font-size:10px}.game-layout aside{display:block}.evolution{margin-top:12px}#evolution{grid-template-columns:repeat(5,1fr)}.rule-card{display:none}.duo-layout aside{display:none}.duo-layout .board{min-width:0}.mode-card:focus-visible{outline-color:#fff6dc}}
@media(prefers-reduced-motion:reduce){button{transition:none!important}}
@media(min-width:651px){
  #lobby{justify-content:center}
  #lobby::before{content:"";position:absolute;inset:0;background:none;filter:blur(45px);opacity:.32;z-index:-1}
  .lobby-art{height:min(calc(100dvh - 260px),calc(100vw * .546));min-height:280px;max-width:1180px;width:100%;margin:50px auto 0;flex:none}
  .lobby-art::before{display:none}
  .lobby-menu{width:min(840px,calc(100% - 40px));margin:0 auto 28px;border:3px solid #cfa461;border-radius:26px;min-height:182px;box-shadow:inset 0 3px 0 #fffce9,0 6px 0 #9a7a4e,0 12px 35px #234e5c30}
}

/* Version 3: awkward little plush friends, paper, and imperfect stitching. */
:root{--ink:#514e47;--pink:#c96976;--paper:#f6f2e9;--line:#c6bcaa;--muted:#827d70}
body,body.is-lobby,#lobby{background:#f6f2e9}
body{background-image:radial-gradient(#88795b19 .7px,transparent .7px);background-size:7px 7px}
#lobby::before,.lobby-art::before{display:none!important}
.lobby-top{color:#70695c;text-shadow:none}.lobby-top button{border:2px dashed #a59b87;background:#faf7ef;box-shadow:2px 3px 0 #b4ab992f}
.lobby-art img{filter:none;mix-blend-mode:multiply}.lobby-menu{background:#f9f5ea;border:2px dashed #a49c8a;box-shadow:3px 5px 0 #b9af9b60;border-radius:24px 19px 23px 18px}
.lobby-invite{color:#767164;font-size:15px}.mode-card{border:2px solid #756d60;border-radius:22px 19px 25px 20px;box-shadow:inset 0 0 0 4px #fff7e535,3px 5px 0 #a59a8970}
.solo-card,.solo-card:hover{background:#e4a3a6}.duo-card,.duo-card:hover{background:#a4bbc8}.mode-card strong{color:#4d4841;text-shadow:none}.mode-card small,.duo-card small{color:#655f55}.mode-card>b{color:#faf5e8;text-shadow:none}.mode-card:hover{box-shadow:inset 0 0 0 4px #fff7e535,3px 7px 0 #a59a8970}.mode-card:active{box-shadow:inset 0 0 0 4px #fff7e535,1px 2px 0 #a59a8970}
#game-screen header{background:#f9f5e9;border-bottom:2px dashed #bfb4a0;border-radius:0}.brand span{color:#718fa2!important}#game-screen .brand{color:#cb7e87;transform:rotate(-2deg)}
.play-area{background:#e8e5da;border:2px dashed #aaa18f;box-shadow:none}.canvas-wrap{border-color:#a29884;box-shadow:0 4px 0 #aba18c;border-radius:18px 15px 22px 18px}.board:nth-child(2) .canvas-wrap{border-color:#8e9ca5;box-shadow:0 4px 0 #8b98a0}
aside section{border-color:#c9c0ae;box-shadow:2px 3px 0 #cabfa62c;background:#faf7ed}.rule-card h2{color:#655e53}.combo-note{background:#ece4d8}.combo-note b{color:#a3706b}.rule-card>canvas{max-height:115px}.next canvas{background:#f8f5eb;border-color:#c4bca9}
.duo-layout .battle-guide{display:block;margin-bottom:14px;padding:14px;background:#f3e9dc}.battle-guide h2{font-size:13px;margin:0 0 8px}.battle-guide p,.battle-guide li{font-size:11px;line-height:1.8}.battle-guide p{margin:0}.battle-guide ul{padding:0;list-style:none;margin:8px 0 0;color:#817360}
.item-hud{margin-top:12px;padding:9px;background:#f6f1e5;border:1px dashed #aba28f;border-radius:11px}.item-meta{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#8a8070;margin-bottom:6px}.item-hud>button{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 5px;border:1px solid #b98d91;background:#ecd1d0;color:#745052;font-size:12px;box-shadow:0 2px 0 #c1a5a1}.board:nth-child(2) .item-hud>button{background:#d2dfe5;border-color:#94a9b4;color:#536e7c}.item-hud kbd{font:700 12px monospace;padding:2px 5px;background:#fff9ec;border-radius:4px;border:1px solid #bcae95}.item-hud b{font-size:12px}.item-hud small{display:block;text-align:center;min-height:15px;font-size:10px;line-height:1.5;margin-top:7px;color:#9d7468}.under-attack .item-hud{border-color:#d77976;background:#f7e4dc}.under-attack .canvas-wrap{outline:2px dashed #d48c7f;outline-offset:3px}
@media(min-width:651px){.duo-layout .board{max-width:min(400px,max(180px,calc((100dvh - 430px)*.625)))}}
@media(max-width:650px){.lobby-invite{font-size:13px}.mode-card small{font-size:11px}.item-hud{padding:7px 5px}.item-meta{font-size:9px}.item-hud b{font-size:10px}.item-hud>button{gap:4px}.item-hud small{font-size:9px}.duo-layout .controls{margin-top:10px}.duo-layout .item-hud{margin-top:10px}}
@media(pointer:coarse),(max-width:650px){.game-layout aside{display:none}.game-layout .board{max-width:min(400px,max(190px,calc((100dvh - 400px)*.625)))}.game-layout:not(.duo-layout) .board{max-width:min(400px,max(190px,calc((100dvh - 400px)*.625)))}.duo-layout .board{max-width:360px}.controls .touch-arrow{display:block;margin:0}.game-layout .item-hud>button{min-height:48px}.game-layout .controls button{min-height:52px}}
/* Large playfields on touch devices: prioritize the board over decorative content. */
@media(pointer:coarse),(max-width:650px){
#game-screen header{padding:6px 10px;gap:8px}#game-screen main{padding:8px 6px 20px}#game-screen .intro{display:none}.game-layout .play-area{padding:8px 6px}.game-layout .board,.game-layout:not(.duo-layout) .board{width:100%;max-width:520px}.game-toolbar{margin-bottom:6px}.board-head{margin-bottom:5px}.score{font-size:24px}.controls{margin-top:9px}.play-caption{margin-top:9px}.game-layout aside, #game-screen footer{display:none}.game-layout .controls button{min-height:54px}.game-layout .item-hud>button{min-height:50px}.duo-layout .boards{gap:12px}.duo-layout .board{max-width:none}.header-actions{gap:4px}
}
@media(max-width:650px) and (orientation:portrait){.duo-layout .boards{flex-direction:column;align-items:center}.duo-layout .board{max-width:520px}.duo-layout .board+.board{border-top:3px dashed #a4bac5;padding-top:14px}.duo-layout .controls{grid-template-columns:1fr 1fr 1.5fr}.duo-layout .item-hud b{font-size:13px}}
.network-dialog{width:min(520px,calc(100% - 24px));padding:24px}.duel-choice{display:block;width:100%;padding:20px 14px;margin:12px 0;border:2px solid #847861;background:#f0dfbe;text-align:left}.duel-choice b{display:block;font-size:21px;color:#3b352b}.duel-choice span{display:block;font-size:13px;line-height:1.6;margin-top:8px;color:#655748}.online-choice{background:#b9d6df;border-color:#5a8795}.network-dialog button{min-height:48px}.network-dialog label{display:block;text-align:left;font-weight:bold}.join-row{display:flex;gap:8px;margin-top:8px}.join-row input{min-width:0;flex:1;font:700 21px monospace;padding:12px;border:2px solid #9e8c76;border-radius:8px;text-transform:uppercase}.join-row button{background:#bad3dc}#room-code{display:block;font:800 30px monospace;letter-spacing:3px;margin:18px 0;color:#633e58}#room-status{color:#493c32;font-size:14px;font-weight:700}.network-hint{font-size:11px!important}#online-screen header{max-width:1000px;padding:10px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}#online-screen header button{min-height:44px}#online-state{text-align:center;font-size:13px;padding:7px;color:#58796c}.online-layout{display:grid;grid-template-columns:minmax(0,520px) minmax(72px,120px);justify-content:center;gap:14px;max-width:720px;padding:5px 10px;margin:auto}.online-board-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px;font-size:18px}.my-online-board{min-width:0}.my-online-board>canvas{display:block;width:100%;height:auto;border:3px solid #a59784;border-radius:15px;background:#fffaf5;touch-action:none}.opponent-online-board{display:block;min-width:0;align-self:start;background:#eee8dd;padding:6px;border-radius:9px;text-align:center}.opponent-online-board strong{display:block;font-size:20px}.opponent-online-board canvas{display:block;width:100%;height:auto;border:2px solid #8da5ae;border-radius:7px}.opponent-online-board small{font-size:10px}.online-controls{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:7px;margin-top:10px}.online-controls button{min-height:54px;font-size:20px;touch-action:none;user-select:none}.online-controls button:last-child{font-size:14px;background:#e4a6ae}#online-items{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0;font-size:12px}#online-items>div{border:1px dashed #b6a389;border-radius:8px;padding:10px 4px;text-align:center;background:#fff4df}#online-attack{width:100%;min-height:50px;background:#bed5df;font-size:15px}#online-effects{min-height:18px;font-size:12px;color:#b14761}#online-notice{text-align:center;font-size:13px;padding:0 10px}#online-result{position:fixed;inset:25% 15px auto;max-width:500px;margin:auto;background:#fff2de;border:3px solid #a67582;box-shadow:0 0 0 100vmax #35263288;padding:25px;text-align:center;border-radius:18px;z-index:10}#online-result h2{font-size:21px}
@media(max-width:650px){.online-layout{grid-template-columns:minmax(0,1fr) 66px;gap:7px;padding:4px 6px}.opponent-online-board{padding:3px}.online-board-head{font-size:15px}.online-controls{gap:5px}.online-controls button{padding:8px 4px}#online-screen header{font-size:13px}#online-screen header button{padding:7px;font-size:11px}.network-dialog h2{font-size:23px}.duel-choice b{font-size:20px}}
