:root{--mlv-night-950:#070817;--mlv-night-900:#0c1026;--mlv-night-850:#111735;--mlv-night-800:#171d40;--mlv-violet:#6f5ca8;--mlv-violet-soft:#9886c8;--mlv-moon:#f8edc9;--mlv-paper:#f3e4b9;--mlv-paper-deep:#dfc78f;--mlv-ink:#2c211c;--mlv-ink-soft:#5f4a3a;--mlv-gold:#d9b45b;--mlv-gold-light:#f1d98d;--mlv-amber:#e6a84e;--mlv-green:#334f3d;--mlv-font-display:"Cormorant Garamond", Georgia, serif;--mlv-font-story:"Crimson Pro", Georgia, serif;--mlv-font-ui:Inter, ui-sans-serif, system-ui, sans-serif}*{box-sizing:border-box}:root{color:var(--mlv-moon);background:var(--mlv-night-950);font-family:var(--mlv-font-ui);font-synthesis:none;--panel:#111735eb;--panel-soft:#171d40d1;--line:#f1d98d40;--shadow:0 24px 70px #0000006b}body{background:radial-gradient(circle at 10% 10%, #6f5ca84d, transparent 32rem), radial-gradient(circle at 88% 18%, #d9b45b1f, transparent 26rem), linear-gradient(155deg, var(--mlv-night-950), var(--mlv-night-900) 52%, #17132f);min-width:320px;min-height:100vh;margin:0}body:before{content:"";pointer-events:none;opacity:.4;background-image:radial-gradient(circle,#f8edc9bf 0 1px,#0000 1.4px);background-size:83px 83px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 75%);mask-image:linear-gradient(#000,#0000 75%)}button{font:inherit}button:focus-visible,a:focus-visible{outline:3px solid var(--mlv-gold-light);outline-offset:3px}.page-shell{width:min(1180px,100% - 32px);margin:0 auto;padding:22px 0 30px;position:relative}.brand-header{border-bottom:1px solid var(--line);grid-template-columns:minmax(170px,240px) 1fr auto;align-items:center;gap:24px;padding:0 4px 18px;display:grid}.brand-link img{width:100%;height:auto;display:block}.title-lockup{justify-content:center;align-items:center;gap:12px;display:flex}.crescent{filter:drop-shadow(0 0 14px #f1d98d40);width:42px;height:42px}.title-lockup p,.eyebrow{color:var(--mlv-gold-light);letter-spacing:.15em;text-transform:uppercase;margin:0 0 3px;font-size:.72rem;font-weight:800}.title-lockup h1{font:700 clamp(2rem, 4vw, 3.2rem)/.9 var(--mlv-font-display);color:var(--mlv-moon);margin:0}.header-note{max-width:210px;color:var(--mlv-paper-deep);text-align:right;font-family:var(--mlv-font-story);margin:0;font-style:italic}.mode-bar{justify-content:center;align-items:center;gap:12px;padding:18px 0;display:flex}.request-tabs{justify-content:center;gap:10px;display:flex}.request-tab{border:1px solid var(--line);color:var(--mlv-paper);cursor:pointer;background:#0c1026b8;border-radius:999px;padding:9px 14px}.request-tab span{width:22px;height:22px;color:var(--mlv-gold-light);background:#d9b45b24;border-radius:50%;place-items:center;margin-right:7px;display:inline-grid}.request-tab[data-current=true]{border-color:var(--mlv-gold);background:#6f5ca847}.request-tab:disabled{opacity:.42;cursor:not-allowed}.utility-controls{border-left:1px solid var(--line);gap:8px;padding-left:12px;display:flex}.utility-controls button{color:var(--mlv-gold-light);cursor:pointer;background:#4530686b;border:1px solid #f1d98d6b;border-radius:999px;padding:9px 14px;font-weight:800}.utility-controls button:hover{background:#6f5ca880}.utility-controls button:disabled{opacity:.42;cursor:wait}.game-layout{grid-template-columns:minmax(260px,330px) minmax(0,1fr);align-items:start;gap:22px;display:grid}.request-card,.board-panel{border:1px solid var(--line);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:24px}.request-card{color:var(--mlv-ink);background:linear-gradient(160deg,#f3e4b9f7,#dfc78ff0);padding:24px}.request-card .eyebrow{color:#6b4a22}.request-card h2{font:700 2rem/1 var(--mlv-font-display);margin:0}.request-card>p:not(.eyebrow):not(.instructions){color:var(--mlv-ink-soft);font-family:var(--mlv-font-story);font-size:1.08rem}.targets{gap:9px;margin:22px 0;display:grid}.peaceful-score{color:var(--mlv-moon);background:linear-gradient(135deg, var(--mlv-violet), #4c3a78);border-radius:15px;justify-content:space-between;align-items:baseline;gap:16px;margin:18px 0 12px;padding:14px 16px;display:flex}.peaceful-score span{letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:900}.peaceful-score strong{font:700 2rem/1 var(--mlv-font-display)}.peaceful-ledger{gap:6px;margin:0}.peaceful-total{grid-template-columns:34px 1fr auto;padding:7px 9px}.peaceful-total .gem{width:29px}.peaceful-total b{font-size:1.05rem}.target{background:#fffceb80;border:1px solid #2c211c29;border-radius:15px;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:9px;display:grid}.target[data-complete=true]{opacity:.58}.target strong,.target small{display:block}.target small{color:var(--mlv-ink-soft);margin-top:2px}.target b{color:#6b4a22;text-align:center;min-width:30px;font-size:1.2rem}.run-stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.run-stats div{text-align:center;background:#2c211c14;border-radius:12px;padding:10px 7px}.run-stats span,.run-stats strong{display:block}.run-stats span{color:var(--mlv-ink-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.67rem;font-weight:800}.run-stats strong{margin-top:3px;font-size:1.1rem}.controls{grid-template-columns:1fr 1fr;gap:9px;margin-top:18px;display:grid}.controls button,.terminal button{color:var(--mlv-ink);cursor:pointer;background:#ffffff73;border:1px solid #2c211c38;border-radius:12px;padding:10px;font-weight:800}.controls button:hover,.terminal button:hover{background:#ffffffbf}kbd{font:700 .72em var(--mlv-font-ui);opacity:.68;border:1px solid;border-radius:4px;padding:1px 4px}.instructions{color:var(--mlv-ink-soft);margin:14px 0 0;font-size:.78rem;line-height:1.55}.board-panel{background:var(--panel);min-width:0;padding:16px;position:relative}.status-strip{min-height:40px;color:var(--mlv-paper);text-align:center;background:#07081785;border:1px solid #0000;border-radius:12px;place-items:center;margin-bottom:12px;padding:8px 14px;transition:border-color .18s,background .18s,box-shadow .18s;display:grid}.status-strip[data-phase=match]{color:#fff8da;background:#453068c7;border-color:#f1d98d94;box-shadow:0 0 22px #d9b45b24}.status-strip[data-phase=fall]{background:#18244ab8;border-color:#99bee252}.board{aspect-ratio:1;background:radial-gradient(circle at 50% 40%,#6f5ca838,#0000 66%),#070817ad;border:1px solid #f1d98d4d;border-radius:20px;grid-template-columns:repeat(8,minmax(0,1fr));gap:clamp(4px,.7vw,8px);width:min(100%,680px);margin:0 auto;padding:clamp(8px,1.2vw,14px);display:grid;position:relative}.board[data-busy=true] .gem-cell{cursor:wait;pointer-events:none}.board-row{display:contents}.gem-cell{cursor:pointer;background:#f8edc909;border:1px solid #f8edc914;border-radius:13px;place-items:center;min-width:0;transition:transform .13s,background .13s,border-color .13s;display:grid;position:relative}.gem-cell:hover{background:#f8edc917;transform:translateY(-1px)}.gem-cell[data-selected=true]{border-color:var(--mlv-gold-light);background:#d9b45b2e;box-shadow:inset 0 0 0 2px #d9b45b40}.gem-cell[data-matched=true]{z-index:1;background:radial-gradient(circle,#fff6bc4d,#d9b45b14 66%);border-color:#fff4b5eb;box-shadow:inset 0 0 0 2px #fff2a652,0 0 18px #f2d3706b}.gem-cell[data-hint=true]:before,.gem-cell[data-hint=true]:after{content:"";border-color:var(--mlv-gold-light);pointer-events:none;width:13px;height:13px;position:absolute}.gem-cell[data-hint=true]:before{border-top:3px solid;border-left:3px solid;top:5px;left:5px}.gem-cell[data-hint=true]:after{border-bottom:3px solid;border-right:3px solid;bottom:5px;right:5px}.gem{aspect-ratio:1;color:#070817d1;filter:drop-shadow(0 5px 4px #00000047);place-items:center;width:min(72%,58px);display:grid;position:relative}.gem--matched{animation:.52s cubic-bezier(.2,.72,.24,1) both gem-match-flare}.board:not([data-cascade="0"]):not([data-cascade="1"]) .gem--matched{animation-duration:.64s}.gem--falling{animation:gem-fall calc(.36s + var(--fall-rows) * 45ms) cubic-bezier(.2, .72, .24, 1) both}.board[data-reshuffled=true] .gem{animation:.52s cubic-bezier(.2,.72,.24,1) both gem-shuffle-settle}@keyframes gem-fall{0%{opacity:.2;transform:translateY(calc(var(--fall-rows) * -105%))}72%{opacity:1;transform:translateY(4%)}to{opacity:1;transform:translateY(0)}}@keyframes gem-match-flare{0%{opacity:1;filter:brightness()drop-shadow(0 5px 4px #00000047);transform:scale(1)}38%{opacity:1;filter:brightness(1.28)drop-shadow(0 0 13px #ffef9ae6);transform:scale(1.14)}68%{opacity:1;filter:brightness(1.18)drop-shadow(0 0 18px #ffef9ad1);transform:scale(1.07)}to{opacity:0;filter:brightness(1.5)drop-shadow(0 0 22px #fff7c7f5);transform:scale(.18)rotate(8deg)}}@keyframes gem-shuffle-settle{0%{opacity:.3;transform:scale(.78)rotate(-5deg)}75%{opacity:1;transform:scale(1.04)rotate(1deg)}to{opacity:1;transform:scale(1)rotate(0)}}.gem:after{content:attr(data-mark);z-index:1;font:900 clamp(.78rem, 2.1vw, 1.35rem)/1 var(--mlv-font-ui);text-shadow:0 1px #ffffff73;position:relative}.gem:before{content:"";clip-path:polygon(12% 8%,70% 0,96% 34%,70% 68%,24% 85%,0 45%);background:#ffffff2e;position:absolute;inset:0}.gem--moon{background:linear-gradient(135deg,#fff8da,#b8c4d8 70%,#8793b2);border-radius:50%;box-shadow:inset -8px -8px 12px #3a415e47}.gem--lantern{clip-path:polygon(50% 0,94% 35%,76% 92%,24% 92%,6% 35%);background:linear-gradient(135deg,#fff1a6,#d99a2b 64%,#9c5d18)}.gem--twilight{clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);background:linear-gradient(135deg,#d9c3ff,#7b5bb8 62%,#412c79)}.gem--river{clip-path:polygon(50% 0,90% 42%,76% 94%,24% 94%,10% 42%);background:linear-gradient(135deg,#c7efff,#4e9cc9 62%,#285984)}.gem--moss{background:linear-gradient(135deg,#c8e7ad,#4f8959 62%,#294f36);border-radius:76% 15%}.gem--rose{clip-path:polygon(50% 0,62% 27%,92% 18%,73% 47%,100% 63%,67% 68%,65% 100%,47% 76%,20% 96%,29% 64%,0 50%,34% 42%);background:linear-gradient(135deg,#ffd1d9,#c86d88 60%,#853c5a)}.gem--illustrated{clip-path:none;box-shadow:none;background:0 0;border-radius:0}.gem--illustrated:before,.gem--illustrated:after{display:none}.gem-art{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;width:100%;height:100%;display:block}.target .gem{width:36px}.target .gem:after{font-size:.8rem}.cascade-ribbon{z-index:2;color:#fff8da;text-align:center;pointer-events:none;background:linear-gradient(135deg,#463069f0,#181e41f0);border:1px solid #ffee97b8;border-radius:999px;gap:3px;min-width:min(250px,62%);padding:10px 24px;animation:.52s both cascade-ribbon-in;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 34px #0000006b,0 0 28px #d9b45b38}.cascade-ribbon strong{font:700 clamp(1.25rem, 3vw, 2rem)/1 var(--mlv-font-display);letter-spacing:.03em}.cascade-ribbon span{color:var(--mlv-gold-light);letter-spacing:.13em;text-transform:uppercase;font-size:.72rem;font-weight:900}.board:not([data-cascade="0"]):not([data-cascade="1"]) .cascade-ribbon{animation-duration:.64s}@keyframes cascade-ribbon-in{0%{opacity:0;transform:translate(-50%,-44%)scale(.9)}24%,72%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-54%)scale(1.03)}}.terminal{z-index:3;border:1px solid var(--mlv-gold);color:var(--mlv-ink);text-align:center;background:#f3e4b9f7;border-radius:20px;place-content:center;padding:30px;display:grid;position:absolute;inset:72px 28px 28px;box-shadow:0 18px 50px #00000073}.terminal h2{font:700 2.2rem/1 var(--mlv-font-display);margin:0}.terminal p:not(.eyebrow){color:var(--mlv-ink-soft)}.terminal-actions{justify-content:center;gap:10px;display:flex}.terminal button.primary{color:var(--mlv-moon);background:var(--mlv-violet)}.info-dialog-backdrop{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#040614d1;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.info-dialog{width:min(940px,100%);max-height:min(88vh,880px);color:var(--mlv-ink);background:linear-gradient(155deg,#f8eeccfc,#e1c992fc);border:1px solid #f1d98d94;border-radius:24px;padding:clamp(20px,4vw,36px);overflow:auto;box-shadow:0 28px 90px #000000ad}.info-dialog-heading{justify-content:space-between;align-items:start;gap:20px;display:flex}.info-dialog-heading .eyebrow{color:#6b4a22}.info-dialog h2{font:700 clamp(2rem, 5vw, 3.2rem)/1 var(--mlv-font-display);margin:0}.info-dialog-heading button{color:var(--mlv-ink);cursor:pointer;background:#ffffff7a;border:1px solid #2c211c47;border-radius:999px;flex:none;padding:9px 15px;font-weight:800}.info-dialog-intro{max-width:72ch;color:var(--mlv-ink-soft);font:1.04rem/1.55 var(--mlv-font-story);margin:12px 0 24px}.guide-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.guide-card{background:#fffceb85;border:1px solid #2c211c2b;border-radius:18px;grid-template-columns:74px 1fr;align-items:start;gap:14px;padding:15px;display:grid}.guide-gem{background:#4530681a;border-radius:15px;place-items:center;min-height:74px;display:grid}.guide-gem .gem{width:64px}.guide-copy h3{font:700 1.35rem/1.1 var(--mlv-font-display);margin:1px 0 2px}.guide-role{color:#6b4a22;letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:900}.guide-copy>p:not(.guide-role){color:var(--mlv-ink-soft);font-family:var(--mlv-font-story);margin:9px 0;line-height:1.45}.guide-copy a{color:#583d72;font-weight:900}.stats-overview{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 24px;display:grid}.stats-overview div{color:var(--mlv-moon);background:linear-gradient(135deg, var(--mlv-violet), #4c3a78);text-align:center;border-radius:15px;padding:14px}.stats-overview dt{letter-spacing:.08em;text-transform:uppercase;min-height:2.4em;font-size:.69rem;font-weight:900}.stats-overview dd{font:700 clamp(1.5rem, 4vw, 2.25rem)/1 var(--mlv-font-display);margin:6px 0 0}.stats-gem-heading{font:700 1.4rem/1 var(--mlv-font-display);margin:0 0 10px}.stats-gem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.stats-gem{background:#fffceb80;border:1px solid #2c211c29;border-radius:15px;grid-template-columns:48px 1fr auto;align-items:center;gap:10px;padding:10px 12px;display:grid}.stats-gem .gem{width:42px}.stats-gem strong,.stats-gem small{display:block}.stats-gem small{color:var(--mlv-ink-soft);margin-top:2px}.stats-gem b{color:#6b4a22;font-size:1.25rem}.scoring-dialog{width:min(760px,100%)}.scoring-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.scoring-value{color:var(--mlv-moon);background:linear-gradient(135deg, var(--mlv-violet), #4c3a78);text-align:center;border-radius:17px;gap:3px;padding:17px 12px;display:grid}.scoring-value span,.scoring-value small{letter-spacing:.09em;text-transform:uppercase;font-size:.72rem;font-weight:900}.scoring-value strong{font:700 clamp(2rem, 6vw, 3rem)/1 var(--mlv-font-display)}.scoring-value small{color:var(--mlv-gold-light)}.scoring-rule{background:#fffceb85;border:1px solid #2c211c2b;border-radius:18px;padding:18px}.scoring-rule .eyebrow{color:#6b4a22}.scoring-rule h3{font:700 1.45rem/1.1 var(--mlv-font-display);margin:3px 0 8px}.scoring-rule>p:not(.eyebrow){color:var(--mlv-ink-soft);font-family:var(--mlv-font-story);margin:0 0 15px;line-height:1.5}.scoring-example{background:#4530681a;border-radius:13px;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:7px 16px;padding:13px 15px;display:grid}.scoring-example span{color:var(--mlv-ink-soft)}.scoring-example strong{color:#583d72;font-size:1.2rem}.scoring-example b{color:#6b4a22;text-align:right;border-top:1px solid #2c211c26;grid-column:1/-1;padding-top:8px}.scoring-note{color:var(--mlv-ink-soft);margin:14px 0 0;font-size:.84rem;line-height:1.45}footer{color:var(--mlv-paper-deep);font:italic .9rem var(--mlv-font-story);flex-wrap:wrap;justify-content:center;gap:8px 12px;padding-top:18px;display:flex}@media (width<=820px){.brand-header{grid-template-columns:150px 1fr}.header-note{display:none}.game-layout{grid-template-columns:1fr}.request-card{order:2}.board-panel{order:1}.request-card{grid-template-columns:1fr 1fr;gap:12px 18px;display:grid}.request-card>.eyebrow,.request-card>h2,.request-card>p,.request-card>.controls,.request-card>.instructions,.peaceful-card>.peaceful-score,.peaceful-card>.peaceful-ledger{grid-column:1/-1}.targets,.run-stats,.peaceful-score{margin:0}.peaceful-ledger{align-content:start}}@media (width<=520px){.page-shell{width:min(100% - 16px,1180px);padding-top:12px}.brand-header{grid-template-columns:118px 1fr;gap:10px;padding-bottom:12px}.title-lockup{justify-content:flex-end;gap:6px}.crescent{width:30px;height:30px}.title-lockup h1{font-size:1.85rem}.mode-bar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px 0;display:grid}.request-tabs{scrollbar-width:none;justify-content:flex-start;overflow-x:auto}.request-tabs::-webkit-scrollbar{display:none}.request-tab{flex:none;padding:7px 10px;font-size:.82rem}.request-tab span{width:19px;height:19px}.utility-controls{gap:5px;padding-left:8px}.utility-controls button{padding:7px 9px;font-size:.76rem}.game-layout{gap:12px}.board-panel{border-radius:16px;padding:8px}.status-strip{min-height:35px;margin-bottom:7px;font-size:.78rem}.board{border-radius:13px;gap:3px;padding:5px}.gem-cell{border-radius:8px}.gem{width:75%}.gem:after{font-size:clamp(.64rem,3.8vw,1rem)}.cascade-ribbon{min-width:min(215px,70%);padding:8px 18px}.request-card{border-radius:18px;grid-template-columns:1fr;padding:18px}.request-card>*{grid-column:1!important}.run-stats{margin-top:4px}.peaceful-score{margin:4px 0}.terminal{padding:18px;inset:52px 14px 14px}.terminal h2{font-size:1.8rem}.terminal-actions{flex-direction:column}.info-dialog-backdrop{align-items:end;padding:8px}.info-dialog{border-radius:20px;max-height:92vh;padding:18px}.info-dialog-heading{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.info-dialog-heading>div{min-width:0}.info-dialog-heading h2{font-size:clamp(2rem,10vw,2.55rem)}.info-dialog-heading button{padding:8px 11px}.info-dialog-intro{margin-bottom:16px;font-size:.96rem}.guide-grid,.stats-gem-grid{grid-template-columns:1fr}.guide-card{grid-template-columns:58px 1fr;padding:12px}.guide-gem{min-height:58px}.guide-gem .gem{width:50px}.stats-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-overview dt{min-height:0}.scoring-values{gap:7px}.scoring-value{padding:13px 7px}.scoring-rule{padding:15px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
