/* Pastel paper v1 — source of visual tokens; docs/ART_DIRECTION.md is mandatory. */
:root{--paper:#fff8ec;--card:#fffdf6;--ink:#5b4b4b;--muted:#94808a;--green:#9c6778;--sage:#e8edd6;--pink:#f8d7dc;--line:#e6d8cb;--wood:#ead0a4;--danger:#b45e6c;--blue:#dcecf1;--butter:#fae6ad;--rose:#b3788a}
html{background:#e9d7d5}body{background:#e9d7d5;color:var(--ink)}
.app{background-color:var(--paper);background-image:radial-gradient(#b99b8122 .55px,transparent .8px),radial-gradient(#ddadba19 .7px,transparent 1px);background-position:0 0,7px 10px;background-size:15px 19px,23px 29px;box-shadow:0 0 65px #765d5b0f}
.art-sprite{overflow:hidden;isolation:isolate}.art-sprite>svg{width:92%!important;height:92%!important;max-height:none!important;filter:none!important;transform:none!important;opacity:1!important;margin:0!important}
.brand{color:#76525c}.brand-mark{background:var(--pink);color:#885f71;border-radius:12px 15px 11px 14px}
.icon-button{border-color:#e0cbd0;color:#937683;background:#fffdf678}
.primary,.game .end-turn{background:#9c6778;color:#fffdf6;box-shadow:0 3px 0 #78505f20;border:1px solid #8e5b6c}
button:focus-visible{outline-color:#ad7186}
.mode-switch{background:#f2e3df;border:1px solid #e9d7d0}.mode-switch button{color:#9a8188}.mode-switch button.active{background:#fffdf6;color:#936174;box-shadow:0 2px 0 #d9b9c049}
.store-card{background:#f8e7bb;border:1px solid #e4cf9f;border-radius:20px 23px 19px 22px}
.store-top .chapter,.store-subtitle,.stock-note,.level-facts,.goal-caption{color:#998165}.text-button{color:#946b69;border-color:#c8a99a}.store-card h2{color:#775e54}
.versus-card{background:#e6eef2;border-color:#c5d8df}.versus-card h2{color:#607b88}.pvp-rule,.versus-card .stock-note{color:#85909a}
.play-type button{color:#8a8190;background:#fffdf6b5}.play-type button.active{background:#9b7889;color:#fffdf6}
.effect-pill{color:#75845c;background:#edf1da;border:1px solid #d8dfc2}.effect-pill.negative{color:#aa7881;background:#f5e0e4;border-color:#e9c8cf}
.section-line h3{color:#765d64}.section-line span{color:#a38b92}
.characters{gap:10px 8px}.char-button{background:#fffdf6;border-color:#e4d0c9;border-radius:16px 13px 17px 14px;padding:7px 1px 8px}
.char-button:nth-child(4n+1){background:#f8e5e7}.char-button:nth-child(4n+2){background:#e8f0f3}.char-button:nth-child(4n+3){background:#fbefc8}.char-button:nth-child(4n){background:#edf0df}
.char-button.selected{background:#fff9ef;border:2px solid #b47c91;box-shadow:0 3px 0 #dfbdc5}.char-button .art-characters{width:66px;height:66px}.char-button .char-name{font-size:11px;color:#806771}.selected-dot{background:#b47c91;width:5px;height:5px}
.character-detail,.roster-card{background:#fffdf6;border-color:#e7d6cc;border-radius:16px}.ability-row{color:#917c81}.ability-row b{color:#7f6770}.ability-tag{background:#e5edf0;color:#7d92a0}.ability-tag.active-tag{background:#f7e0e6;color:#a3788b}
.sub-actions button{color:#a68a92}.bottom-dock{background:linear-gradient(transparent,#fff8ec 20%)}
.back-button,.tiny-button,.account-entry{background:#f5e5e7;border-color:#e6cdd4;color:#987181}.game .tiny-button{background:#fffaf3}.game-kicker{color:#a58c95}
.game .game-summary{background:#fffdf6;border-color:#e8d4cf;border-radius:16px;padding:5px 9px;gap:9px;min-height:62px}
.game .player-avatar{width:52px;height:52px;flex:none;background:#f9e5e8;border:1px solid #eed2d9;border-radius:15px 12px 16px 12px}
.game .player-avatar>.art-characters{width:51px;height:51px}.player-info strong{color:#7b5d68}.player-info p,.timer span{color:#a68a94}.timer strong{color:#a36e82}.timer.urgent strong{color:#b45e6c}
.timer-bar{background:#f2e0df}.timer-bar div{background:#d7a5b6}.step-pips i{background:#eddae0}.step-pips i.full{background:#be91a3}.status-tags{color:#9e7f8c}.status-tags span{background:#f8e8ed}
.game .goal-chip{background:#ebf0df;border:1px solid #dae1c9}.game .goal-chip:nth-child(2){background:#e7eff3;border-color:#d0dfe4}.goal-chip .goal-label{color:#899381}.goal-chip.done{background:#dceacb}.goal-chip.done .goal-number{color:#6c8858}
.game .opponent-bar{background:#e8eff4;color:#7f8b9b;border:1px solid #d4e0e7;padding:2px 7px;min-height:36px}.game .opponent-bar .art-characters{width:32px;height:32px}
.game .shop-board{background:#f6e6c9;border:1px solid #d9bc9d;border-radius:15px 18px 13px 16px}
.awning{background:repeating-linear-gradient(90deg,#c5dae1 0 28px,#fff6e4 28px 56px);border-bottom-color:#ecd2c3}.board-label{color:#aa8b71}
.game .shelf{background:#fff5e4;border-radius:9px 7px 4px 4px;border-bottom-color:#ddbd91;box-shadow:inset 0 0 0 1px #e7d1b5}.game .shelf-depth{color:#9c7956}.game .shelf-id{color:#fff9eb}
.slot.empty:after{border-color:#d9bd99;background:#f7ebd447}.slot.selected{background:#f7dce2;box-shadow:inset 0 0 0 2px #c18b9e}.slot.hinted{background:#e0ebd0;box-shadow:inset 0 0 0 1.5px #9dac80}
.game .slot>.art-goods{filter:none}.rear-peek>.art-goods{opacity:.63;filter:saturate(.8)}.slot.locked{background:#d6e9ee99}.cover{background:repeating-linear-gradient(90deg,#d2bed3 0 16px,#dfcfe0 16px 32px);color:#fffaf5;text-shadow:0 1px 0 #9c859e50}.cover small{background:#a289a65c}
.board-help{color:#ae939c}.board-help.active{color:#a66c82}
.game .game-skill{background:#f9e5e8;border:1px solid #e7c6d0;border-radius:12px 14px 11px 13px}.game .game-skill>.art-characters{width:34px;height:34px}.game .skill-label strong{color:#95697b}.skill-label span{color:#ae8c9a}.energy-dots i{background:#e8cdd6}.energy-dots i.full{background:#b98297}
.game .item-button{background:#fffdf6;border:1px solid #e4cec6;min-height:43px;gap:4px;padding:3px}.game .item-button:nth-child(1){background:#f9e9ec}.game .item-button:nth-child(2){background:#eaf0e1}.game .item-button:nth-child(3){background:#fcf0d0}.game .item-button>.art-items{width:32px;height:32px}.item-button span{color:#987b85}.item-button b{background:#ffffffb5;color:#a1848b}
.modal-overlay{background:#8e747b52}.modal{background:var(--paper);border-color:#fdfaf5;box-shadow:0 14px 55px #705b6925}.modal p{color:#9a838b}.modal h2,.modal h3{color:#81636f}.modal .close{background:#f5e3e7}.modal .secondary{color:#a18191}.rules-step b{background:#f8e4b6;color:#a78d67}.rule-demo{background:#fff1d6;border-color:#ddbf97}
.level-option{background:#fffdf6;border-color:#e5d7ce}.level-option.selected{background:#f5e4e9;border-color:#c69cab}.level-option .num{color:#ba9fac}.level-option small{color:#a68f99}.level-option .stars,.result-stars{color:#c6a45e}.chapter-tabs button.active{background:#b48295;color:#fffaf6}
.roster-head p{color:#a58c96}.stat-tile{background:#f1e5e8}.stat-tile strong,.result-stats strong{color:#a9798c}.stat-tile span,.result-stats span{color:#b397a0}.empty-record{border-color:#e5cad3}.ready-screen .ready-label{color:#b497a1}.ready-goals div{background:#f8e8d0}.ready-goals strong{color:#ae8e6c}
.rank-card{background:#fff7e7;border-color:#e7d4b4;color:#a4875d}.rank-summary{background:#f8ead7}.rank-summary>span{color:#a08058}.rank-summary p{color:#a18d75}.rank-ladder>button{background:#f3e8df;border-color:#e8d8ca}.rank-ladder>button.current{background:#f3e0e6;border-color:#c99aab}.rank-trophy{filter:saturate(.7) drop-shadow(0 2px 1px #b0927330)}.rank-result{background:#f6e6d5}.rank-result>strong{color:#a3835e}
.match-panel h1{color:#946f82}.match-panel p,.connection-status{color:#a28c99}.match-avatar{background:#f4e4e9}.room-input{background:#fffdf6;border-color:#dcc6cd;color:#a67c8c}.room-code{color:#a77b8e}.toast{background:#806570ed;color:#fffaf1}
body>.account-overlay{background:#8e747b52}.account-overlay .account-panel{background:var(--paper);color:var(--ink);border-color:#fffdf6;box-shadow:0 14px 55px #705b6925}.account-overlay .account-panel p{color:#9a838b}.account-overlay .account-panel button{background:#f3e3e8;border-color:#e5cbd4;color:#966e80}.account-overlay .account-panel .account-primary,.account-overlay .account-panel .account-tabs .selected{background:#9c6778;border-color:#8e5b6c;color:#fffdf6}.account-overlay .account-panel input{background:#fffdf6;color:#785d6b;border-color:#dec5cf}.account-overlay .account-panel input:focus{outline-color:#b9879c}.account-overlay .account-status{background:#f4e7e9}.account-overlay .account-game,.account-overlay .account-guest{border-color:#e7d5d8}.account-overlay .account-panel .account-error{color:#b45e6c}
@keyframes gentle{to{box-shadow:inset 0 0 0 2px #c18b9e,0 0 9px #ecc2cf60}}
@media(max-width:374px){.char-button .art-characters{width:54px;height:54px}.characters{gap:8px 6px}.game .item-button{gap:3px}.game .item-button>.art-items{width:28px;height:28px}}
@media(max-height:700px){.game .game-summary{min-height:49px;padding:3px 7px;gap:7px}.game .player-avatar{width:41px;height:41px;border-radius:12px}.game .player-avatar>.art-characters{width:40px;height:40px}.game .opponent-bar{min-height:27px;padding:0 5px}.game .opponent-bar .art-characters{width:26px;height:26px}.game .game-skill>.art-characters{width:30px;height:30px}.game .item-button{min-height:38px}.game .item-button>.art-items{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important}}

.item-showcase{display:grid;place-items:center;margin:0 auto 12px;width:90px;height:84px;background:#f9e9dc;border:1px solid #ebd7c5;border-radius:21px 17px 22px 18px}.item-showcase>.art-items{width:76px;height:76px}
@media(max-height:700px){.item-showcase{width:70px;height:62px;margin-bottom:9px}.item-showcase>.art-items{width:58px;height:58px}}
@media(max-width:374px){.app:not(.game) .brand{font-size:15px;letter-spacing:0;white-space:nowrap;gap:6px}.app:not(.game) .brand-mark{padding:7px}.app:not(.game) .top-actions{gap:5px}.app:not(.game) .icon-button{width:32px;height:32px}.app:not(.game) .account-entry{max-width:80px;padding:6px;font-size:10px}}

/* Ice hints use outlines within the existing shelf space, never extra HUD rows. */
.game .shelf.ice-neighbour{box-shadow:inset 0 0 0 2px #91b7c5;background:#edf5f3}.game .shelf.ice-neighbour .shelf-id{font-weight:800;color:#527b8b}.game .slot.locked{box-shadow:inset 0 0 0 1.5px #9bbfcf;background:#d9edf0a6}
