:root{color-scheme:dark;--ink:#fff8f2;--violet:#8e67ff;--pink:#ff82bf;--gold:#ffd47d;--cyan:#7ee8ff;--glass:rgba(23,15,52,.72)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:#100b25;font-family:Inter,"Pretendard Variable","Noto Sans KR",system-ui,sans-serif;color:var(--ink);overflow:hidden}
button{font:inherit;color:inherit;cursor:pointer}.game{position:relative;width:100%;height:100dvh;min-height:560px;overflow:hidden;background:#17112f url("./assets/dalmuteam-atelier-bg.webp") center 42%/cover no-repeat;isolation:isolate}
.game::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,7,32,.08),rgba(13,8,34,.15) 38%,rgba(10,6,29,.65))}
.ambient{position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 45%,transparent 20%,rgba(11,6,31,.44) 92%);pointer-events:none}
.screen{position:absolute;inset:0;display:none;flex-direction:column;align-items:center}.screen.is-active{display:flex}.glass{border:1px solid rgba(255,255,255,.18);background:linear-gradient(145deg,rgba(35,25,71,.82),rgba(17,11,46,.78));box-shadow:0 18px 55px rgba(5,2,25,.5),inset 0 1px rgba(255,255,255,.15);backdrop-filter:blur(14px)}
.start-screen{justify-content:flex-end;padding:clamp(18px,4vh,42px) 20px max(20px,env(safe-area-inset-bottom));text-align:center}
.brand{position:absolute;top:max(20px,3.5vh);width:100%;filter:drop-shadow(0 4px 14px #201345)}.brand-kicker,.eyebrow{font-size:10px;letter-spacing:.28em;font-weight:900;color:#e7d4ff}.brand h1{margin:2px 0 0;line-height:.78}.brand h1 em{display:block;font-style:normal;font-family:Georgia,serif;font-size:clamp(50px,10vh,78px);letter-spacing:-.08em;background:linear-gradient(180deg,#fff9d7 15%,#ffd780 55%,#ee90c1 100%);-webkit-background-clip:text;color:transparent;text-shadow:0 5px 0 rgba(91,43,121,.25)}.brand h1 small{display:block;font-size:15px;letter-spacing:.42em;margin:12px 0;color:#fff}.brand p{font-size:13px;margin:10px 0;color:#ede3ff}.start-card{width:min(410px,100%);border-radius:28px;padding:20px 20px 18px}.portrait-row{display:flex;justify-content:center;margin-top:-48px}.portrait-row img{width:58px;height:58px;object-fit:cover;border-radius:50%;border:2px solid #fff;box-shadow:0 4px 14px #0c0827;margin-left:-7px;background:#3c2a66}.portrait-row img:first-child{margin-left:0}.start-card p{font-size:14px;line-height:1.7;color:#e7e0f6;margin:13px 0}.start-card b{color:var(--gold)}
.main-button{position:relative;width:100%;border:0;border-radius:17px;padding:14px 22px;background:linear-gradient(135deg,#ff87c1,#8d64ff 60%,#58d4f4);box-shadow:0 9px 25px rgba(130,72,236,.45),inset 0 1px rgba(255,255,255,.6);font-weight:900;font-size:17px;text-shadow:0 1px 5px #5a318d}.main-button:active{transform:translateY(2px)}.main-button small{display:block;font-size:10px;opacity:.8;margin-top:3px}.sound-button,.text-button{border:0;background:none;font-weight:700;font-size:12px;color:#d8cdec;padding:12px}.sound-button span{color:var(--cyan)}.domain{margin:12px 0 0;font-size:9px;letter-spacing:.13em;color:#c8bce3aa}
.play-screen{padding:max(10px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom));justify-content:flex-start;background:linear-gradient(180deg,rgba(13,8,38,.3),rgba(13,8,38,.7))}.hud{display:grid;grid-template-columns:42px 1fr 1fr 42px;gap:8px;width:min(510px,100%);align-items:center}.icon-button{height:40px;border:1px solid rgba(255,255,255,.16);border-radius:13px;background:rgba(21,14,52,.68);font-size:20px;font-weight:900}.score-box,.best-box{text-align:center}.score-box small,.best-box small{display:block;font-size:9px;letter-spacing:.15em;color:#cfc2ef}.score-box strong{font-size:22px;color:#fff3b8}.best-box strong{font-size:16px}.mission-bar{display:grid;grid-template-columns:50px 1fr auto;gap:10px;width:min(510px,100%);padding:8px 12px;margin:7px 0 8px;border-radius:16px;align-items:center}.time{font-weight:900}.time span{font-size:27px;color:#fff}.time small{font-size:10px}.gauge{position:relative;height:15px;border-radius:20px;background:#0b0826;overflow:hidden}.gauge i{display:block;height:100%;width:100%;border-radius:inherit;background:linear-gradient(90deg,#5c50dd,#8f6eff,#f78abb,#ffd67d);transition:width .3s}.gauge span{position:absolute;inset:0;text-align:center;font-size:8px;line-height:15px;font-weight:900;text-shadow:0 1px 4px #000}.combo{min-width:62px;font-size:8px;color:#cdbff0}.combo b{display:block;font-size:19px;color:#ffbcdf}
.board-wrap{position:relative;width:min(calc(100vw - 24px),510px,calc(100dvh - 172px));aspect-ratio:1;margin:auto 0}.board{position:absolute;inset:0;z-index:2;display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);gap:clamp(2px,.65vw,4px);padding:clamp(5px,1.5vw,9px);border:1px solid rgba(255,255,255,.3);border-radius:22px;background:linear-gradient(145deg,rgba(23,14,60,.88),rgba(8,5,31,.86));box-shadow:0 16px 45px rgba(3,1,20,.65),inset 0 0 24px rgba(151,109,255,.2);touch-action:none;user-select:none;overflow:hidden}.board-glow{position:absolute;inset:-4px;border-radius:25px;background:linear-gradient(135deg,#ffd985,#f180c8,#6857f0,#68dbea);filter:blur(8px);opacity:.45}.tile{position:relative;border:1px solid rgba(255,255,255,.48);border-radius:50%;padding:0;background:radial-gradient(circle at 31% 24%,rgba(255,255,255,.98) 0 5%,rgba(255,255,255,.45) 6% 12%,transparent 13%),radial-gradient(circle at 36% 30%,var(--orb-hi) 0 11%,var(--orb) 38%,var(--orb-deep) 72%,#120726 100%);box-shadow:inset -6px -8px 12px rgba(20,6,45,.48),inset 5px 6px 12px rgba(255,255,255,.25),0 4px 8px rgba(0,0,0,.48),0 0 8px var(--orb-glow);overflow:hidden;transition:transform .14s ease,opacity .15s,filter .15s}.orb-shine{position:absolute;left:18%;top:13%;width:37%;height:20%;border-radius:50%;background:linear-gradient(180deg,rgba(255,255,255,.72),rgba(255,255,255,0));transform:rotate(-24deg);filter:blur(.5px);pointer-events:none}.tile::after{content:"";position:absolute;inset:7%;border-radius:50%;border:1px solid rgba(255,255,255,.13);box-shadow:inset 0 0 7px rgba(255,255,255,.16);pointer-events:none}.tile.selected{transform:scale(.8);outline:3px solid #fff1a8;filter:brightness(1.3);z-index:4}.tile.hinting{animation:hint .75s ease-in-out infinite}.tile.clearing{animation:orbPop .32s forwards}.tile.super-clearing{animation:superPop .4s forwards}.tile.spawn{animation:spawn .25s ease-out}.tile.special-row::before,.tile.special-col::before{content:"";position:absolute;z-index:3;background:#fff4b8;box-shadow:0 0 8px #fff,0 0 16px var(--gold)}.tile.special-row::before{left:3%;right:3%;top:46%;height:7%}.tile.special-col::before{top:3%;bottom:3%;left:46%;width:7%}.tile.special-bomb::before{content:"✦";position:absolute;inset:0;z-index:3;display:grid;place-items:center;color:#fff6a8;font-size:28px;text-shadow:0 0 6px #fff,0 0 13px #ff67da}.tile[data-type="0"]{--orb-hi:#fff4b6;--orb:#ffc94e;--orb-deep:#a25b05;--orb-glow:#ffd65c}.tile[data-type="1"]{--orb-hi:#d5fbff;--orb:#3bd8ff;--orb-deep:#1761c4;--orb-glow:#5de8ff}.tile[data-type="2"]{--orb-hi:#f2d5ff;--orb:#bd6cff;--orb-deep:#5920a7;--orb-glow:#d488ff}.tile[data-type="3"]{--orb-hi:#d8ffe8;--orb:#42df91;--orb-deep:#087459;--orb-glow:#62f2ae}.tile[data-type="4"]{--orb-hi:#ffe0f0;--orb:#ff67ac;--orb-deep:#a91767;--orb-glow:#ff83bd}.particle-layer{position:absolute;inset:0;z-index:9;pointer-events:none;overflow:visible}.burst-ring{position:absolute;width:12px;height:12px;margin:-6px;border:3px solid #fff;border-radius:50%;box-shadow:0 0 12px #fff,0 0 25px var(--burst-color);animation:ringBurst .48s ease-out forwards}.spark{position:absolute;width:7px;height:7px;margin:-3px;border-radius:50%;background:#fff;box-shadow:0 0 5px #fff,0 0 12px var(--burst-color);animation:sparkFly .58s cubic-bezier(.1,.7,.2,1) var(--delay) forwards}.spark.star{width:11px;height:11px;border-radius:0;clip-path:polygon(50% 0,61% 35%,100% 50%,61% 63%,50% 100%,39% 63%,0 50%,39% 35%)}.burst-ring[style*="--burst:0"],.spark[style*="--burst:0"]{--burst-color:#ffd65c}.burst-ring[style*="--burst:1"],.spark[style*="--burst:1"]{--burst-color:#5de8ff}.burst-ring[style*="--burst:2"],.spark[style*="--burst:2"]{--burst-color:#d488ff}.burst-ring[style*="--burst:3"],.spark[style*="--burst:3"]{--burst-color:#62f2ae}.burst-ring[style*="--burst:4"],.spark[style*="--burst:4"]{--burst-color:#ff83bd}
.hint{margin:7px 0 0;font-size:11px;color:#d8cfee;text-shadow:0 2px 8px #000}.character-skill{position:absolute;z-index:8;top:92px;left:50%;transform:translate(-50%,-8px);opacity:0;padding:8px 17px;border-radius:30px;background:rgba(24,13,63,.92);border:1px solid #ffe0a4;white-space:nowrap;font-weight:900;color:#fff3bd;transition:.25s;pointer-events:none}.character-skill.show{opacity:1;transform:translate(-50%,0)}.game.fever .board-glow{opacity:.95;animation:feverGlow .6s alternate infinite}.game.fever .mission-bar{border-color:#ffe096}
.overlay{position:absolute;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:rgba(7,4,23,.76);backdrop-filter:blur(8px)}.overlay[hidden]{display:none}.modal{width:min(380px,100%);padding:28px;border-radius:28px;text-align:center}.modal-icon{display:block;font-size:52px;color:#ffe79d}.modal h2{margin:6px 0;font-family:Georgia,serif;font-size:26px}.modal p{color:#d8cfee;font-size:13px}.result-rank{display:grid;place-items:center;width:84px;height:84px;margin:-72px auto 12px;border-radius:50%;background:linear-gradient(145deg,#fff8c4,#ffba6a 55%,#ed75bd);border:4px solid #fff;box-shadow:0 8px 30px #a558d8;font-family:Georgia,serif;font-size:52px;font-weight:900;color:#6c368b}.final-score{margin:20px 0}.final-score small{display:block;font-size:11px}.final-score strong{display:block;font-size:42px;color:#fff4b4}.final-score em{display:block;height:16px;font-size:10px;color:#ff8bc5;font-weight:900}.result-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 18px}.result-stats span{padding:10px;border-radius:13px;background:#120c35}.result-stats small{display:block;font-size:9px;color:#c9bde7}.result-stats b{font-size:20px}.text-button{width:100%}
.play-screen::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#fff 0 1px,transparent 1.5px),radial-gradient(circle,#d8bcff 0 1px,transparent 1.5px);background-size:83px 83px,127px 127px;background-position:11px 7px,42px 31px;opacity:.28;animation:starDrift 14s linear infinite}.board{background:radial-gradient(circle at 50% 18%,rgba(117,80,208,.2),transparent 42%),linear-gradient(145deg,rgba(21,12,57,.96),rgba(7,4,27,.94));border-color:rgba(255,238,194,.38);box-shadow:0 18px 55px rgba(3,1,20,.72),inset 0 0 35px rgba(151,109,255,.2),inset 0 1px 0 rgba(255,255,255,.28)}.board::before{content:"";position:absolute;inset:3px;border-radius:18px;border:1px solid rgba(255,255,255,.07);pointer-events:none}.tile{will-change:transform,opacity;isolation:isolate}.tile::before{content:"";position:absolute;inset:-24%;border-radius:50%;background:conic-gradient(from 0deg,transparent,rgba(255,255,255,.3),transparent 28%);opacity:.18;animation:orbTurn 5s linear infinite;pointer-events:none}.tile.special-row,.tile.special-col,.tile.special-bomb{animation:specialPulse 1s ease-in-out infinite alternate}.tile.spawn{animation:dropIn .42s cubic-bezier(.15,.78,.25,1.2) var(--drop-delay) both}.board.impact{animation:boardImpact .24s ease-out}.score-box strong.bump{display:inline-block;animation:scoreBump .35s ease-out}.impact-stage{position:absolute;inset:0;z-index:18;pointer-events:none;display:grid;place-items:center;overflow:hidden}.combo-callout,.fever-callout{position:absolute;top:26%;left:50%;transform:translate(-50%,-50%);text-align:center;filter:drop-shadow(0 6px 15px #1a083c);animation:calloutIn .9s cubic-bezier(.15,.85,.25,1) forwards}.combo-callout small,.fever-callout small{display:block;font-size:10px;letter-spacing:.3em;font-weight:1000;color:#fff1a5}.combo-callout b,.fever-callout b{display:block;white-space:nowrap;font-family:Georgia,serif;font-style:italic;font-size:clamp(34px,10vw,54px);line-height:1;background:linear-gradient(180deg,#fff,#ffdd78 48%,#ff78c4);-webkit-background-clip:text;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.48)}.combo-callout.is-special b{font-size:clamp(30px,9vw,48px);background:linear-gradient(180deg,#fff,#96f4ff 35%,#ce80ff 70%,#ff78c4);-webkit-background-clip:text}.fever-callout{top:40%}.fever-callout b{font-size:clamp(44px,13vw,68px)}.score-pop{position:absolute;z-index:15;transform:translate(-50%,-50%);font-size:clamp(18px,5vw,27px);font-weight:1000;color:#fff6a9;text-shadow:0 2px 0 #8d3f98,0 0 9px #fff,0 0 20px #ff79d6;pointer-events:none;animation:scoreFloat .78s ease-out forwards}.power-beam{position:absolute;z-index:8;display:block;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);box-shadow:0 0 10px #fff,0 0 22px var(--burst-color);animation:beamFlash .45s ease-out forwards}.power-beam.row{width:150%;height:9px}.power-beam.col{width:9px;height:150%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.95),transparent)}.power-beam.bomb{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle,#fff,rgba(255,226,110,.9) 25%,rgba(202,91,255,.7) 55%,transparent 70%);animation:bombFlash .55s ease-out forwards}.game.danger .time span{color:#ff6f9f;animation:dangerPulse .45s ease-in-out infinite alternate}.game.danger .mission-bar{border-color:rgba(255,90,140,.75);box-shadow:0 0 20px rgba(255,57,125,.25)}.game.danger .gauge i{background:linear-gradient(90deg,#ff3b77,#ff886a)}.game.fever::after{content:"";position:absolute;inset:-20%;z-index:-1;background:conic-gradient(from 0deg,rgba(255,208,93,.18),rgba(131,99,255,.17),rgba(86,229,255,.18),rgba(255,105,190,.18),rgba(255,208,93,.18));animation:feverWorld 5s linear infinite}.game.fever .tile{box-shadow:inset -6px -8px 12px rgba(20,6,45,.4),inset 5px 6px 12px rgba(255,255,255,.3),0 4px 8px rgba(0,0,0,.4),0 0 13px var(--orb-glow)}
@keyframes orbPop{35%{transform:scale(1.45);filter:brightness(2.5) saturate(1.7)}100%{transform:scale(.05);opacity:0;filter:brightness(4)}}@keyframes superPop{30%{transform:scale(1.7);filter:brightness(4)}70%{transform:scale(.75) rotate(25deg)}100%{transform:scale(0);opacity:0}}@keyframes ringBurst{from{transform:scale(.25);opacity:1}to{transform:scale(7.5);opacity:0}}@keyframes sparkFly{0%{transform:translate(0,0) scale(.3);opacity:1}70%{opacity:1}100%{transform:translate(var(--dx),var(--dy)) rotate(var(--spin)) scale(.05);opacity:0}}@keyframes spawn{from{transform:scale(.2);opacity:0}}@keyframes dropIn{0%{transform:translateY(-80%) scale(.72);opacity:0}70%{transform:translateY(5%) scale(1.04);opacity:1}100%{transform:none;opacity:1}}@keyframes hint{50%{transform:scale(.82);filter:brightness(1.5)}}@keyframes feverGlow{to{filter:blur(10px) hue-rotate(35deg)}}@keyframes orbTurn{to{transform:rotate(360deg)}}@keyframes specialPulse{to{filter:brightness(1.38);box-shadow:0 0 18px var(--orb-glow),inset 0 0 8px #fff}}@keyframes boardImpact{35%{transform:scale(1.012) rotate(.25deg)}70%{transform:scale(.996) rotate(-.18deg)}}@keyframes scoreBump{40%{transform:scale(1.35);filter:brightness(1.8)}100%{transform:none}}@keyframes scoreFloat{0%{transform:translate(-50%,-15%) scale(.55);opacity:0}25%{transform:translate(-50%,-50%) scale(1.18);opacity:1}100%{transform:translate(-50%,-160%) scale(.9);opacity:0}}@keyframes calloutIn{0%{transform:translate(-50%,-50%) scale(.35) rotate(-7deg);opacity:0}22%{transform:translate(-50%,-50%) scale(1.18) rotate(2deg);opacity:1}65%{transform:translate(-50%,-50%) scale(1);opacity:1}100%{transform:translate(-50%,-90%) scale(.85);opacity:0}}@keyframes beamFlash{0%{transform:translate(-50%,-50%) scaleX(.05);opacity:0}25%{opacity:1}100%{transform:translate(-50%,-50%) scaleX(1);opacity:0}}@keyframes bombFlash{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}35%{opacity:1}100%{transform:translate(-50%,-50%) scale(6);opacity:0}}@keyframes dangerPulse{to{transform:scale(1.16);text-shadow:0 0 14px #ff538e}}@keyframes feverWorld{to{transform:rotate(360deg)}}@keyframes starDrift{to{background-position:94px 90px,169px 158px}}
@media (max-height:680px){.brand{top:12px}.brand h1 em{font-size:52px}.brand p{display:none}.start-card{padding-bottom:12px}.portrait-row img{width:48px;height:48px}.board-wrap{width:min(calc(100vw - 24px),calc(100dvh - 154px),510px)}.hint{margin-top:3px}.mission-bar{margin:4px 0}.hud{height:35px}.icon-button{height:35px}}
@media (min-width:700px){.game{width:min(560px,100%);margin:auto;box-shadow:0 0 80px #000}body{background:#090618}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Animal Expedition upgrade */
.tile{border-radius:32%;background:linear-gradient(145deg,var(--orb-hi),var(--orb-deep));box-shadow:inset 0 1px 1px rgba(255,255,255,.75),inset 0 -5px 9px rgba(16,5,41,.32),0 4px 8px rgba(0,0,0,.48),0 0 9px var(--orb-glow)}
.tile>img{position:absolute;z-index:1;inset:5%;width:90%;height:90%;border-radius:27%;object-fit:cover;filter:saturate(1.08) contrast(1.04);box-shadow:0 0 0 1px rgba(255,255,255,.42),inset 0 0 8px rgba(255,255,255,.35);pointer-events:none}
.tile .orb-shine{z-index:2;left:12%;top:8%;width:43%;height:18%}.tile::after{z-index:2;inset:4%;border-radius:28%;border-color:rgba(255,255,255,.28)}
.tile[data-type="5"]{--orb-hi:#ffe3bf;--orb:#ff895c;--orb-deep:#9b2f20;--orb-glow:#ff8058}
.tile.special-row,.tile.special-col,.tile.special-bomb,.tile.special-firework,.tile.special-prism{animation:specialPulse 1s ease-in-out infinite alternate}
.tile.special-row::before,.tile.special-col::before{z-index:4;border-radius:10px}
.tile.special-bomb::before{z-index:4;content:"✦";background:radial-gradient(circle,rgba(255,250,174,.9),rgba(255,74,190,.72) 45%,transparent 72%);animation:orbTurn 2.2s linear infinite}
.tile.special-firework::before{content:"✺";position:absolute;inset:0;z-index:4;display:grid;place-items:center;font-size:30px;color:#fff;text-shadow:0 0 5px #fff,0 0 12px #4fe8ff,0 0 20px #ff55c5;animation:fireworkSpin 1.4s linear infinite}
.tile.special-prism::before{content:"★";position:absolute;inset:2%;z-index:4;display:grid;place-items:center;border-radius:29%;font-size:27px;color:#fff;background:conic-gradient(from 0deg,rgba(255,78,159,.75),rgba(255,229,84,.78),rgba(77,240,207,.78),rgba(101,133,255,.78),rgba(211,94,255,.78),rgba(255,78,159,.75));box-shadow:inset 0 0 10px #fff,0 0 12px #fff;animation:orbTurn 1.8s linear infinite}
.power-beam.firework{width:56px;height:56px;border-radius:50%;background:repeating-conic-gradient(from 0deg,#fff 0 4deg,transparent 5deg 18deg);box-shadow:0 0 12px #fff,0 0 35px #ff54ca;animation:bombFlash .68s ease-out forwards}
.power-beam.prism{width:48px;height:48px;border-radius:30%;background:conic-gradient(#ff5a9f,#ffe05f,#5fffc8,#62a2ff,#d96cff,#ff5a9f);box-shadow:0 0 16px #fff,0 0 38px #9cf;animation:bombFlash .7s ease-out forwards}
.stage-clear-modal{border-color:rgba(255,226,125,.7);box-shadow:0 22px 80px rgba(104,60,221,.65),inset 0 0 45px rgba(255,209,90,.11)}
.stage-clear-modal .result-rank{animation:clearStar 1.1s ease-in-out infinite alternate}.moves{display:flex;align-items:baseline;gap:3px}.moves span{min-width:31px;text-align:right}.gauge i{width:0}
.particle-layer .spark[style*="--burst:5"],.particle-layer .burst-ring[style*="--burst:5"]{--burst-color:#ff8058}
@keyframes fireworkSpin{50%{transform:scale(1.18) rotate(180deg);filter:brightness(1.5)}to{transform:rotate(360deg)}}
@keyframes clearStar{to{transform:translateY(-5px) rotate(8deg);box-shadow:0 12px 45px #ffe275,0 0 25px #fff}}

/* Dalmuteam V1 identity and mobile render budget */
html,body{overscroll-behavior:none}
.start-screen{background:linear-gradient(180deg,rgba(8,5,28,.05) 0%,rgba(8,5,28,.14) 46%,rgba(8,5,28,.78) 78%,rgba(8,5,28,.92) 100%)}
.start-screen .brand{padding:0 52px}
.start-card{background:linear-gradient(145deg,rgba(28,19,65,.9),rgba(14,9,39,.88))}
.portrait-row img{border-color:#fff4c7;box-shadow:0 4px 15px rgba(5,2,25,.72),0 0 0 2px rgba(183,143,255,.25)}
.team-caption{display:block;margin:9px 0 0;color:#f2dcff;font-size:10px;font-weight:900;letter-spacing:.11em}
.play-screen{background:linear-gradient(180deg,rgba(9,5,30,.66),rgba(9,5,30,.82))}
.board-wrap,.board{contain:layout paint style}
.tile{will-change:auto}
.tile::before{animation:none;transform:rotate(28deg);opacity:.08}
.tile.selected,.tile.clearing,.tile.super-clearing,.tile.special-row,.tile.special-col,.tile.special-bomb,.tile.special-firework,.tile.special-prism{will-change:transform,opacity}
.board.is-spawning .tile{animation:dropIn .34s cubic-bezier(.15,.78,.25,1.2) var(--drop-delay) both}

.performance-mobile .glass,.performance-mobile .overlay,.performance-mobile .test-back{backdrop-filter:none!important}
.performance-mobile .play-screen::before{animation:none;opacity:.16}
.performance-mobile .board-glow{filter:none;inset:-2px;opacity:.28}
.performance-mobile .tile{box-shadow:inset 0 1px 1px rgba(255,255,255,.6),inset 0 -3px 5px rgba(16,5,41,.28),0 2px 4px rgba(0,0,0,.36)}
.performance-mobile .tile>img{filter:none;box-shadow:0 0 0 1px rgba(255,255,255,.3)}
.performance-mobile .tile::before{display:none}
.performance-mobile .tile.special-row,.performance-mobile .tile.special-col,.performance-mobile .tile.special-bomb,.performance-mobile .tile.special-firework,.performance-mobile .tile.special-prism{animation-duration:1.5s}
.performance-mobile .board.is-spawning .tile{animation-name:mobileDrop;animation-duration:.22s}
.performance-mobile .spark{box-shadow:0 0 5px var(--burst-color)}
.performance-mobile .burst-ring{box-shadow:0 0 10px var(--burst-color)}
.performance-mobile .game.fever::after{display:none}
.performance-mobile .game.fever .tile{box-shadow:inset 0 1px 1px rgba(255,255,255,.65),0 2px 5px rgba(0,0,0,.36),0 0 7px var(--orb-glow)}
@keyframes mobileDrop{from{transform:translateY(-18%) scale(.94);opacity:.35}to{transform:none;opacity:1}}

/* RC2: one DOM node per animal tile and a cheaper mobile paint path */
.tile{
  background-image:var(--animal-image),linear-gradient(145deg,var(--orb-hi),var(--orb-deep));
  background-position:center,center;
  background-repeat:no-repeat,no-repeat;
  background-size:90% 90%,100% 100%;
}
.tile[data-type="0"]{--animal-image:url("./assets/animal-fox.webp")}
.tile[data-type="1"]{--animal-image:url("./assets/animal-rabbit.webp")}
.tile[data-type="2"]{--animal-image:url("./assets/animal-otter.webp")}
.tile[data-type="3"]{--animal-image:url("./assets/animal-owl.webp")}
.tile[data-type="4"]{--animal-image:url("./assets/animal-cat.webp")}
.tile[data-type="5"]{--animal-image:url("./assets/animal-bear.webp")}
.performance-mobile .play-screen::before{display:none}
.performance-mobile .tile{
  transition:transform .1s ease,opacity .12s;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.42),0 1px 3px rgba(0,0,0,.55);
}
.performance-mobile .tile::after{display:none}
.performance-mobile .tile.selected{filter:none;outline:2px solid #fff1a8}
.performance-mobile .tile.special-row,.performance-mobile .tile.special-col,.performance-mobile .tile.special-bomb,.performance-mobile .tile.special-firework,.performance-mobile .tile.special-prism{animation:mobileSpecialPulse 1.5s ease-in-out infinite alternate}
.performance-mobile .tile.clearing{animation:mobileOrbPop .25s ease-out forwards}
.performance-mobile .tile.super-clearing{animation:mobileSuperPop .3s ease-out forwards}
@keyframes mobileSpecialPulse{to{transform:scale(1.035)}}
@keyframes mobileOrbPop{to{transform:scale(.08);opacity:0}}
@keyframes mobileSuperPop{45%{transform:scale(1.16)}to{transform:scale(.08);opacity:0}}
