*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}body{min-height:100dvh;background:#092d36 fixed center/cover;transition:background .4s}button,input,select{font:inherit}button{color:inherit;cursor:pointer}button:focus-visible,.bottle:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.loading{position:fixed;inset:0;z-index:100;background:#062832;display:grid;place-items:center;overflow:hidden;transition:opacity .5s}.loading>img{position:absolute;width:100%;height:100%;object-fit:cover;opacity:.65}.loading-brand{position:relative;text-align:center;font:700 clamp(32px,8vw,64px)/1.1 Georgia,serif;text-shadow:0 3px 20px #000}.loading-brand small{display:block;font:600 13px/2 Inter,sans-serif;letter-spacing:6px;color:var(--gold)}.loader{position:absolute;bottom:12%;width:140px;height:4px;background:#ffffff30;overflow:hidden;border-radius:9px}.loader:after{content:"";display:block;width:50%;height:100%;background:var(--gold);animation:load 1s infinite alternate}@keyframes load{to{transform:translateX(100%)}}#app{min-height:100dvh;background:linear-gradient(#001a2350,#001a23a8);padding:max(14px,env(safe-area-inset-top)) 16px max(20px,env(safe-area-inset-bottom));max-width:1100px;margin:auto}.screen{animation:enter .35s ease both}@keyframes enter{from{opacity:0;transform:translateY(10px)}}.topline,.game-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.mini-actions{display:flex;gap:8px}.brand{text-align:center;margin:26px 0}.brand h1{font:700 clamp(38px,7vw,68px)/1 Georgia,serif;margin:0;color:#fff8df;text-shadow:0 4px 22px #001}.brand p{margin:10px;color:var(--gold);letter-spacing:5px;font-size:12px}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:660px;margin:auto}.tile,.glass,.modal{background:linear-gradient(145deg,rgba(17,62,70,.94),rgba(6,33,42,.96));border:1px solid var(--line);box-shadow:var(--shadow);border-radius:22px}.tile{padding:20px;text-align:left;min-height:112px;position:relative;overflow:hidden;transition:.2s}.tile:hover{transform:translateY(-3px);border-color:var(--gold)}.tile.primary{grid-column:1/-1;background:linear-gradient(135deg,#176a70e8,#123a4bea)}.tile strong{display:block;font-size:21px;margin:8px 0}.tile small{color:var(--muted)}.tile-icon{font-size:27px}.bottom-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:660px;margin:14px auto}.small-tile{border:1px solid var(--line);background:#092c37df;border-radius:15px;padding:12px 4px;font-size:12px}.small-tile b{display:block;font-size:18px;margin-bottom:4px}.icon-btn,.pill{border:1px solid var(--line);background:#082c38d9;border-radius:13px;padding:10px 12px}.icon-btn{min-width:42px}.game-screen{max-width:850px;margin:auto}.game-title{text-align:center;flex:1}.game-title strong{display:block}.game-title small{color:var(--muted)}.mode-line{text-align:center;color:var(--gold);font-size:13px;margin:10px}.meter-wrap{max-width:500px;margin:12px auto}.meter-info{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.meter{height:9px;border-radius:9px;background:#031a22b3;overflow:hidden;border:1px solid #ffffff20}.meter-fill{height:100%;background:#58e69b;transition:width .35s,background .35s}.meter-fill.warn{background:#ffd166}.meter-fill.danger{background:var(--danger);animation:pulse .7s infinite alternate}@keyframes pulse{to{filter:brightness(1.6)}}.board{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;align-content:center;gap:22px 14px;min-height:390px;padding:34px 4px 24px}.bottle-wrap{width:66px;position:relative;text-align:center;flex:0 0 auto}.bottle{position:relative;width:58px;margin:auto;border:0;background:none;padding:0;height:calc(72px + var(--capacity)*30px);transition:transform .2s;filter:drop-shadow(0 8px 7px #0018)}.bottle:hover{transform:translateY(-4px)}.bottle.selected{transform:translateY(-17px);filter:drop-shadow(0 0 10px var(--gold))}.bottle.tutorial-focus{filter:drop-shadow(0 0 9px var(--gold));animation:guideGlow .8s infinite alternate}@keyframes guideGlow{to{filter:drop-shadow(0 0 18px var(--gold));outline:2px solid var(--gold);outline-offset:5px;border-radius:18px}}.bottle.invalid{animation:shake .35s}.bottle.pouring{animation:pour .65s ease-in-out}@keyframes shake{25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}@keyframes pour{0%{transform:translate(0,-17px) rotate(0)}40%,70%{transform:translate(var(--pour-x,25px),var(--pour-y,-65px)) rotate(var(--pour-angle,55deg))}100%{transform:translate(0,0) rotate(0)}}.bottle.pouring{z-index:20;pointer-events:none}.neck{position:absolute;left:20px;top:0;width:18px;height:40px;border:3px solid #d8ffff80;border-bottom:0;border-radius:7px 7px 0 0;background:linear-gradient(90deg,#fff2,transparent,#fff3)}.body{position:absolute;left:2px;right:2px;top:33px;bottom:0;border:3px solid #d8ffff80;border-radius:15px 15px 19px 19px;overflow:hidden;background:linear-gradient(90deg,#fff2,transparent 30%,#fff2);display:flex;flex-direction:column-reverse;padding:4px}.layer{height:30px;flex:0 0 30px;position:relative;background:linear-gradient(180deg,var(--c1),var(--c2) 55%,var(--c3));border-top:1px solid #ffffff50;box-shadow:inset 5px 0 8px #fff1}.layer:before,.layer:after{content:"";position:absolute;bottom:-7px;width:4px;height:4px;background:#fff9;border-radius:50%;box-shadow:0 0 3px #fff7;animation:bubbleRise 2.4s linear infinite;will-change:transform,opacity}.layer:before{left:22%;width:3px;height:3px;animation-delay:-.8s;animation-duration:2.8s}.layer:after{left:65%;width:5px;height:5px;animation-delay:-1.7s;animation-duration:3.2s}.layer:nth-child(2n):before{animation-delay:-1.9s;left:38%}.layer:nth-child(2n):after{animation-delay:-.4s;left:76%}.layer:nth-child(3n):before{animation-duration:1.9s}@keyframes bubbleRise{0%{transform:translate(0,0) scale(.65);opacity:0}18%{opacity:.85}75%{opacity:.65}100%{transform:translate(5px,-33px) scale(1.15);opacity:0}}.layer.trash{filter:saturate(.25);background-color:#555;background-image:radial-gradient(#222 1px,transparent 2px),linear-gradient(var(--c1),var(--c3));background-size:8px 8px,auto}.empty-mark{margin:auto;color:#ffffff35;font-size:23px}.cap{position:absolute;z-index:3;left:16px;top:-5px;width:26px;height:13px;border-radius:5px;background:linear-gradient(#ffe596,#b67b25);animation:cap .4s}.ice-badge,.lock-badge{position:absolute;z-index:5;inset:32px 0 0;display:grid;place-items:center;background:#8deaff70;border-radius:15px;font-size:20px;text-shadow:0 2px 4px #003}.lock-badge{inset:30px -4px 0;background:#071b27c9;font-size:27px}.fog{position:absolute;z-index:4;inset:33px 0 0;border-radius:15px;background:linear-gradient(135deg,#d9ffffed,#6c9babc9);display:grid;place-items:center;font-size:32px;color:#244e5c}.crack{position:absolute;inset:33px 0 0;z-index:3;pointer-events:none;background:repeating-linear-gradient(135deg,transparent 0 8px,#ffdae622 8px 10px);clip-path:polygon(0 0,100% 0,100% var(--lost),0 var(--lost))}.narrow .neck{width:10px;left:24px}.bottle-index{font-size:11px;color:#c9e3e2;margin-top:5px}.help-row{display:flex;justify-content:center;gap:8px;position:sticky;bottom:8px}.help-row button{background:#082a36f2;border:1px solid var(--line);padding:12px 15px;border-radius:15px;box-shadow:0 5px 18px #0018}.help-row button:disabled{opacity:.4}.target-panel{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:9px}.target-panel{min-height:124px;gap:var(--space-4);padding:var(--space-3)}.target-panel>span{font-weight:600;color:var(--gold)}.target-panel .bottle-wrap{width:56px;height:112px;margin:0;animation:none;transform:none}.target-panel .bottle-wrap:after{display:none}.target-panel .bottle{width:56px;height:calc(52px + var(--capacity)*12px)}.target-panel .bottle .body{height:calc(var(--capacity)*12px + 4px);bottom:7%}.target-panel .layer{height:12px;flex-basis:12px}.target-panel .cap{height:8px}.target-panel .bottle:after{display:none}.target-panel .done{outline:2px solid var(--accent);border-radius:12px}.hint-hand{position:absolute;z-index:10;font-size:35px;animation:hand .8s infinite alternate;pointer-events:none}@keyframes hand{to{transform:translateY(-8px)}}.modal-back{position:fixed;z-index:50;inset:0;background:#00151dcc;display:grid;place-items:center;padding:18px;backdrop-filter:blur(7px)}.modal{width:min(520px,100%);max-height:88dvh;overflow:auto;padding:24px;position:relative}.modal h2{font:700 29px Georgia,serif;margin:0 0 15px}.modal p{color:var(--muted);line-height:1.5}.modal-actions{display:grid;gap:9px;margin-top:18px}.action{border:1px solid var(--line);border-radius:14px;padding:13px 16px;background:#15515b}.action.primary{background:linear-gradient(90deg,#d89b40,#f2c66e);color:#192d32;font-weight:700}.close{position:absolute;right:12px;top:12px;border:0;background:none;font-size:24px}.stars{text-align:center;font-size:45px;letter-spacing:6px;color:#5c6c6d}.stars .earned{color:var(--gold);display:inline-block;animation:star .5s both}.stars .earned:nth-child(2){transform:translateY(-8px)}@keyframes star{from{opacity:0;scale:2}}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.level{padding:10px 2px;border-radius:12px;background:#17434d;border:1px solid var(--line)}.level.locked{opacity:.35}.level small{display:block;color:var(--gold);min-height:13px}.toast{position:fixed;z-index:90;top:18px;left:50%;transform:translate(-50%,-100px);background:#092c38f5;border:1px solid var(--gold);border-radius:14px;padding:12px 18px;max-width:90%;text-align:center;transition:.3s;box-shadow:var(--shadow)}.toast.show{transform:translate(-50%,0)}.confetti{position:fixed;inset:0;z-index:60;pointer-events:none}.confetti i{position:absolute;top:-20px;width:9px;height:16px;animation:fall 2.5s linear forwards}@keyframes fall{to{transform:translateY(110vh) rotate(720deg)}}.bar-grid,.award-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bar-card{padding:8px;border:1px solid var(--line);border-radius:16px;background:#092d38}.bar-card img{width:100%;height:120px;object-fit:cover;border-radius:10px}.bar-card strong{display:block;margin-top:var(--space-3);line-height:1.35}.bar-card small{display:block;margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm);line-height:1.4}.bar-card:disabled{opacity:.65}.bar-card.selected{border:2px solid var(--gold)}.award-grid{grid-template-columns:repeat(4,1fr)}.award{text-align:center;font-size:10px}.award img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:var(--radius-sm)}.award.locked{filter:grayscale(1);opacity:.35}.stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat{padding:12px;border-radius:12px;background:#ffffff09}.stat b{display:block;font-size:23px;color:var(--gold)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center;font-size:11px}.calendar div{padding:7px 2px;background:#ffffff0b;border-radius:8px}.editor-palette{display:flex;flex-wrap:wrap;gap:7px;margin:15px 0}.flavor-dot{width:31px;height:31px;border:2px solid #fff5;border-radius:50%;background:linear-gradient(var(--c1),var(--c3))}.flavor-dot.active{outline:3px solid var(--gold)}.editor-board{min-height:200px}.form-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:12px 0}.obstacle-intro{text-align:center}.obstacle-intro img{width:130px;border-radius:25px}.week-type{font-size:18px}.rotate{display:none}.session-note{text-align:center;font-size:12px;color:var(--muted)}/* Unified component scale after the Enmera audit. */
button,select,input{min-height:var(--control-h)}button{white-space:normal;line-height:1.3}.tile,.glass,.modal{border-radius:var(--radius-xl);box-shadow:none}.tile{padding:var(--space-5);min-height:120px}.tile:hover{transform:none;border-color:var(--gold)}.tile.primary{background:#145563;color:#f8f3e8}.tile.primary small{color:#d7e5e4}.action.primary{background:var(--gold);color:#192d32}.tile strong,.modal h2{font-weight:600}.tile small,.modal p{line-height:1.5}.brand{margin:var(--space-6) 0}.brand h1{font-weight:600}.brand p{letter-spacing:2px}.menu-grid{gap:var(--space-3)}.bottom-grid{gap:var(--space-2);margin:var(--space-4) auto}.small-tile,.icon-btn,.pill,.help-row button,.action,.level{border-radius:var(--radius-md)}.small-tile{min-height:64px;font-size:var(--text-xs)}.small-tile b{font-size:var(--text-lg)}.icon-btn{min-width:44px;padding:var(--space-2)}.close{width:44px;height:44px;right:var(--space-1);top:var(--space-1);border-radius:var(--radius-md)}.modal{padding:var(--space-6)}.modal p{max-width:65ch}.help-row{flex-wrap:wrap;gap:var(--space-2);padding:var(--space-2);background:#082a36e8;border-radius:var(--radius-lg)}.help-row button{min-height:44px;font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.bottle-index{font-size:var(--text-xs);min-height:16px}.mode-line,.meter-info{font-size:var(--text-sm)}.meter-wrap{margin:var(--space-3) auto}.board{gap:var(--space-5) var(--space-3);padding:var(--space-6) var(--space-1)}.stats{gap:var(--space-2)}.stat{border-radius:var(--radius-md)}.award{font-size:var(--text-xs)}.form-row{gap:var(--space-3);margin:var(--space-3) 0}.bar-grid{gap:var(--space-3)}.bar-card{border-radius:var(--radius-lg)}.bar-card img{border-radius:var(--radius-sm)}.level-grid{gap:var(--space-2)}
/* Bar atmosphere and dimensional glass. */
.game-top{padding:var(--space-2);border:1px solid #ffffff12;border-radius:var(--radius-lg);background:#062832b8;backdrop-filter:blur(12px)}.game-title strong{font-family:Georgia,serif;font-size:var(--text-lg);color:#fff7df}.meter-wrap{padding:0 var(--space-2)}.meter{height:10px;border-color:#ffffff24}.meter-fill{box-shadow:0 0 12px #58e69b55}.board{position:relative;background:linear-gradient(180deg,#06283238,#031c28a8);border:1px solid #ffffff14;border-radius:var(--radius-xl);box-shadow:inset 0 -24px 40px #00151c35;isolation:isolate}.bottle-wrap{width:70px}.bottle-wrap:after{content:"";position:absolute;z-index:-1;left:8px;right:8px;bottom:16px;height:12px;border-radius:50%;background:#00111880;filter:blur(5px);transform:scaleX(1.1)}.bottle{width:62px;filter:drop-shadow(0 10px 8px #0017)}.bottle .neck{border-color:#e6ffffa8;background:linear-gradient(90deg,#ffffff42,#ffffff08 40%,#d9ffff38);box-shadow:inset 3px 0 3px #fff2}.bottle .body{border-color:#e6ffffb8;border-radius:20px 20px 24px 24px;background:linear-gradient(100deg,#ffffff20,transparent 26%,transparent 72%,#d9ffff25);box-shadow:inset 4px 0 6px #fff2,inset -4px 0 7px #9defff12}.bottle .body:before{content:"";position:absolute;z-index:3;pointer-events:none;left:7px;top:16px;bottom:18px;width:3px;border-radius:50%;background:linear-gradient(180deg,#fff8,#fff1);filter:blur(.3px)}.bottle .body:after{content:"";position:absolute;z-index:3;pointer-events:none;left:12px;right:12px;bottom:3px;height:5px;border-radius:50%;background:#dfffff38}.layer{border-top-color:#ffffff70;box-shadow:inset 5px 0 10px #fff2,inset -5px -3px 9px #0012;background-size:100% 140%;animation:liquidLight 5s ease-in-out infinite alternate}.layer:nth-child(2n){animation-delay:-2.5s}@keyframes liquidLight{to{background-position:0 18%}}.bottle.selected{filter:drop-shadow(0 0 9px #ffd47990) drop-shadow(0 12px 8px #0017)}.cap{box-shadow:0 3px 0 #694716,0 4px 8px #0018}.help-row{backdrop-filter:blur(14px);border:1px solid #ffffff14}.help-row button{background:#123e49;transition:background .2s,border-color .2s}.help-row button:hover:not(:disabled){background:#1b505c;border-color:#ffd47980}.modal{border-color:#ffffff24;background:#0a303cf5;box-shadow:0 20px 60px #00151c80}.toast{box-shadow:0 8px 24px #0018}.tile{border-color:#ffffff1c}.tile.primary{border-color:#ffd47980}.tile-icon{filter:drop-shadow(0 3px 4px #0016)}
/* Illustrated bottles and playful game motion. */
.bottle-wrap{width:90px;animation:bottleIdle 4.2s ease-in-out infinite;animation-delay:var(--idle-delay,0s)}.bottle{width:90px;height:calc(110px + var(--capacity)*26px);filter:drop-shadow(0 12px 8px #0019);transform-origin:50% 85%}.glass-art{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;user-select:none;opacity:.58;mix-blend-mode:screen}.bottle .neck{display:none}.bottle .body{z-index:1;left:18%;right:18%;top:auto;bottom:9%;height:calc(var(--capacity)*26px + 8px);padding:1px;border:0;border-radius:42% 42% 40% 40%/16% 16% 22% 22%;background:#002a3410;box-shadow:none;clip-path:polygon(23% 0,77% 0,92% 12%,100% 28%,94% 65%,86% 84%,68% 96%,32% 96%,14% 84%,6% 65%,0 28%,8% 12%)}.bottle.capacity-5,.bottle.capacity-6,.bottle.capacity-7{height:calc(140px + var(--capacity)*26px)}.bottle.capacity-5 .body,.bottle.capacity-6 .body,.bottle.capacity-7 .body{left:16%;right:16%}.bottle .body:before,.bottle .body:after{display:none}.layer{height:26px;flex-basis:26px;border-top:0;background-image:url('../img/liquid-caustics.webp'),linear-gradient(180deg,var(--c1),var(--c2) 55%,var(--c3));background-blend-mode:soft-light,normal;background-size:180% 180%,100% 140%;box-shadow:inset 6px 0 12px #fff3,inset -6px -3px 9px #0013}.layer:last-child{border-radius:44% 44% 0 0/6px 6px 0 0;box-shadow:inset 0 3px 4px #fff5,inset 6px 0 12px #fff3}.layer:first-child{border-radius:0}.empty-mark{display:none}.bottle:hover{transform:translateY(-5px) rotate(-1deg)}.bottle.selected{transform:translateY(-18px);filter:drop-shadow(0 0 12px #ffd47990) drop-shadow(0 12px 8px #0017)}.bottle.selected .glass-art{animation:glassWiggle 1.8s ease-in-out infinite}.bottle:after{content:"";position:absolute;z-index:4;left:19%;top:42%;width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 7px #bfffff;opacity:.65;animation:glint 3.4s ease-in-out infinite;animation-delay:var(--idle-delay,0s);pointer-events:none}.bottle-index{font-weight:700;color:#fff0c6;text-shadow:0 2px 4px #001}.cap{left:34%;top:1%;width:32%;height:15px;z-index:4}.ice-badge,.lock-badge{inset:28% 5% 4%;border-radius:42%}.fog{inset:29% 7% 5%;border-radius:42%}.crack{inset:29% 7% 5%}.narrow .glass-art{transform:scaleX(.8)}.narrow .body{transform:scaleX(.8)}@keyframes bottleIdle{0%,100%{transform:translateY(0) rotate(-.4deg)}50%{transform:translateY(-4px) rotate(.4deg)}}@keyframes glassWiggle{0%,100%{transform:rotate(0)}50%{transform:rotate(1.2deg)}}@keyframes glint{0%,65%,100%{opacity:.2;transform:scale(.6)}75%{opacity:.9;transform:scale(1.3)}}.board{background:linear-gradient(180deg,#06283210,#031c2888);border-color:#e9c77b28;border-radius:28px;box-shadow:inset 0 -30px 45px #00151c50}.board:before{content:"";position:absolute;left:5%;right:5%;bottom:16px;height:1px;background:#e9c77b35;box-shadow:0 4px 12px #001}.game-top{background:#062832cf;border-color:#e9c77b30}.help-row button{border-color:#e9c77b35}.tile{border-color:#e9c77b45;overflow:hidden}.tile:after{content:"";position:absolute;right:16px;bottom:12px;width:30px;height:30px;border:1px solid #e9c77b22;transform:rotate(45deg);pointer-events:none}.tile-icon{display:inline-block;filter:drop-shadow(0 3px 4px #0016);transform:rotate(-5deg)}.tile:nth-child(2n) .tile-icon{transform:rotate(5deg)}.brand h1{text-shadow:0 3px 0 #08343c,0 8px 24px #001}.brand p{color:#f5d68e}
/* Ice covers only the top layer and always leaves the glass readable. */
.ice-badge{inset:auto 18% auto;height:26px;bottom:calc(9% + (var(--fill) - 1)*26px);border:1px solid #d8f7ffb8;border-radius:var(--radius-sm);background:#d8f7ff1f;color:#f2fcff;font-size:var(--text-xs);font-weight:600;text-shadow:0 1px 3px #064353;box-shadow:inset 0 0 5px #e9fcff38;pointer-events:none;backdrop-filter:none}.capacity-5 .ice-badge,.capacity-6 .ice-badge,.capacity-7 .ice-badge{left:16%;right:16%}
/* Splash, main menu atmosphere and celebration. */
.sound-toggle{position:fixed;z-index:45;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:48px;height:48px;min-height:48px;padding:0;border:1px solid #e9c77b88;border-radius:50%;background:#0a3541ed;color:#ffe3a0;font-size:24px;box-shadow:0 6px 20px #0017;backdrop-filter:blur(10px)}.sound-toggle.muted{color:#c1d0d1;border-color:#ffffff35}
.loading{background:#062832}.loading>img{inset:0;width:100%;height:100%;object-fit:contain;opacity:.82;padding:12px}.loading-brand{padding:16px 24px;border-radius:24px;background:#052a35c9;backdrop-filter:blur(8px)}.menu-screen{position:relative;isolation:isolate}.ambient-bubbles{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.ambient-bubbles i{position:absolute;bottom:-30px;width:12px;height:12px;border:1px solid #a9f7ed55;border-radius:50%;animation:ambientRise 9s linear infinite}.ambient-bubbles i:nth-child(1){left:8%;animation-delay:-2s}.ambient-bubbles i:nth-child(2){left:22%;width:7px;height:7px;animation-delay:-6s}.ambient-bubbles i:nth-child(3){right:16%;width:16px;height:16px;animation-delay:-4s}.ambient-bubbles i:nth-child(4){right:5%;width:8px;height:8px;animation-delay:-8s}.ambient-bubbles i:nth-child(5){left:48%;width:6px;height:6px;animation-delay:-1s}@keyframes ambientRise{to{transform:translateY(-85vh) translateX(20px);opacity:0}}.brand-rule{display:block;width:64px;height:2px;margin:0 auto 14px;background:#e9c77b;box-shadow:0 0 12px #e9c77b55}.brand h1{letter-spacing:.01em}.brand p{letter-spacing:4px}.tile-kicker{font-size:12px;letter-spacing:2px;color:#f0ce83}.tile{transition:border-color .2s,background-color .2s}.tile:hover{background-color:#174b54}.tile:after{animation:menuDiamond 7s ease-in-out infinite}@keyframes menuDiamond{50%{transform:rotate(135deg);opacity:.35}}.small-tile{transition:border-color .2s,background-color .2s}.small-tile:hover{border-color:#e9c77b77;background:#12404a}.confetti{overflow:hidden}.confetti i{top:-8vh;animation-name:celebrationFall;animation-timing-function:cubic-bezier(.2,.65,.45,1);box-shadow:0 0 5px #fff3}.confetti .confetti-1{border-radius:50%}.confetti .confetti-2{clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%)}.confetti .confetti-3{transform:rotate(45deg);border-radius:2px}@keyframes celebrationFall{0%{opacity:0;transform:translate(0,-5vh) rotate(0)}8%{opacity:1}100%{opacity:.95;transform:translate(var(--drift),115vh) rotate(var(--spin))}}.modal:has(.stars){border-color:#f5cf65;background:linear-gradient(145deg,#174c56,#132c48);animation:victoryPop .45s ease-out;box-shadow:0 0 0 5px #ffd16620,0 24px 70px #0018}.modal:has(.stars) h2{color:#fff0ba}.stars .earned{filter:drop-shadow(0 0 8px #ffd166)}@keyframes victoryPop{from{opacity:0;transform:scale(.82) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}.award span{display:block;margin-top:5px;line-height:1.35;color:#e3eeee}
/* Premium victory stage with deliberate breathing room. */
.victory-modal{padding:var(--space-8)}.victory-emblem{height:120px;margin-bottom:var(--space-4)}.victory-modal h2{margin:var(--space-2) 0}.victory-modal .stars{margin:var(--space-4) 0;font-size:52px}.victory-result{margin-top:var(--space-5)}.victory-modal .victory-verdict{margin:var(--space-2) 0 var(--space-6)}.victory-modal>p:not(.victory-result):not(.victory-verdict){margin:var(--space-4) 0;line-height:1.6}.victory-modal .modal-actions{gap:var(--space-3);margin-top:var(--space-8);padding-top:var(--space-2)}.victory-modal .action.primary{box-shadow:0 3px 0 #a76e28;margin-bottom:var(--space-1)}
/* Premium victory stage. */
.modal-back:has(.victory-modal){background:#001019e8;animation:victoryBackdrop .5s ease-out}.victory-modal{text-align:center;border:1px solid #ffe49a99;background:radial-gradient(circle at 50% 0,#266b72 0,#103e49 38%,#092c38 78%);box-shadow:0 0 0 6px #ffd16612,0 28px 90px #000a;overflow:auto}.victory-modal .close{color:#fff0c6;background:#092c3899}.victory-emblem{position:relative;width:104px;height:132px;margin:0 auto var(--space-2);animation:emblemArrive .65s cubic-bezier(.2,.8,.25,1) both}.victory-emblem>span{position:absolute;inset:10px -18px;border:1px solid #ffe49a66;border-radius:50%;animation:victoryRing 5s linear infinite}.victory-emblem>span:after{content:"";position:absolute;inset:8px;border:1px dashed #55ead966;border-radius:50%}.victory-emblem img{position:relative;width:100%;height:100%;object-fit:contain;opacity:.9;filter:drop-shadow(0 10px 16px #0018)}.victory-emblem b{position:absolute;right:-4px;bottom:18px;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--gold);color:#15353b;font:700 24px/1 Manrope,sans-serif;border:3px solid #fff0bd}.victory-modal h2{font-size:clamp(38px,8vw,52px);margin:0;color:#fff1bd;text-shadow:0 3px 0 #8b5425}.victory-modal .stars{margin:var(--space-2) 0;font-size:58px;line-height:1;letter-spacing:4px;color:#456068}.victory-modal .stars .earned{animation:starAward .65s cubic-bezier(.2,.8,.25,1) both;color:#ffd86f;filter:drop-shadow(0 4px 5px #8b542588)}.victory-modal .stars .earned:nth-child(1){animation-delay:.15s}.victory-modal .stars .earned:nth-child(2){animation-delay:.4s}.victory-modal .stars .earned:nth-child(3){animation-delay:.65s}.victory-result{display:flex;align-items:baseline;justify-content:center;gap:var(--space-2);margin:var(--space-3) 0 0;color:var(--ink)}.victory-result strong{font-size:36px;line-height:1;color:#fff0b0;font-variant-numeric:tabular-nums}.victory-result span{font-size:var(--text-sm);color:var(--muted)}.victory-modal .victory-verdict{color:#75f2d8;font-weight:600;margin:var(--space-1) 0 var(--space-3)}.victory-modal>p:not(.victory-result):not(.victory-verdict){margin:var(--space-2) 0;font-size:var(--text-sm)}.victory-modal .modal-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-4)}.victory-modal .action{padding:var(--space-3);background:#174853;border-color:#ffffff20}.victory-modal .action.primary{grid-column:1/-1;min-height:56px;background:var(--gold);font-size:var(--text-base);box-shadow:0 5px 0 #a76e28}.confetti .burst{top:88vh;animation-name:celebrationBurst;animation-timing-function:cubic-bezier(.12,.65,.35,1)}@keyframes victoryBackdrop{from{opacity:0}}@keyframes emblemArrive{from{opacity:0;transform:translateY(24px) rotate(-8deg) scale(.7)}to{opacity:1;transform:none}}@keyframes victoryRing{to{transform:rotate(360deg)}}@keyframes starAward{0%{opacity:0;transform:scale(2.4) rotate(-25deg)}65%{opacity:1;transform:scale(.88) rotate(5deg)}100%{opacity:1;transform:scale(1) rotate(0)}}@keyframes celebrationBurst{0%{opacity:0;transform:translate(0,0) rotate(0)}10%{opacity:1}55%{transform:translate(var(--burst-x),var(--burst-y)) rotate(var(--spin))}100%{opacity:1;transform:translate(var(--burst-x),20vh) rotate(var(--spin))}}
@media(max-width:520px){#app{padding:max(6px,env(safe-area-inset-top)) var(--space-2) max(60px,env(safe-area-inset-bottom))}.game-screen.compact-board{--mobile-base:clamp(24px,calc((100dvh - 500px)/6),50px);--mobile-layer:clamp(4px,calc((100dvh - 560px)/21),20px)}.game-top{padding:4px;gap:4px}.game-top .pill{padding:4px 6px;min-height:40px}.game-top .icon-btn{min-width:40px;min-height:40px;padding:4px}.game-title strong{font-size:16px}.mode-line{margin:4px 0;font-size:12px}.meter-wrap{margin:6px auto}.board{gap:8px 4px;min-height:0;padding:8px 2px}.compact-board #board .bottle-wrap{width:52px}.compact-board #board .bottle,.compact-board #board .bottle.capacity-5,.compact-board #board .bottle.capacity-6,.compact-board #board .bottle.capacity-7{width:52px;height:calc(var(--mobile-base) + var(--capacity)*var(--mobile-layer));transform-origin:50% 85%}.compact-board #board .bottle .body{height:calc(var(--capacity)*var(--mobile-layer) + 4px);bottom:7%}.compact-board #board .layer{height:var(--mobile-layer);flex-basis:var(--mobile-layer)}.compact-board #board .bottle-index{font-size:10px;line-height:12px;min-height:12px;margin-top:0}.bottle.selected{transform:translateY(-12px)}.help-row{position:static;margin-top:4px;padding:4px;gap:4px}.game-screen .help-row{flex-wrap:nowrap}.help-row button{padding:4px 6px;min-height:40px;font-size:11px;white-space:nowrap}.menu-grid{gap:var(--space-3)}.tile{padding:var(--space-4)}.bottom-grid{gap:var(--space-2)}.small-tile{font-size:var(--text-xs)}.award-grid{grid-template-columns:repeat(3,1fr)}}@media(max-height:480px) and (orientation:landscape) and (pointer:coarse){.rotate{position:fixed;z-index:200;inset:0;background:#082c38;display:grid;place-content:center;text-align:center;gap:20px}.rotate img{width:120px;margin:auto;border-radius:25px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
/* Local Cyrillic game typography: playful titles, readable interface. */
body,button,input,select{font-family:Manrope,"Segoe UI",sans-serif}.loading-brand,.brand h1,.game-title strong,.modal h2{font-family:Neucha,"Comic Sans MS",cursive;font-weight:400}.loading-brand{font-size:clamp(38px,8vw,70px)}.loading-brand small{font-family:Manrope,"Segoe UI",sans-serif;font-weight:600}.brand h1{line-height:1.05}.modal h2{line-height:1.15}.tile strong{font-weight:600;letter-spacing:-.015em}.stat b,.meter-info,.level{font-variant-numeric:tabular-nums}
