/* Elos · jardim ilustrado, peças nítidas e efeitos curtos por transform/opacity. */
:root{--rose:#efc0d4;--ivory:#ffeddb;--night:#2e2045;--lilac:#c6b2e5;--soft-gold:#d9b899}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}.elos-game{background:#251934}.scenery{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#29182c22,#21142e88 65%,#21132de8),url('assets/jardim-celestial.webp') center/cover no-repeat}.scenery::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#25183245,transparent 30%,transparent 70%,#25183245)}
.elos-game .topbar{width:min(1070px,100%)}.elos-stage{display:grid;grid-template-columns:minmax(90px,180px) minmax(0,560px) minmax(90px,160px);grid-template-areas:'. brand .' 'luli play nils' '. secrets .' '. footer .';column-gap:10px;align-items:start;justify-content:center;margin:0 auto;max-width:1050px;padding:0 15px max(20px,env(safe-area-inset-bottom,0px))}.elos-brand{grid-area:brand;text-align:center;margin:0 0 10px}.elos-brand h1{margin:0}.elos-brand img{display:block;width:min(310px,90%);height:auto;margin:auto}.elos-brand p{font:italic .93rem/1.3 var(--serif);color:#ffebdf;margin:2px 0 0;text-shadow:0 2px 6px #201226}
.luli-scene{grid-area:luli;margin:0;align-self:center;padding-bottom:100px}.luli-vignette{position:relative;display:block;width:100%;padding:0;background:none;border:0;aspect-ratio:3/4;transform-origin:50% 85%}.luli-vignette img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .2s}.luli-celebra{opacity:0}.luli-vignette.celebrating .luli-celebra{opacity:1}.luli-vignette.celebrating .luli-idle{opacity:0}.luli-scene p,.nils-scene p{text-align:center;font:italic .94rem/1.4 var(--serif);color:#f6d3e4;text-shadow:0 2px 4px #241526;margin:12px -6px}.nils-scene{grid-area:nils;align-self:center;padding-bottom:140px}.nils-pedestal{position:relative;display:block;width:130px;max-width:95%;margin:0 auto;padding:0 12px 12px;background:none;border:0;transform-origin:50% 90%}.nils-pedestal img{position:relative;display:block;width:100%;z-index:2;transform-origin:50% 90%;animation:cat-breathe 5s ease-in-out infinite}.pedestal{position:absolute;bottom:0;left:0;width:100%;height:22%;border-radius:50% 50% 16px 16px;border:1px solid #d9bca9;background:radial-gradient(ellipse at 50% 0,#d0b5cf88,transparent 80%),linear-gradient(90deg,#61445f,#95727f,#543650);box-shadow:inset 0 -5px 0 #2e1c4166}.crystal-glow{position:absolute;left:33%;top:15%;width:36%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#f0ccffcc,#bd8bff66 45%,transparent 70%);opacity:0;z-index:4;pointer-events:none}.casting .crystal-glow{animation:crystal-cast .8s ease-out}.casting img{animation:cat-cast .65s ease-out}.luli-vignette:focus-visible,.nils-pedestal:focus-visible{outline-offset:0;border-radius:20px}
.play-panel{grid-area:play;min-width:0;position:relative;border:1px solid #d0aaa0aa;border-radius:26px 26px 23px 23px;background:linear-gradient(140deg,#62405de8,#3b294ce8 55%,#302342ed);box-shadow:inset 0 0 0 4px #e4bcc20c,0 14px 30px #180d253f;padding:13px 11px 12px}.journey-bar{display:flex;align-items:center;gap:12px;padding:0 9px}.phase-label{width:46px;flex:none;text-align:center;color:#f8e1c8}.phase-label small{display:block;font-size:.5rem;letter-spacing:.18em}.phase-label strong{font:2rem/1.15 var(--serif)}.journey-name{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.journey-name span{font:1.03rem/1.05 var(--serif);color:#f4d6e4}.journey-name small{font-size:.56rem;color:#d9bdce}.help-btn{width:36px;height:36px;flex:none;display:grid;place-items:center;background:none;border:1px solid #d8b3bb65;border-radius:50%;color:#e2bbd4;padding:6px}.help-btn svg{width:20px;height:20px;stroke-width:1.3}.move-medallion{flex:none;min-width:72px;min-height:58px;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:4px 7px;border-radius:15px 15px 22px 22px;background:radial-gradient(ellipse at 50% 0,#d3add644,transparent 80%),#332441;border:1px solid #d6b8b493;box-shadow:inset 0 0 0 3px #e4c6c00e}.move-medallion strong{font:2rem/1 var(--serif);color:#ffe4c9;font-variant-numeric:tabular-nums}.move-medallion small{font-size:.48rem;color:#e6c7d7}.last-moves{border-color:#f6b1bb;background-color:#723c5c}.goals{display:flex;justify-content:center;align-items:stretch;gap:7px;margin:11px 5px 0;min-height:49px}.goal{position:relative;flex:1;max-width:190px;min-width:0;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid #d4acb34d;border-radius:13px;background:#2d1d3c77;padding:4px 6px}.goal-icon{display:flex;align-items:center;justify-content:center;flex:none;width:36px;height:38px}.goal-icon img{object-fit:contain;width:100%;height:100%}.goal-icon svg{fill:none;stroke:#cfb0de;width:25px;height:30px;stroke-width:1.1}.goal-text{display:flex;flex-direction:column;gap:3px;min-width:0}.goal small{font-size:.53rem;line-height:1.2;color:#e4c5d8}.goal strong{font-size:.76rem;font-weight:500;line-height:1.1;font-variant-numeric:tabular-nums;color:#ffe5cd}.goal-check{display:none;position:absolute;right:2px;top:2px;width:15px;height:15px;color:#ffe0c3}.goal-check svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2}.goal.is-complete{background:#71506b70;border-color:#e1bbc6}.goal.is-complete .goal-check{display:block}
.board-frame{position:relative;margin:8px 0 0;padding:5.7%;isolation:isolate}.illustrated-frame{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:5;filter:saturate(.44);opacity:.93}.board-shell{position:relative;aspect-ratio:1;background:#30223c;border-radius:7px;box-shadow:0 0 0 2px #bd9eab60;isolation:isolate}.elos-board,.pieces,.effects{position:absolute;inset:0}.elos-board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));touch-action:none;user-select:none;-webkit-user-select:none;z-index:1;outline:none}.cell{position:relative;display:block;min-width:0;min-height:0;margin:0;padding:0;border:1px solid #b78fa01a;border-radius:3px;background:#74557535;outline-offset:-3px!important}.cell:nth-child(16n+2),.cell:nth-child(16n+4),.cell:nth-child(16n+6),.cell:nth-child(16n+8),.cell:nth-child(16n+9),.cell:nth-child(16n+11),.cell:nth-child(16n+13),.cell:nth-child(16n+15){background:#9b759a25}.cell.is-selected,.cell.is-pressed{background:#e2abc44d;box-shadow:inset 0 0 0 2px #f6ccda}.cell.is-hint{animation:hint-cell 1s ease-in-out infinite;background:#dfcaee40}.cell.is-ground::before{content:'';position:absolute;inset:5%;border:1px solid #d6badb9c;border-radius:50% 20% 50% 20%;background:#a77fd21f;pointer-events:none}.lock-overlay{display:none;position:absolute;inset:0;z-index:4;background:linear-gradient(135deg,#bcd9ed44,transparent 45%,#c09de744);border:1px solid #d2c3ee99;border-radius:12%;pointer-events:none}.lock-overlay svg{position:absolute;top:0;right:0;width:36%;height:40%;stroke:#f3dff9;fill:#9278b099;stroke-width:1.3}.is-locked .lock-overlay{display:block}.pieces{pointer-events:none;z-index:2;overflow:hidden;border-radius:6px}.gem{position:absolute;top:0;left:0;width:12.5%;height:12.5%;display:grid;place-items:center;transform-origin:50% 50%;pointer-events:none}.gem>img{display:block;width:88%;height:90%;object-fit:contain;transition:transform .1s;pointer-events:none}.gem.is-selected>img{transform:scale(1.09)}.special-mark{position:absolute;inset:7%;display:none;border:1px solid #f5d1dcbf;border-radius:25%;box-shadow:inset 0 0 7px #f6c8ed40}.special-mark svg{position:absolute;bottom:-3%;right:-4%;width:42%;height:42%;fill:#63415b;stroke:#ffead1;stroke-width:1.8;overflow:visible}.gem[data-special]:not([data-special=""]) .special-mark{display:block}.gem[data-special=color] .special-mark{border-radius:50%;border-color:#e1c2ff;background:radial-gradient(circle at 50% 50%,transparent 45%,#f5c6ff35);box-shadow:inset 0 0 10px #e9b8ff6b}.gem[data-special=nova] .special-mark{border-color:#ffbdd8;background:#df77a51c}.effects{z-index:3;overflow:hidden;pointer-events:none}.spell{position:absolute;display:block;width:21%;aspect-ratio:1;border:2px solid #f8dbd5;border-radius:50%;background:radial-gradient(circle,#fff1de55,transparent 67%);pointer-events:none;opacity:0}.spell-nova{width:70%;border-color:#f1a4c5;background:radial-gradient(circle,#ffc2db70,transparent 65%)}.spell-row,.spell-col,.spell-cross{border-radius:0;border:0;width:150%;height:4%;background:linear-gradient(90deg,transparent,#ffebdfb0,transparent);aspect-ratio:auto}.spell-col{width:4%;height:150%}.spell-cross{height:150%;background:linear-gradient(90deg,transparent 48%,#e8d1ffa0 50%,transparent 52%),linear-gradient(0deg,transparent 48%,#e8d1ffa0 50%,transparent 52%)}.spell-wave{width:72%;aspect-ratio:5/3;border-color:#b6dce6;background:radial-gradient(ellipse,#bad8f453,transparent 60%)}.spell-mist{width:57%;border:0;background:radial-gradient(circle,#ebbdff9c,transparent 65%)}.spell-flow{width:48%;border-style:dashed;border-color:#d7bce8}.spell-created{width:20%;border:1px solid #ffe2bc}.spell-color{width:90%;border-color:#e8d5ff}.cascade{position:absolute;left:50%;bottom:2.5%;transform:translate(-50%,5px);z-index:6;pointer-events:none;max-width:88%;padding:4px 12px;border:1px solid #d3a8bf88;border-radius:15px;background:#4e3159f5;font:italic .85rem/1.2 var(--serif);color:#ffe6d2;opacity:0;transition:opacity .1s,transform .1s;text-align:center;white-space:nowrap}.cascade.show{opacity:1;transform:translate(-50%,0)}
.target-bar{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:7px 10px;font-size:.65rem;color:#ffe1ef;border:1px solid #d0aac1;border-radius:12px;background:#805272}.target-bar button{font:inherit;color:#ffe5cb;border:0;border-bottom:1px solid #e4baca;background:none;padding:7px}.elos-status{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;margin-top:1px;min-height:35px}.elos-status p{font-size:.6rem;line-height:1.3;color:#e6c4d8;margin:0;max-width:80%}.elos-status .text-button{font-size:.58rem;min-height:34px}.elos-powers{border-top:1px solid #c49aa43d;margin:3px 3px 0;padding-top:8px}.dock-heading{display:flex;align-items:center;gap:13px;padding:0 10px 8px}.dock-heading span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#c49aa46b,transparent)}.dock-heading h2{margin:0;white-space:nowrap;color:#ebc6d8;font:italic .95rem/1.2 var(--serif)}.elos-power-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.elos-power{position:relative;min-width:0;display:grid;grid-template-columns:25px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;column-gap:6px;row-gap:2px;padding:7px 8px;min-height:59px;border:1px solid #d7b0ad8a;border-radius:17px 13px 18px 13px;background:radial-gradient(ellipse at 10% 20%,#c89bb02b,transparent 80%),linear-gradient(120deg,#75506944,#3f2b50);box-shadow:inset 0 0 0 3px #e4c5bd0b;color:#f1d3df}.elos-power>svg{grid-row:1/3;width:25px;height:25px;fill:none;stroke:#e9bfda;stroke-width:1.2}.elos-power>span{font:500 .61rem/1.25 var(--sans);align-self:end}.elos-power b{display:flex;align-items:center;gap:3px;align-self:start;font:500 .65rem var(--sans);color:#f7d8b4}.elos-power b svg{height:10px;width:10px;stroke-width:1;fill:#f7d8b422}.elos-power:disabled{opacity:.35}.elos-power:focus-visible{outline-offset:1px}
.elos-secrets{grid-area:secrets;color:#e3c3d8;margin:13px 4px 0;font-size:.68rem;line-height:1.6}.elos-secrets summary{cursor:pointer;min-height:35px;display:flex;align-items:center;justify-content:center;gap:6px;font:italic .86rem var(--serif);color:#efcfdb}.elos-secrets summary::after{content:'+';font:1rem var(--serif)}.elos-secrets[open] summary::after{content:'−'}.recipe-grid{padding:8px 15px;border:1px solid #c6a0b15c;border-radius:15px;background:#34223ee8}.recipe-grid p{margin:9px 0}.recipe-grid b{color:#f4d4db;font-weight:500}.elos-footer{grid-area:footer;color:#dab9ce;font-size:.54rem;text-align:center;line-height:1.5;margin:8px auto}.elos-footer button{font:inherit;color:#e8c7db;min-height:30px;padding:0 4px;background:none;border:0;text-decoration:underline;text-underline-offset:3px}.unlock-art{display:block;width:94px;height:94px;object-fit:contain;margin:10px auto}.elos-game .modal-message{white-space:pre-line}.elos-game .icon-btn:disabled{opacity:.45;cursor:default}
@keyframes hint-cell{50%{box-shadow:inset 0 0 0 2px #ffe2bc}}@keyframes cat-breathe{50%{transform:scale(1.012)}}@keyframes cat-cast{45%{transform:rotate(-4deg) translateY(-4px)}}@keyframes crystal-cast{25%{opacity:1;transform:scale(1.2)}100%{opacity:0;transform:scale(1.9)}}
@media(hover:hover){.elos-power:not(:disabled):hover{background-color:#c391ad35;border-color:#edd0ca}.help-btn:hover{background:#dab0cb22}}
@media(min-width:821px) and (max-height:850px){.elos-brand img{width:245px}.elos-brand{margin-bottom:5px}.elos-stage{grid-template-columns:minmax(90px,170px) minmax(0,505px) minmax(90px,145px)}.elos-brand p{font-size:.8rem}.elos-power{min-height:55px}.luli-scene{padding-bottom:85px}}
@media(max-width:820px){.elos-stage{grid-template-columns:75px minmax(0,1fr) 67px;grid-template-areas:'luli brand nils' 'play play play' 'secrets secrets secrets' 'footer footer footer';max-width:560px;column-gap:4px;padding-inline:10px}.elos-brand{align-self:center;margin:0 0 7px}.elos-brand img{width:min(270px,100%)}.elos-brand p{font-size:.74rem;line-height:1.25;margin-top:3px}.luli-scene,.nils-scene{align-self:end;padding:0;margin:0 0 2px}.luli-scene p,.nils-scene p{display:none}.luli-vignette{width:76px;max-width:100%}.nils-pedestal{width:61px;padding:0 6px 7px;margin:0 auto}.pedestal{border-radius:50% 50% 7px 7px}.play-panel{padding:10px 8px;border-radius:23px}.journey-bar{gap:8px;padding-inline:5px}.goals{margin-top:8px}.journey-name span{font-size:.97rem}.journey-name small{font-size:.52rem}.move-medallion{min-width:65px;min-height:52px}.move-medallion strong{font-size:1.85rem}.phase-label{width:42px}.phase-label strong{font-size:1.85rem}.elos-powers{padding-top:7px}.elos-power-grid{gap:6px}.elos-power{min-height:57px;padding:7px 6px;column-gap:5px;grid-template-columns:22px minmax(0,1fr)}.elos-power>svg{width:22px;height:24px}.elos-power>span{font-size:.57rem}.elos-power b{font-size:.61rem}.elos-secrets{margin-top:9px}.elos-footer{margin-top:0}.board-frame{margin-top:5px}.goal-icon{width:30px;height:34px}.goal{gap:4px;padding:4px}.goal small{font-size:.48rem}.goal strong{font-size:.7rem}}
@media(max-width:380px){.elos-game .topbar{padding-top:max(8px,env(safe-area-inset-top,0px));min-height:52px}.elos-stage{padding-inline:6px;grid-template-columns:62px minmax(0,1fr) 54px}.elos-brand p{font-size:.65rem}.luli-vignette{width:62px}.nils-pedestal{width:51px}.play-panel{padding:9px 6px}.journey-name span{font-size:.86rem}.journey-name small{font-size:.45rem}.journey-bar{gap:6px}.help-btn{width:28px;height:30px;padding:4px}.phase-label{width:35px}.goals{gap:4px;margin-inline:2px}.goal-icon{width:26px}.goal small{font-size:.43rem}.goal strong{font-size:.64rem}.elos-power{padding:6px 5px;gap:2px 4px;min-height:55px;grid-template-columns:19px minmax(0,1fr)}.elos-power>svg{width:19px;height:22px}.elos-power>span{font-size:.52rem}.elos-power b{font-size:.59rem}.elos-status{padding-inline:4px}.elos-status p{font-size:.55rem}.elos-status .text-button{font-size:.54rem}.dock-heading h2{font-size:.88rem}}
@media(prefers-reduced-motion:reduce){.gem img,.luli-vignette img{transition:none}.spell{display:none}.cell.is-hint{animation:none;box-shadow:inset 0 0 0 2px #ffe2bc}.nils-pedestal img{animation:none}.crystal-glow{animation:none!important}.casting .crystal-glow{opacity:.5}}
.board-row{display:contents}
#modal-message{white-space:pre-line}
.result-guides{display:flex;align-items:flex-end;justify-content:center;gap:8px;margin-bottom:9px}.result-guides .modal-cat{margin:0}.modal-luli{display:none;width:105px;height:140px;object-fit:contain}.is-victory .modal-luli{display:block}.is-victory .modal-cat{height:97px;width:79px}.is-over .modal-cat{animation:cat-cast .7s ease-out}
/* Nove fatias da moldura original: toda a área interna permanece livre. */
.board-frame{padding:22px}.board-frame::before{content:'';position:absolute;inset:0;border:22px solid transparent;border-image:url('../atelie/assets/interface/moldura.webp') 140 stretch;pointer-events:none;z-index:5;filter:saturate(.44);opacity:.93}
@media(max-width:820px){.board-frame{padding:18px}.board-frame::before{border-width:18px}}
.audio-credit-link{display:block;margin:9px auto 0;font:.7rem var(--sans);color:#e9cde5;min-height:30px;text-underline-offset:3px}
/* Jardim V12: placas ilustradas, centro livre e magia que dá tempo de acompanhar. */
.elos-power{border:0;border-radius:0;background:transparent url('assets/poder-jardim.webp') center/100% 100% no-repeat;box-shadow:none;padding:13px 18%;min-height:75px;grid-template-columns:22px minmax(0,1fr);column-gap:5px;row-gap:1px}.elos-power>span{font-size:.58rem;text-align:left}.elos-power>svg{color:#edc7dc;stroke-width:1.35;grid-row:1/3}.elos-power b{font-size:.61rem}.elos-power:disabled{opacity:.35;filter:saturate(.5)}.elos-power-grid{gap:3px 5px}.elos-power:not(:disabled):hover{background-color:transparent!important;transform:translateY(-1px)}.gem[data-special=bloom] .special-mark{border-color:#f6c9e8;border-radius:50% 20% 50% 20%;box-shadow:inset 0 0 9px #dfb5ef70}.spell svg{position:absolute;inset:22%;width:56%;height:56%;stroke:#ffe2eb;fill:#e9a0c43b;stroke-width:1;opacity:.85}.spell-row{width:106%;height:7%;background:linear-gradient(90deg,transparent,#e4cbffcc 15%,#fff1e9d9 50%,#e4cbffcc 85%,transparent);border-radius:50%}.spell-col{height:106%;width:7%;background:linear-gradient(0deg,transparent,#e4cbffcc 15%,#fff1e9d9 50%,#e4cbffcc 85%,transparent);border-radius:50%}.spell-nova{width:72%;border-width:3px;border-color:#f6b7d4;background:radial-gradient(circle,#fff1ee88,#df88bd50 30%,transparent 68%);box-shadow:inset 0 0 0 7px #e9a9d31c}.spell-bomb{width:43%;border-width:3px;background:radial-gradient(circle,#ffe8f680,#d9a2ee40 40%,transparent 68%)}.spell-bloom{width:43%;border-radius:38% 13% 38% 13%;border-color:#e6c4f5;background:radial-gradient(circle,#f5d6f587,#cda2df40 40%,transparent 70%)}.spell-bloom svg{inset:14%;width:72%;height:72%;stroke:#ffe2e5;fill:#d4a4e342}.spell-wave{border-width:3px;box-shadow:inset 0 0 0 9px #b9d7f327}.spell-created{border-width:2px;width:24%}
@media(max-width:820px){.elos-power{min-height:67px;padding:12px 16%;grid-template-columns:19px minmax(0,1fr);column-gap:3px}.elos-power>svg{width:19px;height:23px}.elos-power>span{font-size:.53rem}.elos-power b{font-size:.58rem}.elos-power-grid{gap:2px 3px}}
@media(max-width:380px){.elos-power{padding-inline:15%;min-height:65px;grid-template-columns:17px minmax(0,1fr)}.elos-power>svg{width:17px;height:21px}.elos-power>span{font-size:.48rem}.elos-power b{font-size:.54rem}}
.cell.spell-target{background:#e6b7d955;box-shadow:inset 0 0 0 1px #e8c7e5ad}.spell-fragment{position:absolute;left:50%;top:50%;width:9px;height:9px;color:#ffe5e6;display:block}.spell-fragment svg{inset:0!important;width:100%!important;height:100%!important;fill:currentColor;stroke:none}
.elos-power>span{font-family:var(--serif);font-size:.77rem;line-height:1.12}
@media(max-width:500px){.elos-power-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 6px}.elos-power{min-height:65px;padding:12px 16%;grid-template-columns:23px minmax(0,1fr);column-gap:5px}.elos-power>svg{width:23px;height:25px}.elos-power>span{font-size:.75rem}.elos-power b{font-size:.65rem}}
@media(max-width:360px){.elos-power{min-height:63px;grid-template-columns:21px minmax(0,1fr);column-gap:4px}.elos-power>svg{width:21px;height:23px}.elos-power>span{font-size:.69rem}.elos-power b{font-size:.62rem}}

/* Celebração em uma única ilustração; derrota continua com Nils. */
.result-guides .modal-couple{width:auto;height:210px;max-height:27dvh;object-fit:contain;margin:auto}.result-guides .defeat-cat{display:none}.is-over .result-guides .modal-couple{display:none}.is-over .result-guides .defeat-cat{display:block}.result-guides{height:auto;min-height:0}@media(max-width:500px){.result-guides .modal-couple{height:190px;max-height:25dvh}}
.result-guides .modal-couple{display:none}.result-guides .defeat-cat{display:block}.is-victory .result-guides .modal-couple{display:block}.is-victory .result-guides .defeat-cat{display:none}
