/* Rivellune Crystal Glass · Human co-op, Petal & Moonlit themes */
:root{--bg:#f8f2fc;--panel:#ffffffdd;--line:#dfd3e9;--text:#514463;--muted:#82758c;--mint:#589b83;--amber:#9e7da9;--red:#c76e86}
html{scroll-behavior:smooth}
body{margin:0;color:var(--text);background:radial-gradient(ellipse 700px 410px at 12% 0%,#f2dcfa,transparent),radial-gradient(ellipse 700px 430px at 86% 9%,#e5f9ef,transparent),#faf6fb;background-attachment:fixed;font:15px/1.65 system-ui,-apple-system,"Noto Sans SC",sans-serif;min-height:100vh}
main{max-width:980px;padding:24px 18px 50px}
header{justify-content:space-between;background:#ffffff70;padding:12px 16px;border:1px solid var(--line);border-radius:14px;letter-spacing:.04em}
header b{color:#8e70a6;font-size:13px}header>span{display:none}
.glass-theme{margin-left:auto;padding:8px 13px;min-height:40px;border:1px solid #d4c3e4;border-radius:12px;background:#fbf5ff;color:#705c89;font-size:12px;font-weight:850}
footer{margin-top:35px}
.panel,.module{border:1px solid var(--line);background:#ffffffc9;box-shadow:0 8px 23px #53416c0b;border-radius:19px}
.panel{padding:clamp(17px,2.8vw,26px)}
.module{padding:clamp(16px,2.5vw,24px);opacity:1}
.module.done{opacity:.92;background:#edf7f2;border-color:#a6cdb7}
.hero{padding:22px 4px 18px}
.hero-icon{font-size:56px;color:#aa8ac4}
.hero-icon .ui-glyph{width:76px;height:76px}
.eyebrow{color:var(--mint);font-size:11px;letter-spacing:.09em}
h1{font-size:clamp(31px,7vw,50px);line-height:1.2;color:#705786}
h2{color:#6b557d}
h3{color:#715789}
h4{color:#6b557c}
.glass-hero em{font-style:normal;color:#537f73}
.glass-hero{margin-top:18px;border-radius:25px;background:linear-gradient(140deg,#ffffffb4,#f4e8f9a6,#eaf9f2a1);border:1px solid #e3d1e9;padding:clamp(24px,4vw,40px)}
.glass-hero>.muted{max-width:510px;margin:18px auto}
.pill{color:#7b618b;border:1px solid #dccbe6;background:#fbf6ff}
.muted{color:var(--muted)}
.gold{color:#8f698b}
strong,b{overflow-wrap:anywhere}
.btn{border-radius:12px;border:1px solid #c8b0d8;background:linear-gradient(135deg,#f1e4f9,#e7def0);color:#654e7b;box-shadow:0 3px 9px #5942750d;font-size:14px;font-weight:850;padding:12px 17px;min-height:49px}
.btn.mint{background:linear-gradient(125deg,#c8efdb,#ddf6ea);border:1px solid #9ed5b6;color:#2e6652}
.btn.dark{background:#efe5f7;border:1px solid #cab4dd;color:#685379}
.btn.ghost{background:#ffffff7a;border:1px solid #d4c2e2;color:#765b89}
.btn:hover:not(:disabled){filter:brightness(1.018);box-shadow:0 5px 14px #5942751d}
.btn:focus-visible,.glass-stage-nav button:focus-visible{outline:3px solid #74bb9f;outline-offset:3px}
.input{background:#fff;color:#4d4060;border:1px solid #cdb9dc;border-radius:11px;box-shadow:inset 0 1px 3px #00000008}
.input::placeholder{color:#aa9cb2}
.code{background:#faf0ff;border-color:#c8afd9;color:#765c91}
.note{background:#e9f6ef;border-color:#96cfaf;color:#4e7564}
.role{background:#f3ebf7;border-color:#ded0e8}
.opt{background:#f7f1fa;border:1px solid #d9c8e5;color:#6d557d}
.opt.on{background:#e3f5e9;color:#397e63;border-color:#92c6ae}
.life-config{background:#f0f8f3;border-color:#b8dfc5}
.life-btn{background:#d4efe1;border-color:#a5d3b7;color:#336f57}
.life-count{color:#46785e}
.glass-home-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:13px}
.glass-home-cards .panel{margin:0}
.glass-home-cards .btn{width:100%}
.modes{grid-template-columns:repeat(2,minmax(0,1fr))}
.hud{background:#fffffff0;border:1px solid #d7c6e3;box-shadow:0 7px 18px #75617b10;backdrop-filter:blur(12px);padding:12px 7px;top:5px;z-index:10}
.hud .eyebrow{font-size:10px}
.timer{color:#5c937f}
.timer.low{color:#bf617b}
.strike{color:#c06b8a}
.glass-countdown{display:flex;gap:24px;align-items:center;justify-content:center;margin:17px 0 11px;padding:17px 20px;min-height:170px;border:1px solid #d9c9e4;border-radius:24px;background:linear-gradient(115deg,#faf0fc,#e8f7f2,#f6edfd);box-shadow:0 10px 24px #8472a012}
.glass-time-panel{flex:1;min-width:0}
.glass-clock{font-size:clamp(34px,7vw,64px);font-weight:950;letter-spacing:.035em;font-variant-numeric:tabular-nums;color:#6c5681;line-height:1.15;margin:5px 0}
.glass-clock.danger{color:#c35d75}
.glass-bomb{position:relative;width:112px;height:130px;flex:none;display:grid;place-items:end center}
.glass-fuse{position:absolute;top:3px;left:54px;width:16px;height:35px;border:5px solid #705c88;border-left:0;border-bottom:0;border-radius:0 23px 0 0;transform:rotate(-12deg)}
.glass-fuse:before{content:"✦";position:absolute;top:-19px;left:10px;font-size:23px;color:#f2c782}
.glass-face{display:block;position:relative;width:106px;height:100px;border:4px solid #8673a6;border-radius:47% 48% 43% 45%;background:radial-gradient(circle at 38% 27%,#f0e8ff,#bea5d2 85%);box-shadow:inset -10px -12px 17px #6f608329,0 10px 14px #66557721}
.glass-face .eyes:before,.glass-face .eyes:after{content:"";position:absolute;top:40px;width:8px;height:11px;background:#40364f;border-radius:50%}
.glass-face .eyes:before{left:29px}.glass-face .eyes:after{right:29px}
.glass-face .mouth{position:absolute;width:19px;height:10px;left:39px;top:53px;border:3px solid #5c455a;border-top:0;border-radius:0 0 15px 15px}
.glass-face .cheek:before,.glass-face .cheek:after{content:"";position:absolute;top:57px;width:14px;height:8px;border-radius:50%;background:#ed9db1a8}
.glass-face .cheek:before{left:14px}.glass-face .cheek:after{right:14px}
.glass-stage-head{margin-top:11px}
.glass-stage-head h2{margin:4px 0 10px;font-size:clamp(19px,3.8vw,27px)}
.glass-stage-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:15px}
.glass-stage-nav button{min-height:70px;min-width:0;padding:9px 4px;border-radius:12px;border:1px solid #d9cbe4;background:#f9f4fb;color:#786585;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;line-height:1.22}
.glass-stage-nav button>span{font-size:10px;color:#9786a2}
.glass-stage-nav button>b{font-size:11px;white-space:normal}
.glass-stage-nav button.active{border:2px solid #83c6a6;background:#e9f7ed;color:#3d6a58;box-shadow:0 2px 8px #8cc5ab30}
.glass-stage-nav button.solved>span{color:#3f9c72;font-size:16px}
.glass-stage-nav button:disabled{opacity:.51;background:#eee6f0;cursor:not-allowed}
.glass-puzzle-field{border:0;padding:0;margin:0;min-width:0}
.glass-puzzle-field:disabled{opacity:1}
.glass-puzzle-field[disabled] .module button{cursor:default}
.glass-stage-bottom{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:10px 0 17px;flex-wrap:wrap}
.glass-stage-bottom>.btn{margin-left:auto}
.glass-next{display:inline-flex;justify-content:center;align-items:center;text-align:center;min-height:55px;min-width:min(100%,270px);background:linear-gradient(110deg,#b5eccd,#d6f5e5);color:#245b43;border:2px solid #8fc5a8;border-radius:12px;box-shadow:0 5px 14px #7ca18c21;font-size:clamp(14px,2.6vw,17px);font-weight:900;white-space:normal}
.glass-success{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,auto);gap:12px;align-items:center;background:linear-gradient(120deg,#e5f6e9,#f1e6fa);border:2px solid #8fcaae;border-radius:17px;padding:14px 17px;margin:13px 0}
.glass-success strong{font-size:clamp(17px,3vw,22px);color:#376c55}
.glass-success strong .ui-glyph{color:#719c7e}
.glass-success p{color:#5d7d71;font-size:13px}
.glass-success .glass-next{min-width:0;width:100%}
.glass-expert-head h2 .ui-glyph{height:1.15em;width:1.15em;vertical-align:-.2em}
.glass-current{padding:10px 14px;border-radius:12px;background:#e9f7ed;border:1px solid #b8deca;color:#3c755d}
.glass-manual{line-height:1.85}
.glass-manual h3{font-size:19px;margin-bottom:10px}
.glass-manual>p{line-height:1.8}
.manual-intro{background:#f5eefa;border-color:#d9c8e5}
.manual-section{border-bottom-color:#e4d6ee}
.manual-section h4{color:#58967b}
.manual-section li,.manual-section p{font-size:14px}
.example{background:#f5f0fa;border-color:#e0d3e7;color:#584b65}
.example b{color:#87628d}
.quick{background:#eaf7f1;color:#3c6c58;border-color:#76b898}
.glass-guide-note,.glossary{background:#f2f9f5;border:1px solid #b8dbca;border-radius:13px;padding:13px;margin:13px 0}
.glass-manual .symbolrow{background:#f5eefb;border-color:#d7c5e4;font-size:18px;flex-wrap:wrap;gap:5px}
.symbolrow .puzzle-glyph{display:flex;min-width:32px;min-height:49px;padding:4px}
.symbolrow .glyph-svg{width:23px;height:23px}
.symbolrow .glyph-label{font-size:9px}
.glass-manual table{display:table;width:100%;border-collapse:collapse}
.glass-manual td,.glass-manual th{border-color:#dfd1e6}
.glass-manual th{color:#5e8c78}
.glass-manual td .puzzle-glyph{display:inline-flex;margin:auto}
.glass-manual td .glyph-svg{width:23px;height:23px}
.glass-manual td .glyph-label{font-size:9px}
.glass-symbols .symbol{display:flex;justify-content:center;align-items:center;min-height:84px;background:#f1e7f8;border-color:#cbb6dc;color:#594574}
.glass-symbols .symbol.used{background:#d2eddf;border-color:#83bca1}
.glass-icons{display:flex;justify-content:center;align-items:center;gap:10px;margin:14px 0}
.glass-icons>span{display:grid;place-items:center;min-width:71px;min-height:72px;background:#f3eaf8;border:1px solid #d5c4df;border-radius:13px;color:#604c7c}
.puzzle-glyph{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;--glyph-contrast:#fff;line-height:1.12}
.glyph-svg{height:31px;width:31px;display:block;color:inherit}
.glyph-label{font-size:10px;font-weight:850;color:inherit;white-space:nowrap}
.ui-glyph{width:1.12em;height:1.12em;display:inline-block;vertical-align:-.17em;pointer-events:none}
.glass-icons .glyph-svg{width:35px;height:35px}
.glass-icons .glyph-label{font-size:11px}
.slots span{border-color:#d6c5e2}
.num button{background:#eee4f5;border-color:#d2bfe1;color:#645477}
.switch{background:#f2ebf7;border-color:#cbbadb;color:#5b4e6f}
.switch.on{background:#d4efe0;border-color:#80b89f;color:#325b4b}
.wire{background:#f8f2fb;color:#5c4d70;border-color:#d7c7df}
.wave span,.cipher{background:#f5eefb;border-color:#d5c5df;color:#655077}
.glass-maze{width:min(100%,365px);aspect-ratio:1;padding:0;border:5px solid #513c6e;border-radius:10px;background:#f8f0fa;overflow:hidden}
.glass-maze .cell{background:#f8f0fa;color:#584272;border:3px solid transparent}
.glass-maze .cell.wall-n{border-top-color:#584174}
.glass-maze .cell.wall-e{border-right-color:#584174}
.glass-maze .cell.wall-s{border-bottom-color:#584174}
.glass-maze .cell.wall-w{border-left-color:#584174}
.glass-maze .cell.here{background:#e0f4e9}
.glass-maze .cell.goal{background:#faecd2}
.glass-maze .cell b{display:grid;place-items:center;border-radius:50%;background:#a6e5c9;color:#295c46;width:25px;height:25px;font-size:17px}
.glass-maze .cell.goal b{background:#f2d4a0;color:#72522d}
.glass-maze.hidden .cell{border-color:transparent}
.glass-maze.hidden{border-color:#d0c0df}
.pad button{background:#eee3f5;color:#68547c;border-color:#cbb6df}
.glass-vault{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px;border:1px solid #d9c9e6;border-radius:15px;background:linear-gradient(145deg,#eee2f4,#e5f5ee);margin:14px 0}
.glass-dial{width:86px;height:86px;border:8px double #8973a5;background:#f8f2fd;border-radius:50%;display:grid;place-items:center;color:#8c77a6}
.glass-dial .ui-glyph{width:33px;height:33px}
.glass-vault>strong{font-size:37px;letter-spacing:8px;line-height:1.3}
.glass-vault>span{font-size:12px;color:#8a7c95}
.glass-tiles{max-width:350px;margin:15px auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.glass-tiles button{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;min-height:83px;gap:4px;border:1px solid #cfbddd;border-radius:12px;background:linear-gradient(145deg,#f3eafa,#e9f7f0);color:#786495}
.glass-tiles .ui-glyph{width:30px;height:30px}
.glass-tiles b{font-size:12px}
.glass-gallery-title{text-align:center}
.glass-gallery-title h1{font-size:clamp(26px,5vw,40px)}
.glass-gallery-title button{margin-top:13px}
.glass-puzzle-field .module{margin-top:12px}
.glass-puzzle-field fieldset:disabled{border:0}
.lamp{background:#a7b8ca}
.lamp.lit{background:#ffdda1;box-shadow:0 0 25px #e2ad58}
.morse span{background:#f3eafa;border-color:#d7c7df}
@media(max-width:680px){
 main{padding:12px 11px 45px}
 header{padding:9px 11px}
 .glass-home-cards{grid-template-columns:1fr}
 .glass-stage-nav{grid-template-columns:repeat(3,minmax(0,1fr))}
 .glass-stage-nav button{min-height:61px}
 .glass-stage-nav button b{font-size:10px}
 .glass-countdown{padding:12px;gap:12px;min-height:145px}
 .glass-bomb{transform:scale(.8);transform-origin:center center;margin:-10px -11px}
 .glass-success{grid-template-columns:1fr;padding:13px}
 .glass-success .glass-next{width:100%}
 .glass-stage-bottom .glass-next{width:100%}
 .glass-symbols .symbol{min-height:73px}
 .glass-icons>span{min-width:61px}
 .hud{font-size:11px;padding:9px 5px}
 .hud strong{font-size:13px}
 .symbolrow .puzzle-glyph{min-width:29px}
 .glass-clock{font-size:clamp(34px,9vw,49px)}
 .cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:365px){main{padding:10px 8px 40px}.glass-stage-nav{gap:5px}.glass-stage-nav button{padding:6px 2px}.glass-countdown{gap:3px}.glass-symbols .glyph-svg{width:25px;height:25px}.symbolrow .glyph-svg{width:20px;height:20px}.glass-home-cards{gap:9px}.cols{grid-template-columns:1fr}}
body[data-glass-theme="dark"]{
 --text:#ede6f8;--muted:#c4b9d6;--panel:#28263b;--line:#655974;--mint:#a9e2cb;--amber:#d4bde7;--red:#ef9caf;
 color:var(--text);background:radial-gradient(ellipse 850px 450px at 45% 0%,#43385d,#1d1d32 65%,#17172b)
}
body[data-glass-theme="dark"] header,body[data-glass-theme="dark"] .panel,body[data-glass-theme="dark"] .module{background:#28263de5;border-color:#635675;color:#ede6f8}
body[data-glass-theme="dark"] h1,body[data-glass-theme="dark"] h2,body[data-glass-theme="dark"] h3,body[data-glass-theme="dark"] h4{color:#ece0f8}
body[data-glass-theme="dark"] .glass-hero,body[data-glass-theme="dark"] .glass-countdown{background:linear-gradient(135deg,#382f52,#223943);border-color:#6c5b80}
body[data-glass-theme="dark"] .glass-hero em{color:#b0e3d3}
body[data-glass-theme="dark"] .btn,body[data-glass-theme="dark"] .opt,body[data-glass-theme="dark"] .input,body[data-glass-theme="dark"] .glass-theme{background:#453855;color:#f0e5fb;border-color:#7d6d90}
body[data-glass-theme="dark"] .btn.mint,body[data-glass-theme="dark"] .glass-next{background:linear-gradient(110deg,#77bea5,#a3dcc7);color:#173b31;border-color:#8dd1b7}
body[data-glass-theme="dark"] .glass-success,body[data-glass-theme="dark"] .glass-current,body[data-glass-theme="dark"] .life-config{background:#274940;border-color:#6ebc9a;color:#d2f5e2}
body[data-glass-theme="dark"] .glass-success strong,body[data-glass-theme="dark"] .glass-success p{color:#d5f8e5}
body[data-glass-theme="dark"] .hud{background:#242338f2;border-color:#6f6080}
body[data-glass-theme="dark"] .glass-clock{color:#e4d0ff}
body[data-glass-theme="dark"] .glass-stage-nav button,body[data-glass-theme="dark"] .role,body[data-glass-theme="dark"] .manual-intro,body[data-glass-theme="dark"] .glass-guide-note,body[data-glass-theme="dark"] .glossary,body[data-glass-theme="dark"] .example,body[data-glass-theme="dark"] .quick{background:#342d48;color:#e7d9f1;border-color:#706181}
body[data-glass-theme="dark"] .glass-stage-nav button.active{background:#35554e;border-color:#a0dbc2}
body[data-glass-theme="dark"] .glass-stage-nav button:disabled{opacity:.5}
body[data-glass-theme="dark"] .glass-symbols .symbol,body[data-glass-theme="dark"] .glass-icons>span,body[data-glass-theme="dark"] .wire,body[data-glass-theme="dark"] .switch,body[data-glass-theme="dark"] .num button,body[data-glass-theme="dark"] .glass-tiles button,body[data-glass-theme="dark"] .symbolrow,body[data-glass-theme="dark"] .cipher,body[data-glass-theme="dark"] .wave span,body[data-glass-theme="dark"] .morse span{background:#423753;color:#f0e5fb;border-color:#7c6d91}
body[data-glass-theme="dark"] .puzzle-glyph{--glyph-contrast:#343048}
body[data-glass-theme="dark"] .note,body[data-glass-theme="dark"] .module.done{background:#27433c;color:#d8e8dc}
body[data-glass-theme="dark"] .glass-maze{border-color:#ddefff;background:#23334d}
body[data-glass-theme="dark"] .glass-maze .cell{background:#23334d;color:#e5e8ff}
body[data-glass-theme="dark"] .glass-maze .cell.wall-n{border-top-color:#d8eeff}
body[data-glass-theme="dark"] .glass-maze .cell.wall-e{border-right-color:#d8eeff}
body[data-glass-theme="dark"] .glass-maze .cell.wall-s{border-bottom-color:#d8eeff}
body[data-glass-theme="dark"] .glass-maze .cell.wall-w{border-left-color:#d8eeff}
body[data-glass-theme="dark"] .glass-maze .cell.here{background:#31524e}
body[data-glass-theme="dark"] .glass-maze .cell.goal{background:#655842}
body[data-glass-theme="dark"] .glass-maze.hidden .cell{border-color:transparent}
body[data-glass-theme="dark"] .glass-stage-bottom>.small{color:#c1b4d3}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
