:root {
  --bg: #030204;
  --surface: #09060b;
  --surface-2: #160b14;
  --line: rgba(179, 133, 72, .28);
  --gold: #b78a49;
  --gold-bright: #e2ba70;
  --ivory: #f0e9df;
  --muted: #aea3ad;
  --teal: #739e98;
  --danger: #d98e84;
  --blood: #4b101f;
  --blood-bright: #7a1f35;
  --cathedral: #1b0c1c;
  --display: Papyrus, "Academy Engraved LET", "Apple Chancery", fantasy;
  --book: Baskerville, "Iowan Old Style", Palatino, "Palatino Linotype", Georgia, serif;
  --inscription: Copperplate, Cinzel, "Times New Roman", serif;
  --ui: "Manrope", system-ui, sans-serif;
  --serif: var(--display);
  --sans: var(--ui);
  --radius: 18px;
}

/* Enciclopedia Arcana */
.knowledge-view{max-width:1240px;margin:0 auto}.knowledge-intro{align-items:end}.knowledge-intro p{max-width:650px}.knowledge-jumps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0 0 18px}.knowledge-jumps button{display:grid;grid-template-columns:46px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 10px;min-height:78px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#0e0b0c;color:var(--ivory);text-align:left;cursor:pointer}.knowledge-jumps button:hover,.knowledge-jumps button:focus-visible{border-color:var(--gold);background:#17110f}.knowledge-jumps button>span{grid-row:1/3;display:grid;place-items:center;width:44px;height:44px;border:1px solid #6e593b;border-radius:50%;color:var(--gold-bright);font:600 20px var(--serif)}.knowledge-jumps strong{align-self:end;font-size:15px}.knowledge-jumps small{color:var(--muted);font-size:12px}.knowledge-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:18px}.knowledge-gallery figure{position:relative;min-height:210px;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#080706}.knowledge-gallery img{width:100%;height:210px;display:block;object-fit:cover;opacity:.78}.knowledge-gallery figcaption{position:absolute;inset:auto 0 0;padding:38px 16px 14px;background:linear-gradient(transparent,rgba(0,0,0,.92));color:var(--ivory);font-weight:700}.knowledge-section{margin:18px 0;padding:24px;scroll-margin-top:110px}.knowledge-search{display:grid;gap:12px}.knowledge-search input{width:100%;min-height:52px;padding:12px 16px;border:1px solid var(--line);border-radius:8px;background:#080708;color:var(--ivory);font-size:16px}.knowledge-filters{display:flex;gap:7px;overflow:auto;padding-bottom:4px;scrollbar-width:thin}.knowledge-filters .chip{white-space:nowrap}.knowledge-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:18px}.knowledge-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:13px;min-height:190px;padding:18px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,#130f10,#080708)}.knowledge-card>span{display:grid;place-items:center;width:50px;height:50px;border:1px solid #69573d;border-radius:50%;color:var(--gold-bright);font:600 18px var(--serif)}.knowledge-card small{color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.knowledge-card h3{margin:5px 0 7px;font:600 24px/1.05 var(--serif)}.knowledge-card p{margin:0 0 12px;color:var(--muted);line-height:1.55}.knowledge-card a{color:var(--gold-bright);font-weight:700;text-decoration:none}.knowledge-tools-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px}.knowledge-tool{padding:24px;scroll-margin-top:110px}.knowledge-tool h3{margin:7px 0 10px;font:600 31px/1.08 var(--serif)}.knowledge-tool>p,.knowledge-tool>small{color:var(--muted);line-height:1.55}.knowledge-tool>small{display:block;margin-top:12px}.knowledge-tool form{display:grid;gap:9px;margin-top:16px}.knowledge-tool label,.scriptorium label,.grimoire-lab label{display:grid;gap:6px;color:var(--gold);font-weight:750}.knowledge-tool textarea,.scriptorium textarea,.grimoire-lab textarea{min-height:110px;resize:vertical}.oracle-answer{margin-top:14px;padding:16px;border-left:3px solid var(--gold);background:#17110f}.oracle-answer strong{color:var(--gold-bright)}.oracle-answer ol{padding-left:20px;color:var(--muted);line-height:1.55}.scriptorium form{display:grid;grid-template-columns:minmax(220px,.55fr) minmax(0,1.45fr) auto;gap:10px;align-items:end}.scriptorium textarea{min-height:96px}.scriptorium-result{display:grid;gap:7px;min-height:110px;margin-top:14px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#080708}.scriptorium-result small{color:var(--gold);font-weight:800;letter-spacing:.08em}.scriptorium-result output{overflow-wrap:anywhere;color:var(--ivory);font-size:20px;line-height:1.6}.method-warning{margin-top:12px;padding:14px;border-left:3px solid #8c7350;background:#15110f}.method-warning p{margin:5px 0 0;color:var(--muted);line-height:1.55}.grimoire-lab form{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grimoire-lab form .wide{grid-column:1/-1}.grimoire-entries{display:grid;gap:8px;margin-top:20px}.grimoire-entries article{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:#0c090a}.grimoire-entries article small,.grimoire-entries article em{display:block;color:var(--muted)}.grimoire-entries article strong{display:block;margin:4px 0;font:600 23px var(--serif)}.grimoire-entries article p{white-space:pre-wrap;color:var(--ivory);line-height:1.55}.grimoire-entries article button{width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:none;color:var(--muted);cursor:pointer}
.scriptorium-examples{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:12px}.scriptorium-examples span{color:var(--muted);font-size:13px}.scriptorium-examples button,.scriptorium-result>div button{min-height:38px;padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:#100c0d;color:var(--ivory);cursor:pointer}.scriptorium-examples button:hover,.scriptorium-examples button:focus-visible{border-color:var(--gold)}.scriptorium-result>div{display:flex;align-items:center;justify-content:space-between;gap:12px}.scriptorium-result>div button{color:var(--gold-bright)}.scriptorium-result>div button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:900px){.knowledge-jumps{grid-template-columns:repeat(2,minmax(0,1fr))}.knowledge-results{grid-template-columns:repeat(2,minmax(0,1fr))}.scriptorium form{grid-template-columns:1fr}}
@media(max-width:620px){.knowledge-view{padding-left:10px;padding-right:10px}.knowledge-intro{align-items:start}.knowledge-jumps{display:flex;overflow-x:auto;margin-inline:-10px;padding:0 10px 8px}.knowledge-jumps button{min-width:190px}.knowledge-gallery{grid-template-columns:1fr}.knowledge-gallery figure,.knowledge-gallery img{min-height:160px;height:160px}.knowledge-section,.knowledge-tool{padding:18px 14px}.knowledge-results,.knowledge-tools-grid,.grimoire-lab form{grid-template-columns:1fr}.knowledge-card{min-height:0}.grimoire-lab form .wide{grid-column:auto}}

.exam-board,.religions-section { margin-top:32px; }
.exam-subject-list { display:grid; gap:10px; margin-top:20px; }
.exam-subject { display:grid; grid-template-columns:48px minmax(0,1fr) minmax(280px,auto); gap:14px; align-items:center; padding:16px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.exam-glyph { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; background:rgba(201,156,85,.12); color:var(--gold); font-size:22px; }
.exam-subject strong,.exam-subject small { display:block; }
.exam-subject small { margin-top:4px; color:var(--muted); }
.exam-controls { display:flex; align-items:end; justify-content:flex-end; gap:10px; }
.exam-slot { display:grid; gap:5px; color:var(--muted); font-size:12px; text-transform:uppercase; letter-spacing:.08em; }
.exam-slot select { min-height:44px; border:1px solid var(--line); background:var(--surface); color:var(--ivory); padding:0 12px; }
.exam-state { padding:11px 14px; border:1px solid var(--line); color:var(--gold); }
.exam-state.passed { color:#8ed1a5; border-color:rgba(94,181,126,.4); }
.chat-channels { display:flex; gap:8px; overflow-x:auto; padding:12px 14px; border-bottom:1px solid var(--line); scrollbar-width:none; }
.chat-channels::-webkit-scrollbar { display:none; }
.chat-channels button { flex:0 0 auto; min-height:44px; padding:0 18px; border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--muted); }
.chat-channels button.active { background:rgba(201,156,85,.12); color:var(--gold); border-color:var(--gold); }
.religions-method { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:20px 0; padding:16px; }
.religions-method strong { margin-right:8px; color:var(--gold); }
.religions-method span { padding:7px 10px; border:1px solid var(--line); color:var(--muted); }
.religion-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.religion-card { display:grid; grid-template-columns:52px minmax(0,1fr); gap:14px; padding:22px; border:1px solid var(--line); background:linear-gradient(135deg,rgba(76,42,70,.2),rgba(10,9,11,.9)); }
.religion-card > span { display:grid; place-items:center; width:50px; height:50px; border-radius:50%; background:rgba(201,156,85,.12); color:var(--gold); font-size:25px; }
.religion-card small { color:var(--gold); letter-spacing:.1em; }
.religion-card h3 { margin:7px 0; }
.religion-card p { color:var(--muted); line-height:1.55; }
.religion-card ol { margin:12px 0 0; padding-left:18px; color:var(--muted); line-height:1.7; }
.religion-sources { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-top:14px; padding:16px; }
.religion-sources a { min-height:44px; display:flex; align-items:center; padding:8px 12px; border:1px solid var(--line); color:var(--ivory); }

@media (max-width: 760px) {
  .exam-subject { grid-template-columns:44px minmax(0,1fr); }
  .exam-controls { grid-column:1/-1; justify-content:stretch; flex-wrap:wrap; }
  .exam-controls > * { flex:1 1 180px; }
  .religion-grid { grid-template-columns:1fr; }
  .religion-card { padding:17px 13px; grid-template-columns:44px minmax(0,1fr); }
  .religion-card > span { width:42px; height:42px; font-size:21px; }
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background: var(--bg); color-scheme: dark; font-size: calc(100% * var(--user-text-scale, 1)); }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 78% 0%, #2c102b 0, transparent 32%), radial-gradient(circle at 15% 52%, #081820 0, transparent 28%), linear-gradient(135deg, rgba(89,47,84,.08) 1px, transparent 1px), var(--bg); background-size: auto, auto, 46px 46px, auto; color: var(--ivory); font-family: var(--sans); font-size: 1rem; line-height: 1.5; }
button, input, textarea, select { font: inherit; }
button { color: inherit; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 264px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; padding: 28px 22px; border-right: 1px solid var(--line); background: rgba(5, 4, 7, .96); display: flex; flex-direction: column; z-index: 10; overflow-y: auto; }
.brand { display: flex; align-items: center; gap: 13px; border: 0; background: none; padding: 0 4px 28px; cursor: pointer; text-align: left; }
.brand-mark { width: 42px; height: 52px; display: grid; place-items: center; border: 1px solid var(--gold); color: var(--gold-bright); font: 700 25px var(--serif); clip-path: polygon(50% 0, 100% 22%, 90% 100%, 10% 100%, 0 22%); background: linear-gradient(145deg, #241823, #09070b); }
.brand strong { display: block; font: 700 22px/1 var(--serif); letter-spacing: .15em; }
.brand small { color: var(--muted); font-size: 12px; }
.nav-list { display: grid; gap: 7px; }
.nav-item { width: 100%; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: var(--muted); cursor: pointer; text-align: left; font-weight: 600; }
.nav-item span { color: var(--gold); font-size: 19px; width: 22px; text-align: center; }
.nav-item:hover, .nav-item.active { color: var(--ivory); background: rgba(217,182,111,.08); border-color: var(--line); }
.nav-item em { margin-left:auto; padding:3px 5px; border:1px solid rgba(217,182,111,.34); border-radius:3px; color:var(--gold-bright); font-size:7px; font-style:normal; letter-spacing:.12em; }
.atlas-nav { background:linear-gradient(90deg,rgba(217,182,111,.09),transparent); }
.sidebar-progress { margin-top: auto; padding: 18px 4px; border-top: 1px solid var(--line); }
.eyebrow { color: var(--gold); font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.progress-copy { display: flex; justify-content: space-between; align-items: end; margin: 10px 0 8px; }
.progress-copy strong { font: 600 28px var(--serif); }
.progress-copy span, .sidebar-progress p { color: var(--muted); font-size: 12px; }
.progress-track { height: 5px; background: #24313a; border-radius: 99px; overflow: hidden; }
.progress-track span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #9b773a, var(--gold-bright)); transition: width .3s; }
.ethics-note { display: flex; gap: 11px; padding: 14px; background: rgba(108,182,173,.07); border: 1px solid rgba(108,182,173,.14); border-radius: 13px; }
.ethics-note span { color: var(--teal); }
.ethics-note p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.ethics-note strong { display: block; color: #cddbd9; font-size: 12px; margin-bottom: 3px; }

main { min-width: 0; padding: 0 4vw 70px; }
.topbar { min-height: 104px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); margin-bottom: 24px; }
.topbar h1 { margin: 6px 0 0; font: 600 clamp(30px, 3vw, 43px)/1 var(--serif); }
.top-actions { display: flex; align-items: center; gap: 10px; }
.contact-shortcut { min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 7px; background: transparent; color: var(--gold-bright); font-size: 12px; font-weight: 700; cursor: pointer; }
.contact-shortcut:hover { background: rgba(217,182,111,.08); }
.atlas-shortcut { display:grid; grid-template-columns:28px auto; column-gap:7px; align-items:center; padding:7px 11px; border:1px solid rgba(217,182,111,.4); border-radius:7px; background:linear-gradient(130deg,rgba(217,182,111,.13),rgba(54,31,58,.22)); color:var(--ivory); cursor:pointer; text-align:left; }
.atlas-shortcut > span { grid-row:1/3; color:var(--gold-bright); font-size:22px; }
.atlas-shortcut strong,.atlas-shortcut small { display:block; line-height:1.15; }
.atlas-shortcut strong { font-size:12px; }
.atlas-shortcut small { color:var(--muted); font-size:9px; }
.sound-toggle { display: flex; align-items: center; gap: 10px; padding: 9px 13px; min-height: 52px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); cursor: pointer; text-align: left; }
.sound-toggle > span:first-child { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; color: var(--gold); background: rgba(217,182,111,.09); font-size: 18px; }
.sound-toggle strong, .sound-toggle small { display: block; }
.sound-toggle strong { font-size: 12px; }
.sound-toggle small { color: var(--muted); font-size: 10px; }
.sound-toggle[aria-pressed="true"] { border-color: rgba(217,182,111,.45); }
.streak { display: grid; grid-template-columns: auto auto; grid-template-rows: auto auto; column-gap: 9px; align-items: center; padding: 10px 15px; border: 1px solid var(--line); background: var(--surface); border-radius: 13px; cursor: default; }
.streak span { grid-row: 1/3; color: var(--gold); font-size: 23px; }
.streak strong { line-height: 1; }
.streak small { color: var(--muted); font-size: 10px; }
.notification-toggle { position:relative; width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:var(--surface); color:var(--gold-bright); cursor:pointer; font-size:20px; }
.notification-toggle strong { position:absolute; right:-4px; top:-5px; min-width:20px; height:20px; display:grid; place-items:center; padding:0 5px; border:2px solid var(--bg); border-radius:999px; background:#9f4239; color:white; font:700 10px var(--sans); }
.notification-panel { position:absolute; z-index:45; right:4vw; top:86px; width:min(430px,calc(100vw - 30px)); padding:17px; border:1px solid rgba(225,189,120,.38); border-radius:12px; background:rgba(7,6,7,.99); box-shadow:0 25px 80px rgba(0,0,0,.72); }
.notification-panel > header { display:flex; justify-content:space-between; gap:15px; align-items:start; padding-bottom:12px; border-bottom:1px solid var(--line); }
.notification-panel h2 { margin:4px 0 0; font:600 24px var(--serif); }
.notification-panel header button { border:0; background:none; color:var(--gold-bright); cursor:pointer; font-size:11px; }
.notification-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px; }
.notification-actions button { min-height:38px; padding:5px 8px; border:1px solid transparent !important; border-radius:6px; }
.notification-actions button:hover,.notification-actions button:focus-visible { border-color:var(--line) !important; }
.daily-push-settings { display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; margin-top:12px; padding:12px; border:1px solid rgba(201,156,85,.22); border-radius:10px; background:rgba(201,156,85,.055); }
.daily-push-settings strong,.daily-push-settings small { display:block; }
.daily-push-settings strong { color:var(--ivory); font-size:1rem; }
.daily-push-settings small { margin-top:3px; color:var(--muted); font-size:.82rem; line-height:1.35; }
.daily-push-settings label { display:grid; gap:3px; color:var(--muted); font-size:.78rem; }
.daily-push-settings input { min-height:40px; width:96px; padding:7px; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--ivory); font:600 .9rem var(--sans); color-scheme:dark; }
.daily-push-settings button { min-height:42px; padding:8px 12px; border:1px solid var(--gold); border-radius:8px; background:rgba(201,156,85,.13); color:var(--gold-bright); font-weight:800; cursor:pointer; }
.notification-list { display:grid; gap:8px; max-height:55vh; overflow:auto; padding-top:10px; }
.notification-item { display:grid; grid-template-columns:34px 1fr; gap:10px; padding:11px; border:1px solid var(--line); border-radius:8px; background:rgba(255,255,255,.018); }
.notification-item > span:first-child { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:rgba(185,146,84,.1); color:var(--gold-bright); }
.notification-item > span:last-child { min-width:0; width:auto; height:auto; display:block; color:inherit; }
.notification-item strong,.notification-item small { display:block; }
.notification-item strong,.notification-item small { overflow-wrap:anywhere; }
.notification-item small { margin-top:3px; color:var(--muted); line-height:1.4; }
.notification-item small { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.notification-item.read { opacity:.62; }
.view { display: none; animation: fade .22s ease; }
.view.active { display: block; }
@keyframes fade { from { opacity: 0; transform: translateY(5px); } }

.hero-card { position: relative; min-height: 315px; overflow: hidden; border: 1px solid var(--line); border-radius: 22px; background: #0a1118; box-shadow: 0 26px 80px rgba(0,0,0,.25); }
.hero-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(4,10,16,.97) 0%, rgba(4,10,16,.8) 41%, rgba(4,10,16,.08) 74%); }
.hero-content { position: relative; z-index: 1; width: min(560px, 60%); padding: 42px 48px; }
.pill { display: inline-flex; padding: 7px 10px; border: 1px solid rgba(217,182,111,.32); border-radius: 999px; color: var(--gold-bright); background: rgba(7,16,25,.62); font-size: 11px; letter-spacing: .09em; font-weight: 700; }
.hero-content h2, .view-intro h2, .panel-heading h2, .lesson-main h2 { font-family: var(--serif); }
.hero-content h2 { margin: 16px 0 10px; font-size: clamp(36px, 4vw, 58px); line-height: .98; max-width: 520px; }
.hero-content p { color: #c6ced0; line-height: 1.65; margin: 0 0 24px; max-width: 460px; }
.start-here { display: grid; grid-template-columns: minmax(260px, 1.3fr) repeat(3, minmax(150px, .6fr)); align-items: stretch; gap: 10px; margin-top: 13px; }
.start-copy, .quick-action { min-height: 70px; border: 1px solid var(--line); border-radius: 13px; background: rgba(13,24,34,.82); }
.start-copy { display: flex; align-items: center; gap: 12px; padding: 12px 15px; }
.start-copy strong, .start-copy small, .quick-action strong, .quick-action small { display: block; }
.start-copy small, .quick-action small { margin-top: 3px; color: var(--muted); font-size: 11px; }
.step-dot { flex: 0 0 auto; width: 35px; height: 35px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 50%; color: var(--gold); font: 600 18px var(--serif); }
.quick-action { display: flex; align-items: center; gap: 10px; padding: 11px 13px; color: var(--ivory); text-align: left; cursor: pointer; }
.quick-action > span { color: var(--gold); font-size: 18px; }
.quick-action:hover { border-color: var(--gold); background: rgba(217,182,111,.08); }
.primary-btn, .secondary-btn { border-radius: 10px; padding: 12px 17px; font-weight: 700; cursor: pointer; border: 1px solid transparent; transition: transform .16s, background .16s; }
.primary-btn { background: var(--gold); color: #142029; }
.primary-btn:hover { background: var(--gold-bright); transform: translateY(-1px); }
.primary-btn:disabled { opacity: .4; cursor: not-allowed; transform: none; }
.secondary-btn { background: transparent; border-color: var(--line); color: var(--ivory); }
.secondary-btn:hover { background: rgba(217,182,111,.08); }
.text-btn, .back-btn { border: 0; background: none; padding: 0; color: var(--gold-bright); cursor: pointer; font-weight: 700; }
.full { width: 100%; }

.academy-hero { position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(220px, .65fr); align-items: center; gap: 40px; min-height: 300px; padding: clamp(30px, 5vw, 58px); border: 1px solid var(--line); border-radius: 18px; background: radial-gradient(circle at 79% 48%, rgba(201,156,85,.14), transparent 24%), linear-gradient(135deg, #17101a, #060509 72%); box-shadow: 0 28px 90px rgba(0,0,0,.42); }
.academy-hero::after { content: ""; position: absolute; width: 320px; height: 320px; right: -90px; top: -130px; border: 1px solid rgba(217,182,111,.14); border-radius: 50%; box-shadow: 0 0 0 46px rgba(217,182,111,.025), 0 0 0 92px rgba(217,182,111,.018); }
.academy-hero h2 { margin: 9px 0 12px; font: 600 clamp(43px, 5.8vw, 72px)/.91 var(--serif); letter-spacing: -.025em; }
.academy-hero p { max-width: 650px; margin: 0; color: #c2cbcd; line-height: 1.65; }
.hero-actions { display: flex; gap: 10px; margin-top: 24px; }
.share-btn { padding: 10px 8px; }
.install-btn { white-space: nowrap; }
.academy-compass { position: relative; z-index: 1; aspect-ratio: 1; max-width: 225px; justify-self: center; display: grid; place-items: center; border: 1px solid rgba(217,182,111,.33); border-radius: 50%; color: var(--gold); box-shadow: inset 0 0 0 17px rgba(217,182,111,.025), 0 18px 70px rgba(0,0,0,.3); }
.academy-compass::before, .academy-compass::after { content: ""; position: absolute; background: rgba(217,182,111,.22); }
.academy-compass::before { width: 1px; height: 72%; }
.academy-compass::after { width: 72%; height: 1px; }
.academy-compass > span { z-index: 1; font-size: 64px; text-shadow: 0 0 30px rgba(217,182,111,.38); }
.academy-compass small { position: absolute; bottom: 23%; z-index: 1; width: 70%; text-align: center; font-size: 8px; letter-spacing: .16em; }
.starter-paths { margin-top:18px; padding:clamp(22px,4vw,36px); border:1px solid rgba(217,182,111,.3); border-radius:14px; background:linear-gradient(145deg,rgba(28,15,23,.98),rgba(6,5,7,.98)); scroll-margin-top:92px; }
.starter-paths > header { display:flex; align-items:end; justify-content:space-between; gap:28px; margin-bottom:20px; }
.starter-paths h2 { margin:6px 0 0; font:600 clamp(31px,4vw,48px)/1 var(--serif); }
.starter-paths > header p { max-width:510px; margin:0; color:var(--muted); line-height:1.55; }
.starter-path-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.starter-path-grid > button { position:relative; min-height:250px; display:flex; flex-direction:column; align-items:flex-start; padding:22px; overflow:hidden; border:1px solid rgba(217,182,111,.23); border-radius:10px; background:linear-gradient(155deg,rgba(42,21,34,.92),rgba(8,6,9,.97) 72%); color:var(--ivory); text-align:left; cursor:pointer; transition:transform .18s,border-color .18s,background .18s; }
.starter-path-grid > button:hover,.starter-path-grid > button:focus-visible { transform:translateY(-3px); border-color:var(--gold-bright); background:linear-gradient(155deg,rgba(62,29,46,.96),rgba(10,7,10,.98) 72%); }
.starter-path-grid > button > span { width:50px; height:50px; display:grid; place-items:center; margin-bottom:20px; border:1px solid rgba(217,182,111,.5); border-radius:50%; color:var(--gold-bright); font:600 20px var(--serif); }
.starter-path-grid small { color:var(--gold); font:700 10px var(--inscription); letter-spacing:.13em; }
.starter-path-grid strong { margin:8px 0; font:600 26px/1.02 var(--serif); }
.starter-path-grid p { flex:1; margin:0 0 17px; color:var(--muted); font-size:14px; line-height:1.55; }
.starter-path-grid b { color:var(--gold-bright); font-size:13px; }
.academy-complete { margin-top:14px; border:1px solid var(--line); border-radius:10px; background:rgba(8,6,9,.88); }
.academy-complete > summary { min-height:64px; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:12px 18px; cursor:pointer; list-style:none; }
.academy-complete > summary::-webkit-details-marker { display:none; }
.academy-complete > summary span { display:grid; gap:2px; }
.academy-complete > summary small { color:var(--muted); }
.academy-complete > summary b { color:var(--gold-bright); }
.academy-complete[open] > summary { border-bottom:1px solid var(--line); }
.academy-complete[open] > summary b { font-size:0; }
.academy-complete[open] > summary b::after { content:"Chiudi"; font-size:13px; }
.academy-complete-body { padding:0 14px 24px; }
.path-guide { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 14px; border: 1px solid var(--line); border-radius: 14px; background: rgba(10,8,12,.86); overflow: hidden; }
.path-guide > div { display: grid; grid-template-columns: 40px 1fr; grid-template-rows: auto auto; column-gap: 10px; padding: 15px 18px; border-right: 1px solid var(--line); }
.path-guide > div:last-child { border-right: 0; }
.path-guide span { grid-row: 1/3; align-self: center; color: var(--gold); font: 600 18px var(--serif); }
.path-guide strong { font-size: 14px; }
.path-guide small { color: var(--muted); font-size: 12px; }
.academy-jump { position:sticky; top:76px; z-index:18; display:flex; align-items:center; justify-content:space-between; gap:12px; margin:14px 0 0; padding:10px 12px; border:1px solid rgba(217,182,111,.28); border-radius:10px; background:rgba(6,5,7,.94); box-shadow:0 14px 38px rgba(0,0,0,.28); backdrop-filter:blur(14px); }
.academy-jump label { display:flex; align-items:center; gap:12px; min-width:0; flex:1; }
.academy-jump label > span { color:var(--gold); font:700 10px var(--inscription); letter-spacing:.14em; white-space:nowrap; }
.academy-jump select { width:100%; min-width:0; padding:10px 12px; border-color:rgba(217,182,111,.22); background:#0c090c; }
.academy-jump .secondary-btn { min-height:42px; padding:9px 16px; }
.personal-path { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-top: 14px; padding: 16px 18px; border: 1px solid rgba(201,156,85,.28); border-radius: 14px; background: linear-gradient(100deg, rgba(201,156,85,.1), rgba(12,10,16,.9) 48%); }
.personal-path > div { display: flex; align-items: center; gap: 13px; min-width: 0; }
.personal-path small, .personal-path strong { display: block; }
.personal-path small { color: var(--gold); font-size: 12px; letter-spacing: .08em; }
.personal-path strong { margin-top: 3px; overflow: hidden; text-overflow: ellipsis; font: 600 21px/1.1 var(--serif); white-space: nowrap; }
.personal-symbol { flex: 0 0 auto; width: 48px; height: 48px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold-bright); font: 600 22px var(--serif); }
.catalog-toolbar { display: flex; justify-content: space-between; align-items: end; gap: 22px; margin: 32px 0 17px; scroll-margin-top: 100px; }
.catalog-toolbar strong, .catalog-toolbar small { display: block; }
.catalog-toolbar strong { font: 600 24px var(--serif); }
.catalog-toolbar small { margin-top: 4px; color: var(--muted); }
.academic-outcome { scroll-margin-top:150px; margin-top:28px; padding:26px; background:linear-gradient(140deg,rgba(30,11,25,.96),rgba(7,6,8,.97)); }
.academic-outcome > header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:end; padding-bottom:20px; border-bottom:1px solid rgba(217,182,111,.2); }
.academic-outcome h2 { margin:6px 0 8px; font-size:clamp(30px,4vw,48px); }
.academic-outcome p { max-width:740px; margin:0; color:var(--muted); line-height:1.6; }
.academic-outcome-score { display:grid; justify-items:end; }
.academic-outcome-score strong { color:var(--gold-bright); font:600 34px var(--display); }
.academic-outcome-score span { color:var(--muted); font-size:12px; }
.academic-milestones { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin-top:18px; }
.academic-milestones article { min-width:0; padding:16px; border:1px solid rgba(217,182,111,.2); background:rgba(0,0,0,.24); }
.academic-milestones article.active { border-color:rgba(217,182,111,.7); background:rgba(183,138,73,.1); }
.academic-milestones small,.academic-milestones strong,.academic-milestones span { display:block; }
.academic-milestones small { color:var(--gold); font:700 10px var(--inscription); letter-spacing:.12em; }
.academic-milestones strong { margin:7px 0 5px; font:600 21px var(--display); }
.academic-milestones span { color:var(--muted); font-size:12px; line-height:1.45; }
.academic-outcome-note { display:flex; gap:10px; align-items:flex-start; margin:16px 0 0; padding:12px 14px; border-left:2px solid var(--gold); background:rgba(217,182,111,.06); color:var(--muted); font-size:12px; line-height:1.5; }
.academic-opportunities { margin-top:22px; padding:20px; border:1px solid rgba(217,182,111,.24); background:rgba(0,0,0,.2); }
.academic-opportunities-head { display:grid; grid-template-columns:minmax(0,1fr) auto; column-gap:20px; align-items:end; }
.academic-opportunities-head .eyebrow { grid-column:1/-1; }
.academic-opportunities-head h3 { margin:6px 0 0; font-size:clamp(25px,3vw,36px); }
.academic-opportunities-head p { max-width:420px; text-align:right; }
.academic-opportunities > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0; }
.academic-opportunities article { display:flex; flex-direction:column; min-width:0; min-height:178px; padding:16px; border:1px solid rgba(255,255,255,.09); background:rgba(15,9,14,.76); }
.academic-opportunities article small { color:var(--gold); font:700 10px var(--inscription); letter-spacing:.1em; }
.academic-opportunities article strong { margin:8px 0 5px; font:600 22px var(--display); }
.academic-opportunities article p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.academic-opportunities article span { margin-top:auto; padding-top:12px; color:var(--gold-bright); font-size:12px; }
.academic-opportunities > .primary-btn:disabled { opacity:.62; cursor:not-allowed; }
.catalog-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.course-catalog { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.course-card { position: relative; min-height: 350px; display: flex; flex-direction: column; overflow: hidden; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: linear-gradient(145deg, color-mix(in srgb, var(--course-tone) 9%, #110d13), #070609 68%); transition: transform .2s, border-color .2s; }
.course-card::after { content: ""; position: absolute; width: 180px; height: 180px; right: -95px; top: 36px; border: 1px solid color-mix(in srgb, var(--course-tone) 38%, transparent); border-radius: 50%; }
.course-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--course-tone) 70%, #fff); }
.course-card-head { display: flex; justify-content: space-between; align-items: start; margin-bottom: 27px; }
.course-icon { width: 76px; height: 76px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--course-tone) 60%, transparent); border-radius: 50%; color: var(--course-tone); background: rgba(4,10,16,.38); font: 600 33px var(--serif); }
.course-status { padding: 5px 8px; border: 1px solid rgba(255,255,255,.1); border-radius: 999px; color: var(--muted); font-size: 12px; letter-spacing: .08em; }
.course-card h3 { margin: 7px 0 10px; font: 600 29px/1.02 var(--serif); }
.course-card > p { margin: 0 0 18px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.course-progress { height: 3px; overflow: hidden; margin: auto 0 15px; border-radius: 99px; background: rgba(255,255,255,.07); }
.course-progress span { display: block; height: 100%; border-radius: inherit; background: var(--course-tone); }
.course-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; margin-bottom: 19px; }
.course-tags span { padding: 5px 8px; border-radius: 999px; background: rgba(255,255,255,.035); color: #c8c0ca; font-size: 12px; }
.course-open { display: flex; justify-content: space-between; width: 100%; padding: 13px 0 0; border: 0; border-top: 1px solid rgba(255,255,255,.08); background: none; color: var(--course-tone); font-weight: 700; cursor: pointer; }
.coming-section { margin-top: 48px; }
.future-courses { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.future-card { display: grid; grid-template-columns: 58px 1fr; gap: 15px; align-items: center; padding: 18px; border: 1px dashed rgba(217,182,111,.25); border-radius: 13px; background: rgba(255,255,255,.018); }
.future-card > span { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; background: rgba(217,182,111,.06); color: var(--gold); font-size: 25px; }
.future-card small { color: var(--gold); font-size: 12px; letter-spacing: .1em; }
.future-card h3 { margin: 4px 0; font: 600 21px var(--serif); }
.future-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }

dialog.course-dialog { width: min(1240px, calc(100% - 30px)); display: none; grid-template-columns: 1fr; overflow-y: auto; max-height: 92vh; }
dialog.course-dialog[open] { display: grid; }
.course-section-nav { position:sticky; top:0; z-index:4; display:flex; gap:6px; padding:10px 40px; overflow-x:auto; border-bottom:1px solid var(--line); background:rgba(8,6,8,.96); backdrop-filter:blur(12px); scrollbar-width:none; }
.course-section-nav::-webkit-scrollbar { display:none; }
.course-section-nav button { flex:0 0 auto; min-height:40px; padding:8px 13px; border:1px solid var(--line); border-radius:999px; background:#0f0b0e; color:var(--ivory); font-weight:700; cursor:pointer; }
.course-section-nav button:hover,.course-section-nav button:focus-visible { border-color:var(--course-tone); color:var(--course-tone); }
.course-overview { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1px; margin:0 40px; border:1px solid var(--line); background:var(--line); }
.course-overview > div { display:grid; gap:5px; min-width:0; padding:15px 17px; background:#090709; }
.course-overview small { color:var(--muted); font-size:9px; font-weight:800; letter-spacing:.1em; }
.course-overview strong { overflow-wrap:anywhere; color:var(--gold-bright); font:600 18px/1.15 var(--serif); }
.course-dialog-head { display: grid; grid-template-columns: 130px 1fr; gap: 27px; align-items: center; padding: 40px; background: radial-gradient(circle at 10% 50%, color-mix(in srgb, var(--course-tone) 15%, transparent), transparent 35%), #0b080d; border-bottom: 1px solid var(--line); }
.course-dialog-head .course-glyph { width: 125px; height: 125px; display: grid; place-items: center; border: 1px solid var(--course-tone); border-radius: 50%; color: var(--course-tone); font: 600 49px var(--serif); }
.course-dialog-head h2 { margin: 6px 0 8px; font: 600 clamp(37px, 5vw, 58px)/.95 var(--serif); }
.course-dialog-head p { max-width: 650px; margin: 0; color: var(--muted); line-height: 1.6; }
.course-dialog-body { display: grid; grid-template-columns: minmax(250px,.62fr) minmax(0,1.38fr); gap: 30px; padding: 35px 40px 42px; }
.course-syllabus { display: grid; margin-top: 13px; }
.syllabus-row { width: 100%; display: grid; grid-template-columns: 38px 1fr; gap: 12px; align-items: center; padding: 13px 10px; border: 0; border-top: 1px solid var(--line); background: transparent; color:var(--ivory); text-align: left; cursor: pointer; transition: background .16s, padding .16s; }
.syllabus-row:hover, .syllabus-row.active { padding-left: 14px; background: color-mix(in srgb, var(--course-tone) 9%, transparent); }
.syllabus-row.active { box-shadow: inset 2px 0 var(--course-tone); }
.syllabus-row.done span { color: #8dc2b8; }
.syllabus-row span { color: var(--course-tone); font: 600 13px var(--serif); }
.syllabus-copy { display:grid; gap:3px; min-width:0; }
.syllabus-copy small { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.syllabus-copy strong { color:var(--ivory); font-family:var(--sans); }
.syllabus-row strong { font-size: 14px; line-height:1.3; }
.syllabus-row.locked, .lesson-row.locked { opacity: .72; }
.syllabus-row.locked strong, .lesson-row.locked span { color: var(--muted); }
.course-dialog-body aside { align-self: start; padding: 22px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.025); }
.course-dialog-body aside h3 { margin: 8px 0; font: 600 25px var(--serif); }
.course-dialog-body aside p { color: #c8c0ca; font-size: 16px; line-height: 1.75; }
.reader-meta { display: flex; justify-content: space-between; gap: 10px; }
.reader-meta > span:last-child { color: var(--muted); font-size: 12px; }
.lesson-prompt { margin: 18px 0; padding: 14px; border-left: 2px solid var(--course-tone); background: color-mix(in srgb, var(--course-tone) 7%, transparent); }
.lesson-prompt small { color: var(--course-tone); font-size: 12px; font-weight: 700; letter-spacing: .1em; }
.lesson-prompt p { margin: 6px 0 0; }
.reader-actions { display: grid; grid-template-columns: 44px 1fr 44px; gap: 8px; margin-top: 17px; }
.reader-actions .secondary-btn { padding-left: 0; padding-right: 0; }
.reader-actions button:disabled { opacity: .35; cursor: default; }
.study-depth { margin: 22px 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.025); }
.study-depth h3, .study-depth h4 { margin: 0 0 9px; color: var(--gold-bright); font: 600 23px var(--serif); }
.study-depth h4 { font-size: 21px; }
.study-depth p { margin: 0 0 10px; }
.study-depth ol { margin: 13px 0 0; padding-left: 21px; color: #cbc4cd; line-height: 1.75; }
.academic-sheet { margin:0 0 22px; padding:16px; border:1px solid rgba(225,189,120,.3); border-radius:10px; background:linear-gradient(145deg,rgba(185,146,84,.08),rgba(255,255,255,.015)); }
.academic-sheet > div { display:grid; gap:3px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.academic-sheet .academic-status { width:max-content; padding:4px 7px; border:1px solid var(--line); color:var(--gold-bright); font-size:9px; font-weight:800; letter-spacing:.1em; }
.academic-sheet .academic-status.complete { color:#a8d8bc; border-color:rgba(95,191,143,.35); }
.academic-sheet > div strong { margin-top:4px; font:600 19px var(--serif); }
.academic-sheet > div small,.academic-sheet details { color:var(--muted); }
.academic-sheet h4 { margin:14px 0 6px; font:600 18px var(--serif); }
.academic-sheet ul { margin:7px 0 12px; padding-left:20px; line-height:1.55; }
.academic-sheet summary { color:var(--gold-bright); cursor:pointer; font-weight:700; }
.course-visual { margin:0 0 24px; overflow:hidden; border:1px solid var(--line); border-radius:10px; background:#080608; }
.course-visual img { display:block; width:100%; height:230px; object-fit:cover; filter:saturate(.72) contrast(1.05); }
.course-visual figcaption { padding:9px 12px; color:var(--muted); font-size:12px; line-height:1.5; }
.lecture-block { margin:0 0 22px; }
.lecture-block h4,.source-lab h4,.seminar-work h4 { margin:6px 0 12px; color:var(--gold-bright); font:600 26px/1.15 var(--serif); }
.lecture-block p { margin:0 0 14px !important; }
.unit-study-plan { margin:22px 0; padding:18px; border:1px solid rgba(225,189,120,.25); border-radius:12px; background:rgba(185,146,84,.035); }
.unit-study-plan > header { display:grid; grid-template-columns:minmax(0,1fr) minmax(220px,.8fr); gap:16px; align-items:end; padding-bottom:14px; border-bottom:1px solid var(--line); }
.unit-study-plan h4 { margin:5px 0 0; color:var(--gold-bright); font:600 23px var(--serif); }
.unit-study-plan > header > strong { color:#c9c1b8; font-size:12px; line-height:1.5; }
.unit-study-plan > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin-top:14px; }
.unit-study-plan article { display:grid; grid-template-columns:28px minmax(0,1fr); gap:9px; padding:10px; border:1px solid rgba(255,255,255,.07); }
.unit-study-plan article > b { color:var(--gold); font:600 13px var(--serif); }
.unit-study-plan article span,.unit-study-plan article strong,.unit-study-plan article small { display:block; }
.unit-study-plan article strong { font-size:12px; }
.unit-study-plan article small { margin-top:3px; color:var(--muted); line-height:1.4; }
.source-lab { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(230px,.9fr); gap:14px; margin:22px 0; }
.source-lab > div { padding:17px; border:1px solid var(--line); background:rgba(255,255,255,.02); }
.source-lab strong { color:var(--gold-bright); }
.source-checklist ol,.seminar-work ol { margin:10px 0 0; padding-left:21px; color:#cbc4cd; line-height:1.75; }
.course-media { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; margin:22px 0; }
.course-media a { display:grid; grid-template-columns:48px 1fr; gap:12px; min-height:105px; align-items:center; padding:14px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(185,146,84,.07),rgba(255,255,255,.015)); color:var(--ivory); text-decoration:none; }
.course-media a:hover { border-color:var(--course-tone); }
.course-media a > span { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--course-tone); border-radius:50%; color:var(--course-tone); font-size:20px; }
.course-media small,.course-media strong,.course-media em { display:block; }
.course-media small { color:var(--gold); font-size:11px; font-weight:800; letter-spacing:.08em; }
.course-media strong { margin:4px 0; font:600 17px/1.2 var(--serif); }
.course-media em { color:var(--muted); font-size:12px; font-style:normal; }
.seminar-work { margin:22px 0; padding:18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.assessment-rubric { display:grid; grid-template-columns:1fr auto; gap:7px 12px; margin-top:15px; padding:13px; border:1px solid var(--line); }
.assessment-rubric > strong { grid-column:1/-1; color:var(--gold-bright); }
.assessment-rubric span { display:contents; color:var(--muted); font-size:12px; }
.assessment-rubric b { color:var(--ivory); }
.notification-item { width:100%; color:inherit; text-align:left; cursor:pointer; }
.study-check, .study-caution { padding: 12px 14px; border-left: 2px solid var(--teal); background: rgba(115,158,152,.07); }
.study-caution strong { display: block; margin-bottom: 4px; color: #b9d0cc; }
.key-terms { display: grid; gap: 5px; margin: 14px 0 20px; }
.key-terms small { color: var(--gold); font-weight: 700; letter-spacing: .1em; }
.key-terms span { color: var(--muted); font-size: 13px; }

.dashboard-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(275px, .65fr); gap: 22px; margin-top: 22px; }
.panel { background: linear-gradient(145deg, rgba(23,13,24,.97), rgba(7,6,10,.98)); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: inset 0 1px rgba(255,255,255,.018), 0 18px 50px rgba(0,0,0,.16); }
.course-panel, .quiz-panel { padding: 28px; }
.panel-heading { display: flex; justify-content: space-between; gap: 20px; align-items: start; margin-bottom: 20px; }
.panel-heading h2 { font-size: 29px; margin: 5px 0 0; }
.completion-badge { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 12px; white-space: nowrap; }
.module-list { display: grid; gap: 12px; }
.module { border: 1px solid rgba(255,255,255,.06); border-radius: 13px; overflow: hidden; }
.module-head { width: 100%; display: grid; grid-template-columns: 42px 1fr auto; gap: 12px; align-items: center; border: 0; background: rgba(255,255,255,.025); padding: 15px; text-align: left; cursor: pointer; }
.module-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); color: var(--gold); font: 600 18px var(--serif); }
.module-head strong { display: block; font-size: 15px; }
.module-head small { color: var(--muted); }
.module-arrow { color: var(--gold); transition: transform .2s; }
.module.open .module-arrow { transform: rotate(90deg); }
.lesson-list { display: none; padding: 0 15px 12px 68px; }
.module.open .lesson-list { display: grid; }
.lesson-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.06); cursor: pointer; }
.lesson-row span { font-size: 14px; }
.lesson-row small { color: var(--muted); }
.lesson-row.done span::before { content: "✓"; color: var(--teal); margin-right: 8px; }
.profile-content-gate { display:grid; place-items:center; text-align:center; gap:10px; min-height:320px; padding:38px 24px; border:1px solid color-mix(in srgb, var(--gold) 35%, var(--line)); border-radius:20px; background:linear-gradient(145deg, rgba(169,130,64,.12), rgba(19,16,29,.72)); }
.profile-content-gate > span { font:600 52px var(--serif); color:var(--gold); }
.profile-content-gate h4 { margin:0; font-size:clamp(24px, 4vw, 36px); }
.profile-content-gate p { max-width:620px; margin:0 0 8px; color:var(--muted); }
.right-column { display: grid; gap: 22px; }
.daily-card, .ritual-card { padding: 25px; text-align: center; }
.mini-card { width: 126px; aspect-ratio: .62; margin: 20px auto 14px; border: 1px solid var(--gold); border-radius: 8px; display: grid; grid-template-rows: auto 1fr auto; padding: 8px; color: var(--gold); background: radial-gradient(circle, #241726, #070609); box-shadow: 0 14px 35px rgba(0,0,0,.42); }
.mini-card b { font-size: 43px; align-self: center; }
.mini-card span, .mini-card small { font: 600 11px var(--serif); }
.daily-card h3, .ritual-card h3 { font: 600 25px var(--serif); margin: 10px 0 8px; }
.daily-card p, .ritual-card p { color: var(--muted); font-size: 14px; line-height: 1.6; }
.ritual-card { text-align: left; }

.view-intro { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin: 10px 0 28px; }
.view-intro h2 { font-size: clamp(34px, 4vw, 52px); margin: 6px 0 0; }
.view-intro > p { color: var(--muted); max-width: 520px; line-height: 1.6; }
.filter-row { display: flex; gap: 9px; flex-wrap: wrap; margin-bottom: 22px; }
.filter-row input { flex: 1 1 280px; min-width: 0; }
input, textarea, select { width: 100%; padding: 12px 13px; border: 1px solid var(--line); border-radius: 10px; background: #09070b; color: var(--ivory); outline: none; }
input:focus, textarea:focus, select:focus { border-color: var(--gold); box-shadow: 0 0 0 3px rgba(217,182,111,.08); }
textarea { resize: vertical; line-height: 1.55; }
.chip { padding: 10px 13px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; }
.chip.active, .chip:hover { color: var(--ivory); border-color: var(--gold); }
.arcana-grid { display: grid; grid-template-columns: repeat(5, minmax(135px, 1fr)); gap: 15px; }
.arcana-item { position: relative; aspect-ratio: .7; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; padding: 15px; background: radial-gradient(circle at 50% 35%, var(--card-color, #20384c), #09131c 72%); cursor: pointer; text-align: left; transition: transform .2s, border-color .2s; }
.arcana-item:hover { transform: translateY(-5px); border-color: var(--gold); }
.arcana-item .roman { color: var(--gold); font: 600 12px var(--serif); }
.arcana-symbol { position: absolute; inset: 25% 0 auto; text-align: center; font-size: clamp(40px, 4vw, 62px); color: var(--gold-bright); text-shadow: 0 0 25px rgba(217,182,111,.25); }
.arcana-name { position: absolute; bottom: 32px; left: 14px; right: 14px; font: 600 20px/1 var(--serif); }
.arcana-key { position: absolute; bottom: 12px; left: 14px; color: var(--muted); font-size: 10px; }

.practice-board { padding: 30px; }
.question-label, .journal-form label { display: grid; gap: 8px; color: var(--muted); font-size: 13px; font-weight: 600; }
.spread { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 28px 0; }
.draw-slot { min-height: 330px; border: 1px dashed rgba(217,182,111,.45); border-radius: 15px; background: rgba(217,182,111,.025); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; cursor: pointer; transition: border .2s, transform .2s; }
.draw-slot:hover { border-style: solid; transform: translateY(-3px); }
.draw-slot > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--line); color: var(--gold); }
.draw-slot small { color: var(--muted); }
.draw-slot.drawn { background: radial-gradient(circle at 50% 35%, #243e51, #071019 70%); border-style: solid; }
.draw-slot.drawn .draw-symbol { font-size: 60px; color: var(--gold); }
.draw-slot.drawn strong { font: 600 27px var(--serif); }
.draw-slot.drawn em { color: var(--muted); font-size: 12px; font-style: normal; max-width: 190px; line-height: 1.5; }
.practice-actions { display: flex; justify-content: flex-end; gap: 10px; }
.quiz-panel { margin-top: 22px; }
.quiz-question { padding: 18px 0; border-top: 1px solid var(--line); }
.quiz-question p { margin-top: 0; font-weight: 600; }
.answer-grid { display: flex; flex-wrap: wrap; gap: 9px; }
.answer-btn { padding: 10px 13px; border: 1px solid var(--line); border-radius: 8px; background: transparent; cursor: pointer; color: var(--muted); }
.answer-btn:hover { color: var(--ivory); }
.answer-btn.correct { color: #b8e1d9; border-color: var(--teal); background: rgba(108,182,173,.08); }
.answer-btn.wrong { color: #e8b5ae; border-color: var(--danger); }

.lesson-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); gap: 22px; }
.lesson-main, .lesson-aside { padding: clamp(24px, 4vw, 48px); }
.lesson-main h2 { font-size: clamp(38px, 5vw, 63px); line-height: .95; margin: 12px 0 18px; }
.lesson-kicker { color: var(--gold); letter-spacing: .12em; font-size: 12px; font-weight: 700; }
.lesson-lead { color: #c2cbcd; font-size: 19px; line-height: 1.65; }
.lesson-body { color: #cbd2d3; line-height: 1.75; }
.lesson-body h3 { color: var(--ivory); font: 600 28px var(--serif); margin-top: 30px; }
.lesson-body .concept { padding: 18px; border-left: 2px solid var(--gold); background: rgba(217,182,111,.05); }
.lesson-actions { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 35px; }
.lesson-aside { align-self: start; position: sticky; top: 22px; }
.lesson-aside h3 { font: 600 27px var(--serif); }
.lesson-aside p { color: var(--muted); line-height: 1.65; }
.lesson-aside textarea { margin: 12px 0; }
.lesson-aside small { display: block; text-align: center; color: var(--muted); margin-top: 8px; }

.journal-layout { display: grid; grid-template-columns: 380px 1fr; gap: 22px; }
.journal-form { padding: 24px; display: grid; gap: 17px; align-self: start; }
.journal-entries { display: grid; gap: 12px; align-content: start; }
.journal-entry { padding: 21px; border: 1px solid var(--line); border-radius: 13px; background: var(--surface); }
.entry-meta { display: flex; justify-content: space-between; color: var(--gold); font-size: 11px; letter-spacing: .08em; }
.journal-entry h3 { font: 600 25px var(--serif); margin: 10px 0 7px; }
.journal-entry p { color: var(--muted); white-space: pre-wrap; line-height: 1.6; }
.empty-state { padding: 45px; text-align: center; border: 1px dashed var(--line); border-radius: 13px; color: var(--muted); }

dialog { width: min(860px, calc(100% - 30px)); padding: 0; border: 1px solid var(--line); border-radius: 20px; background: #0a080c; color: var(--ivory); grid-template-columns: 310px 1fr; overflow: hidden; box-shadow: 0 30px 100px rgba(0,0,0,.78); }
dialog[open] { display: grid; }
dialog::backdrop { background: rgba(0,5,10,.78); backdrop-filter: blur(8px); }
.dialog-close { position: absolute; right: 15px; top: 12px; width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 50%; background: #151019; cursor: pointer; font-size: 22px; z-index: 2; }
.dialog-card { min-height: 470px; display: grid; place-items: center; font-size: 95px; color: var(--gold); background: radial-gradient(circle, #281929, #070609 70%); }
.dialog-copy { padding: 50px 38px 35px; }
.dialog-copy h2 { font: 600 46px/1 var(--serif); margin: 10px 0 15px; }
.dialog-copy > p { color: var(--muted); line-height: 1.65; }
.meaning-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin: 24px 0; }
.meaning-grid > div { padding: 14px; background: rgba(255,255,255,.03); border: 1px solid var(--line); border-radius: 10px; }
.meaning-grid small { color: var(--gold); }
.meaning-grid p { margin-bottom: 0; font-size: 13px; line-height: 1.55; }
blockquote { margin: 0; padding-left: 16px; border-left: 2px solid var(--gold); font: 600 20px/1.35 var(--serif); }
#toast { position: fixed; right: 25px; bottom: 25px; padding: 13px 17px; border: 1px solid var(--line); background: #15232d; border-radius: 10px; opacity: 0; transform: translateY(10px); pointer-events: none; transition: .2s; z-index: 50; }
#toast.show { opacity: 1; transform: none; }
.app-update-notice { position:fixed; left:50%; bottom:calc(92px + env(safe-area-inset-bottom)); z-index:70; display:flex; align-items:center; gap:14px; width:min(520px,calc(100vw - 24px)); padding:12px 14px; border:1px solid var(--gold); border-radius:14px; background:#171116; box-shadow:0 18px 50px rgba(0,0,0,.52); transform:translateX(-50%); }
.app-update-notice[hidden] { display:none; }
.app-update-notice span { display:grid; min-width:0; flex:1; }
.app-update-notice small { color:var(--muted); line-height:1.35; }
.app-update-notice button { flex:0 0 auto; min-height:44px; white-space:nowrap; }
.mobile-nav { display: none; }
.nav-group-label { margin: 18px 14px 5px; color: #766b5d; font-size: 9px; font-weight: 800; letter-spacing: .18em; }
.sound-panel { position: fixed; right: 28px; top: 92px; z-index: 45; width: min(390px, calc(100vw - 32px)); padding: 18px; overflow: hidden; border: 1px solid var(--line); border-radius: 16px; background: radial-gradient(circle at 10% 10%, rgba(201,156,85,.1), transparent 35%), rgba(7,5,9,.985); box-shadow: 0 24px 80px rgba(0,0,0,.72), inset 0 0 45px rgba(84,48,82,.08); }
.sound-panel::before { content: ""; position: absolute; inset: 0; pointer-events: none; border-radius: inherit; background: linear-gradient(115deg, transparent 35%, rgba(239,200,120,.035), transparent 65%); }
.sound-panel > div { display: flex; gap: 11px; align-items: center; margin-bottom: 13px; }
.sound-now > span:nth-child(2) { flex: 1; }
.sound-now button { width: 30px; height: 30px; border: 0; background: transparent; color: var(--muted); font-size: 20px; cursor: pointer; }
.sound-panel strong, .sound-panel small { display: block; }
.sound-panel small { color: var(--muted); font-size: 12px; margin-top: 2px; }
.sound-panel em { display: block; margin-top: 5px; color: var(--gold); font-size: 10px; font-style: normal; letter-spacing: .08em; text-transform: uppercase; }
.sound-panel label { display: grid; grid-template-columns: 78px 1fr; align-items: center; gap: 12px; color: var(--muted); font-size: 13px; }
.sound-panel .track-picker { margin-bottom: 10px; }
.sound-panel select { padding: 9px 10px; }
.sound-panel input { padding: 0; accent-color: var(--gold); }
.sound-credit { margin:12px 0 0; color:var(--muted); font-size:12px; line-height:1.45; }
.sound-credit a { color:var(--gold); text-decoration:underline; text-underline-offset:3px; }
.sound-pulse { width: 12px; height: 12px; border-radius: 50%; background: #544c55; box-shadow: 0 0 0 6px rgba(217,182,111,.04); }
.sound-panel.is-playing .sound-pulse { background: var(--gold-bright); box-shadow: 0 0 0 6px rgba(217,182,111,.12); animation: soundPulse 1.35s infinite; }
@keyframes soundPulse { 50% { box-shadow: 0 0 0 10px rgba(217,182,111,0); } }

.paracelso-assistant { position:fixed; right:22px; bottom:22px; z-index:46; display:grid; justify-items:end; gap:10px; }
.paracelso-launcher { display:flex; align-items:center; gap:11px; padding:8px 15px 8px 8px; border:1px solid rgba(225,189,120,.48); border-radius:999px; background:linear-gradient(135deg,rgba(28,17,29,.97),rgba(7,6,6,.98)); color:var(--ivory); box-shadow:0 15px 45px rgba(0,0,0,.58),0 0 28px rgba(185,146,84,.09); cursor:pointer; text-align:left; }
.paracelso-launcher:hover { border-color:var(--gold-bright); transform:translateY(-2px); }
.paracelso-launcher > span:last-child { display:grid; gap:1px; }
.paracelso-launcher small { color:var(--gold); font-size:9px; font-weight:800; letter-spacing:.11em; }
.paracelso-launcher strong { font:600 17px var(--serif); }
.paracelso-launcher.has-initiative { max-width:min(340px,calc(100vw - 24px)); border-color:var(--gold-bright); box-shadow:0 15px 45px rgba(0,0,0,.62),0 0 30px rgba(201,156,85,.2); animation:initiativeNudge .55s ease-out; }
.paracelso-launcher.has-initiative > span:last-child { min-width:0; max-width:245px; }
.paracelso-launcher.has-initiative strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.master-initiative-badge { position:absolute; right:-7px; top:-7px; min-width:23px; height:23px; display:grid; place-items:center; padding:0 6px; border:2px solid #090706; border-radius:999px; background:#a43e35; color:#fff; font:800 11px var(--ui); box-shadow:0 3px 12px rgba(0,0,0,.45); }
.master-initiative-badge[hidden] { display:none; }
@keyframes initiativeNudge { 45% { transform:translateY(-3px) scale(1.02); } }
.paracelso-portrait { position:relative; width:54px; height:54px; display:block; flex:0 0 auto; padding:2px; border:1px solid var(--gold); border-radius:50%; background:#090706; box-shadow:0 0 0 5px rgba(185,146,84,.05); animation:paracelsoBreathe 4.8s ease-in-out infinite; }
.paracelso-portrait img { width:100%; height:100%; display:block; border-radius:50%; object-fit:cover; object-position:center 27%; }
.paracelso-portrait > i { position:absolute; right:1px; bottom:3px; width:11px; height:11px; border:2px solid #0b080a; border-radius:50%; background:#5fbf8f; box-shadow:0 0 10px rgba(95,191,143,.65); }
.paracelso-portrait.small { width:48px; height:48px; animation:none; }
.paracelso-panel { width:min(370px,calc(100vw - 28px)); overflow:hidden; border:1px solid rgba(225,189,120,.38); border-radius:10px; background:radial-gradient(circle at 12% 0,rgba(105,54,103,.22),transparent 36%),rgba(7,6,7,.985); box-shadow:0 25px 90px rgba(0,0,0,.78); transform-origin:right bottom; animation:paracelsoReveal .2s ease-out; }
.paracelso-panel > header { display:grid; grid-template-columns:auto 1fr auto; gap:11px; align-items:center; padding:14px 15px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.018); }
.paracelso-panel header span,.paracelso-panel header strong,.paracelso-panel header small { display:block; }
.paracelso-panel header span { color:var(--gold); font-size:9px; font-weight:800; letter-spacing:.12em; }
.paracelso-panel header strong { margin-top:2px; font:600 22px var(--serif); }
.paracelso-panel header small { margin-top:2px; color:var(--muted); font-size:11px; }
.paracelso-panel header small i { display:inline-block; width:7px; height:7px; margin-right:4px; border-radius:50%; background:#5fbf8f; }
#paracelsoClose { width:32px; height:32px; border:1px solid var(--line); border-radius:50%; background:transparent; color:var(--muted); font-size:20px; cursor:pointer; }
.paracelso-conversation { padding:16px 15px 12px; }
.master-shortcuts { display:grid; gap:9px; margin:-2px 0 13px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.master-shortcuts > div:first-child strong,.master-shortcuts > div:first-child small { display:block; }
.master-shortcuts > div:first-child strong { color:var(--ivory); font:600 17px var(--serif); }
.master-shortcuts > div:first-child small { margin-top:2px; color:var(--muted); font-size:11px; }
.master-shortcut-list { display:flex; gap:7px; overflow-x:auto; padding:2px 1px 5px; scrollbar-width:thin; }
.master-shortcut-list button { flex:0 0 92px; display:grid; justify-items:center; gap:5px; min-height:91px; padding:8px 5px; border:1px solid var(--line); border-radius:8px; background:#0d0a0c; color:var(--ivory); cursor:pointer; }
.master-shortcut-list button:hover,.master-shortcut-list button:focus-visible { border-color:var(--gold); background:#161011; }
.master-shortcut-list img { width:42px; height:42px; border:1px solid rgba(225,189,120,.5); border-radius:50%; object-fit:cover; }
.master-shortcut-list span,.master-shortcut-list small { display:block; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.master-shortcut-list span { width:100%; text-align:center; font-size:11px; font-weight:700; }
.master-shortcut-list small { margin-top:2px; color:var(--gold); font-size:9px; font-weight:500; }
.paracelso-messages { display:grid; gap:8px; max-height:240px; overflow:auto; padding-right:3px; margin-bottom:11px; }
.paracelso-message { position:relative; margin:0 0 13px; padding:13px 14px; border-left:2px solid var(--gold); background:rgba(217,182,111,.055); color:#ded7d0; font-size:14px; line-height:1.55; }
.paracelso-message.user { margin-left:36px; border-left:0; border-right:2px solid var(--teal); background:rgba(115,158,152,.08); }
.paracelso-message.guide { animation:paracelsoSpeak .22s ease-out; }
.paracelso-context { display:grid; gap:2px; margin-bottom:11px; padding:10px 11px; border:1px solid var(--line); background:#0b0909; }
.paracelso-context span { color:var(--gold); font-size:9px; font-weight:800; letter-spacing:.1em; }
.paracelso-context strong { font:600 16px var(--serif); }
.paracelso-context small { color:var(--muted); font-size:10px; }
.paracelso-actions { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.paracelso-actions button { display:flex; gap:7px; align-items:center; min-height:42px; padding:9px 10px; border:1px solid var(--line); border-radius:5px; background:#0d0a0c; color:var(--ivory); cursor:pointer; font-size:12px; text-align:left; }
.paracelso-actions button:hover { border-color:var(--gold); background:#15100f; }
.paracelso-actions button span { color:var(--gold-bright); font-size:16px; }
.paracelso-form { display:grid; gap:7px; padding:12px 15px 15px; border-top:1px solid var(--line); }
.paracelso-form > label { color:var(--gold); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.paracelso-form > div { display:grid; grid-template-columns:1fr 42px; gap:6px; }
.paracelso-form input { min-width:0; padding:11px 12px; border:1px solid var(--line); border-radius:5px; background:#0c090b; color:var(--ivory); font-size:14px; }
.paracelso-form button { border:1px solid var(--gold); border-radius:5px; background:linear-gradient(145deg,#6d4d27,#392a19); color:#fff3d5; font-size:20px; cursor:pointer; }
.paracelso-form > small { color:#777078; font-size:10px; line-height:1.4; }
@keyframes paracelsoBreathe { 0%,100% { transform:translateY(0); box-shadow:0 0 0 5px rgba(185,146,84,.05); } 50% { transform:translateY(-3px); box-shadow:0 0 0 7px rgba(185,146,84,.1); } }
@keyframes paracelsoReveal { from { opacity:0; transform:translateY(10px) scale(.97); } }
@keyframes paracelsoSpeak { from { opacity:.25; transform:translateY(4px); } }

@media (prefers-reduced-motion: reduce) {
  .paracelso-portrait,.paracelso-panel,.paracelso-launcher { animation:none; transition:none; }
}

.community-loading { padding: 30px; text-align: center; color: var(--muted); }
.community-pulse { display: grid; grid-template-columns: 150px 1fr auto; gap: 18px; align-items: center; margin-bottom: 18px; padding: 18px 20px; border: 1px solid rgba(201,156,85,.26); border-radius: 15px; background: linear-gradient(100deg, rgba(201,156,85,.1), rgba(12,10,16,.88) 48%); }
.community-tabs { display: flex; gap: 8px; margin: 0 0 18px; }
.community-panel:not(.active) { display: none !important; }
.community-panel { scroll-margin-top:18px; outline:none; }
.member-directory-tools { margin-top:12px; padding:20px; }
.member-directory-tools h3 { margin:4px 0 12px; font:600 28px var(--serif); }
.member-directory-tools input { width:100%; min-height:48px; padding:12px 14px; border:1px solid var(--line); border-radius:10px; background:#090708; color:var(--ivory); font:inherit; }
.member-directory-filters { display:flex; flex-wrap:wrap; gap:8px; margin:12px 0; }
#memberDirectoryResults { margin-top:12px; }
.pulse-number { display: grid; grid-template-columns: auto 1fr; gap: 9px; align-items: baseline; }
.pulse-number strong { color: var(--gold-bright); font: 600 35px var(--serif); }
.pulse-number span { color: var(--muted); font-size: 12px; }
.weekly-prompt p { margin: 5px 0 0; color: #d1cbd3; line-height: 1.5; }
.onboarding-card { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(25px, 6vw, 80px); padding: clamp(25px, 5vw, 54px); background: radial-gradient(circle at 5% 10%, rgba(217,182,111,.11), transparent 38%), var(--surface); }
.onboarding-copy h2 { font: 600 clamp(34px, 4vw, 49px)/1 var(--serif); margin: 10px 0 15px; }
.onboarding-copy > p { color: var(--muted); line-height: 1.65; }
.privacy-line { margin-top: 12px; color: #cbd3d3; font-size: 13px; }
.privacy-line span { color: var(--teal); margin-right: 8px; }
.profile-form { display: grid; gap: 15px; }
.profile-form label { display: grid; gap: 7px; color: var(--muted); font-size: 13px; font-weight: 600; }
.profile-form label > small { color:#827983; font-size:10px; font-weight:400; }
.profile-steps { display:grid; gap:10px; margin:22px 0; padding:0; list-style:none; }
.profile-steps li { display:flex; gap:11px; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); }
.profile-steps li > b { width:29px; height:29px; display:grid; place-items:center; flex:0 0 auto; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font:600 15px var(--serif); }
.profile-steps strong,.profile-steps small { display:block; }
.profile-steps small { margin-top:2px; color:var(--muted); }
.profile-error { margin:0; padding:11px 12px; border-left:2px solid var(--danger); background:rgba(217,142,132,.08); color:#e8b1a9; font-size:12px; line-height:1.5; }
.profile-save-status { min-height:18px; margin:0; color:#b9d8bd; font-size:11px; }
.community-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 22px; }
.community-sidebar { display: grid; align-content: start; gap: 15px; }
.member-card, .community-rules, .post-composer { padding: 22px; }
.member-card { text-align: center; }
.member-avatar, .composer-avatar { display: grid; place-items: center; border-radius: 50%; background: linear-gradient(145deg, #3d5966, #172a35); color: var(--gold-bright); border: 1px solid var(--line); font: 600 23px var(--serif); }
.member-avatar { width: 68px; height: 68px; margin: 0 auto 12px; }
.member-card h3 { font: 600 25px var(--serif); margin: 0; }
.member-card p { color: var(--gold); font-size: 12px; }
.member-card small { display: block; color: var(--muted); line-height: 1.55; margin-bottom: 15px; }
.guest-signin { display: inline-flex; justify-content: center; margin-top: 4px; text-decoration: none; }
.community-rules ul { padding-left: 18px; margin: 15px 0 0; color: var(--muted); font-size: 13px; line-height: 1.8; }
.community-feed { display: grid; gap: 15px; align-content: start; }
.profile-shortcut { min-height:46px; display:flex; align-items:center; gap:8px; padding:5px 11px 5px 5px; border:1px solid var(--line); border-radius:999px; background:rgba(201,156,85,.08); color:var(--ivory); cursor:pointer; }
.profile-shortcut > span { width:34px; height:34px; display:grid; place-items:center; overflow:hidden; border:1px solid rgba(225,189,120,.45); border-radius:50%; color:var(--gold-bright); font:600 18px var(--serif); }
.profile-shortcut > span img { width:100%; height:100%; object-fit:cover; }
.profile-shortcut strong { max-width:130px; overflow:hidden; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.feed-tools { display: grid; gap: 10px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.018); }
.community-topic-filters { display: flex; flex-wrap: wrap; gap: 7px; }
.composer-head { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; }
.post-composer > input { width:100%; margin-bottom:10px; font:600 18px var(--serif); }
.composer-avatar { width: 38px; height: 38px; font-size: 16px; }
.composer-actions { display: grid; grid-template-columns: minmax(130px, 200px) 1fr auto; align-items: center; gap: 10px; margin-top: 10px; }
.composer-actions span { color: var(--muted); font-size: 11px; }
.feed-filter { display: flex; justify-content: space-between; align-items: center; gap:10px; margin-top: 3px; }
.forum-sort { margin-left:auto; display:flex; align-items:center; gap:7px; color:var(--muted); font-size:11px; }
.forum-sort select { min-height:38px; padding:7px 30px 7px 9px; font-size:11px; }
.community-posts { display: grid; gap: 12px; }
.community-post { padding: 20px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.community-post.virtual-editorial { border-color:rgba(217,182,111,.48); background:linear-gradient(145deg,rgba(41,15,31,.96),rgba(8,6,9,.98)); box-shadow:inset 3px 0 rgba(217,182,111,.5); }
.virtual-editorial-label { margin-right:auto; color:var(--gold-bright); font:700 9px var(--inscription); letter-spacing:.12em; }
.post-head { display: grid; grid-template-columns: 40px minmax(0,1fr); column-gap: 11px; row-gap: 4px; align-items: center; }
.post-head .composer-avatar { grid-row: 1/3; }
.post-author-line { min-width:0; display:flex; align-items:center; flex-wrap:wrap; gap:7px; }
.post-head strong { min-width:0; font-size: 14px; overflow-wrap:anywhere; }
.post-head small { grid-column:2; color: var(--muted); font-size: 11px; line-height:1.4; overflow-wrap:anywhere; }
.post-topic { color: var(--gold); border: 1px solid var(--line); border-radius: 999px; padding: 5px 8px; font-size: 10px; }
.community-post > p { margin: 16px 0 0; color: #d1d7d7; line-height: 1.65; white-space: pre-wrap; }
.forum-thread { display:grid; grid-template-columns:44px minmax(0,1fr); padding:0; overflow:hidden; }
.thread-vote { display:grid; align-content:start; justify-items:center; gap:4px; padding:20px 8px; border-right:1px solid var(--line); background:rgba(201,156,85,.035); color:var(--gold); }
.thread-vote b { color:var(--gold-bright); font-size:12px; }
.thread-body { min-width:0; padding:20px; }
.thread-body > h3 { margin:15px 0 5px; font:600 clamp(21px,3vw,27px)/1.2 var(--serif); }
.thread-body > p { margin:8px 0 0; color:#d1d7d7; line-height:1.65; white-space:pre-wrap; overflow-wrap:anywhere; }
.post-actions { display: flex; justify-content: space-between; align-items: center; margin-top: 16px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,.07); }
.appreciate-btn { display: inline-flex; align-items: center; gap: 6px; padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; }
.appreciate-btn span { color: var(--gold); }
.appreciate-btn.active { border-color: rgba(201,156,85,.55); background: rgba(201,156,85,.1); color: var(--ivory); }
.appreciate-btn b { color: var(--gold-bright); font-size: 12px; }
.thread-comments { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); }
.comment-list { display:grid; gap:9px; }
.forum-comment { display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; padding:11px; border-left:2px solid rgba(201,156,85,.35); background:rgba(255,255,255,.018); }
.forum-comment .composer-avatar { width:32px; height:32px; font-size:13px; }
.forum-comment strong,.forum-comment small { display:block; }
.forum-comment small { margin-top:2px; color:var(--muted); font-size:9px; }
.forum-comment p { margin:7px 0 0; color:#d8d2da; font-size:12px; line-height:1.55; white-space:pre-wrap; }
.comment-form { display:grid; grid-template-columns:1fr auto; gap:8px; align-items:end; margin-top:12px; }
.comment-form textarea { min-height:72px; }
.api-error { padding: 28px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: 13px; }

.game-selector { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 18px; }
.game-tab { display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto auto; gap: 2px 14px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: rgba(10,7,12,.9); text-align: left; cursor: pointer; }
.game-tab > span { grid-row: 1/3; width: 54px; height: 54px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--gold); font: 600 21px var(--serif); }
.game-tab strong { font: 600 21px var(--serif); }
.game-tab small { color: var(--muted); }
.game-tab.active { border-color: rgba(239,200,120,.55); background: linear-gradient(135deg, rgba(116,61,111,.22), rgba(10,7,12,.94)); }
.games-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) 330px; gap: 18px; }
.game-stage, .leaderboard { padding: 24px; }
.game-head { display: flex; justify-content: space-between; gap: 20px; align-items: start; }
.game-head h3, .leaderboard h3 { margin: 5px 0 10px; font: 600 31px var(--serif); }
.game-score { text-align: right; }
.game-score span { display: block; color: var(--muted); font-size: 11px; letter-spacing: .1em; }
.game-score strong { color: var(--gold-bright); font: 600 34px var(--serif); }
.game-stage > p { color: var(--muted); }
.memory-board { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin: 22px 0; }
.memory-card { position: relative; min-height: 128px; padding: 0; border: 1px solid rgba(201,156,85,.28); border-radius: 12px; overflow: hidden; background: linear-gradient(145deg, #1e1120, #08060a); cursor: pointer; transform-style: preserve-3d; }
.memory-card .card-back, .memory-card .card-face { position: absolute; inset: 0; display: grid; place-items: center; transition: opacity .25s, transform .25s; backface-visibility: hidden; }
.memory-card .card-back { color: var(--gold); font: 600 36px var(--serif); }
.memory-card .card-back::before { content: ""; position: absolute; inset: 12px; border: 1px solid rgba(201,156,85,.23); border-radius: 8px; }
.memory-card .card-face { align-content: center; gap: 8px; opacity: 0; transform: rotateY(180deg); background: radial-gradient(circle, #35203a, #09070b 72%); }
.memory-card .card-face b { color: var(--gold-bright); font-size: 36px; }
.memory-card .card-face small { color: #d7ced8; }
.memory-card.revealed .card-back { opacity: 0; transform: rotateY(180deg); }
.memory-card.revealed .card-face { opacity: 1; transform: none; }
.memory-card.matched { border-color: var(--teal); box-shadow: 0 0 20px rgba(115,158,152,.15); }
.game-actions { display: flex; align-items: center; gap: 14px; }
.game-actions span { color: var(--muted); }
.game-seal, .quiz-symbol { min-height: 280px; display: grid; place-items: center; color: var(--gold); font: 600 90px var(--serif); border: 1px solid var(--line); border-radius: 14px; background: radial-gradient(circle, rgba(94,48,92,.25), transparent 58%); }
.quiz-game > p { text-align: center; font: 600 22px var(--serif); }
.game-answers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.game-answers button { padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.03); cursor: pointer; }
.game-answers button:hover { border-color: var(--gold); }
.game-result { min-height: 280px; display: grid; place-items: center; align-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 14px; }
.game-result strong { color: var(--gold-bright); font: 600 64px var(--serif); }
.game-result span { color: var(--muted); }
.rpg-start { min-height:280px; display:grid; grid-template-columns:130px 1fr; gap:24px; align-items:center; padding:25px; border:1px solid var(--line); border-radius:14px; background:radial-gradient(circle at 16% 45%,rgba(133,84,131,.2),transparent 34%),#090708; }
.rpg-seal { width:120px; height:160px; display:grid; place-items:center; border:1px solid var(--gold); color:var(--gold-bright); background:linear-gradient(145deg,#271327,#070506); font:600 55px var(--serif); box-shadow:0 18px 45px rgba(0,0,0,.38); }
.rpg-start h4,.rpg-encounter h4,.rpg-resolution h4 { margin:5px 0 8px; font:600 31px var(--serif); }
.rpg-start p,.rpg-encounter p { color:var(--muted); line-height:1.55; }
.rpg-stats { display:grid; grid-template-columns:1fr 1fr; gap:7px; margin-top:16px; }
.rpg-stats span { display:flex; justify-content:space-between; gap:8px; padding:9px 10px; border:1px solid rgba(255,255,255,.08); color:#cfc5ce; font-size:12px; }
.rpg-stats b { color:var(--gold-bright); }
.rpg-encounter { display:grid; grid-template-columns:130px 1fr; gap:22px; align-items:center; margin:18px 0 12px; padding:18px; border:1px solid var(--line); border-radius:12px; background:#0a0709; }
.encounter-art { min-height:160px; display:grid; place-items:center; border:1px solid rgba(225,189,120,.4); background:radial-gradient(circle,#311d33,#080608 72%); color:var(--gold-bright); font:600 65px var(--serif); }
.rpg-hand { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.rpg-hand button { min-height:175px; display:flex; flex-direction:column; align-items:flex-start; gap:7px; padding:15px; border:1px solid var(--line); border-radius:9px; background:linear-gradient(155deg,#151014,#080608); color:var(--ivory); text-align:left; cursor:pointer; }
.rpg-hand button:hover { border-color:var(--gold); transform:translateY(-2px); }
.rpg-hand button > span { color:var(--gold-bright); font-size:28px; }
.rpg-hand strong { font:600 20px var(--serif); }
.rpg-hand small { color:var(--muted); line-height:1.45; }
.rpg-hand b { margin-top:auto; color:var(--gold); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.rpg-rule { color:#81777f !important; font-size:11px; text-align:center; }
.rpg-resolution { min-height:310px; display:grid; place-items:center; align-content:center; gap:7px; padding:25px; border:1px solid var(--line); border-radius:14px; text-align:center; background:radial-gradient(circle,rgba(115,158,152,.13),transparent 55%); }
.rpg-resolution.failure { background:radial-gradient(circle,rgba(133,84,131,.18),transparent 55%); }
.rpg-resolution > span { color:var(--gold-bright); font-size:55px; }
.rpg-resolution p { margin:0; color:var(--muted); }
.rpg-resolution > small { margin-bottom:15px; color:#b7adb5; }
.leaderboard-rows { display: grid; margin: 16px 0; }
.leaderboard-rows > div { display: grid; grid-template-columns: 26px 30px 1fr auto; gap: 8px; align-items: center; min-height: 48px; border-bottom: 1px solid rgba(255,255,255,.07); }
.leaderboard-rows span, .leaderboard-rows em { color: var(--gold); font-style: normal; }
.leaderboard-rows b { color: var(--gold-bright); text-align: center; }
.leaderboard > small { color: var(--muted); line-height: 1.5; }

.chat-panel { padding: 0; overflow: hidden; }
.chat-head { display: flex; justify-content: space-between; gap:18px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.chat-head > div { display: flex; align-items: center; gap: 11px; }
.chat-head strong, .chat-head small { display: block; }
.chat-head small { margin-top: 2px; color: var(--muted); }
.chat-head-actions { display:flex; gap:8px; align-items:center; }
.live-orb { width: 10px; height: 10px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 6px rgba(115,158,152,.08); }
.chat-switch { display:grid; grid-template-columns:1fr 1fr; gap:4px; margin:12px 16px 0; padding:4px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.025); }
.chat-switch button { position:relative; min-height:42px; display:flex; justify-content:center; align-items:center; gap:8px; border:0; border-radius:10px; background:transparent; color:var(--muted); font-weight:700; cursor:pointer; }
.chat-switch button.active { background:rgba(201,156,85,.16); color:var(--gold-bright); box-shadow:inset 0 0 0 1px rgba(201,156,85,.34); }
.chat-switch button b,.private-chat-row .unread-badge { min-width:20px; height:20px; display:grid; place-items:center; padding:0 6px; border-radius:999px; background:#a4463d; color:#fff; font:800 10px var(--sans); }
.chat-options { border-bottom:1px solid var(--line); background:rgba(185,146,84,.025); }
.chat-options summary { min-height:44px; display:flex; align-items:center; padding:0 20px; color:var(--muted); font-size:11px; font-weight:700; cursor:pointer; }
.chat-options[open] summary { border-bottom:1px solid rgba(255,255,255,.06); }
.presence-controls { display:flex; align-items:end; gap:12px; }
.chat-options .presence-controls { padding:14px 20px 4px; }
.presence-controls label { display:grid; gap:3px; color:var(--muted); font-size:10px; font-weight:700; }
.presence-controls select { min-width:190px; padding:8px 9px; font-size:12px; }
.presence-controls label > small { display:block; max-width:250px; margin-top:5px; color:var(--muted); font-size:9px; font-weight:400; line-height:1.35; }
.presence-strip { display:flex; gap:13px; padding:12px 20px; overflow-x:auto; border-bottom:1px solid var(--line); scrollbar-width:none; }
.presence-member { flex:0 0 auto; width:74px; display:grid; justify-items:center; gap:2px; text-align:center; }
.presence-member .presence-avatar { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:#171019; color:var(--gold-bright); font:600 18px var(--serif); }
.presence-member .presence-avatar,.nearby-list .presence-avatar,.chat-message .presence-avatar { overflow:hidden; }
.presence-member small { width:74px; overflow:hidden; color:var(--ivory); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.presence-member em { color:var(--muted); font-size:9px; font-style:normal; }
.presence-avatar { position:relative; }
.presence-dot { position:absolute; right:-1px; bottom:0; width:11px; height:11px; border:2px solid #090709; border-radius:50%; background:#5d5960; }
.presence-dot.online { background:#5fbf8f; }
.presence-dot.away { background:#d5a950; }
.presence-dot.offline { background:#66616a; }
.presence-dot.private { background:transparent; border-color:#77717b; }
.nearby-members { display:grid; grid-template-columns:minmax(190px,.7fr) auto minmax(280px,1.3fr); gap:16px; align-items:center; padding:15px 20px; border-bottom:1px solid var(--line); background:rgba(185,146,84,.04); }
.nearby-members > div > strong,.nearby-members > div > small { display:block; }
.nearby-members > div > small { margin-top:3px; color:var(--muted); font-size:10px; }
.nearby-actions { display:grid; gap:5px; justify-items:start; }
.nearby-actions .secondary-btn { padding:9px 11px; font-size:11px; }
.nearby-list { display:grid; gap:5px; }
.nearby-list article { display:grid; grid-template-columns:35px 1fr auto; gap:9px; align-items:center; padding:7px 9px; border:1px solid rgba(255,255,255,.07); background:rgba(0,0,0,.2); }
.nearby-list .presence-avatar { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--gold-bright); }
.nearby-list strong,.nearby-list small { display:block; }
.nearby-list strong { font-size:12px; }
.nearby-list small { color:var(--muted); font-size:9px; }
.nearby-skill { color:var(--gold); font-size:9px; white-space:nowrap; }
.nearby-empty { color:var(--muted); font-size:11px; line-height:1.45; }
.chat-messages { height: min(55vh, 520px); overflow-y: auto; padding: 18px 20px; display: grid; align-content: start; gap: 13px; }
.chat-message { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; max-width:86%; }
.chat-message.mine { grid-template-columns:minmax(0,1fr); justify-self:end; text-align:right; }
.chat-message.mine .presence-avatar,.chat-message.mine header strong { display:none; }
.chat-message header { display: flex; justify-content: space-between; gap: 10px; }
.chat-message.mine header { justify-content:flex-end; }
.chat-message header small { color: var(--muted); }
.chat-message p { display: inline-block; margin: 5px 0 0; padding: 10px 13px; border-radius: 4px 14px 14px 14px; background: rgba(133,84,131,.15); color: #e0d9e1; line-height: 1.5; }
.chat-message.mine p { border-radius:14px 4px 14px 14px; background:rgba(115,158,152,.19); text-align:left; }
.chat-composer { display: grid; grid-template-columns: 1fr auto; gap: 9px; padding: 15px; border-top: 1px solid var(--line); background: rgba(5,4,7,.72); }
.chat-composer input { min-width:0; border-radius:999px; }
.chat-composer button { width:auto; min-width:92px; border-radius:999px; }
.chat-composer button b { display:none; }
.chat-guest { padding: 16px; text-align: center; border-top: 1px solid var(--line); }
.private-chat-list { min-height:min(55vh,520px); padding:10px 14px 18px; }
.private-chat-row { width:100%; display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:center; padding:13px 8px; border:0; border-bottom:1px solid rgba(255,255,255,.07); background:transparent; color:var(--ivory); text-align:left; cursor:pointer; }
.private-chat-row:hover { background:rgba(201,156,85,.05); }
.private-chat-row .presence-avatar { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; background:#171019; color:var(--gold-bright); font:600 18px var(--serif); }
.private-chat-row strong,.private-chat-row small,.private-chat-row em { display:block; }
.private-chat-row small { margin-top:2px; color:var(--gold); font-size:10px; }
.private-chat-row em { max-width:58ch; margin-top:4px; overflow:hidden; color:var(--muted); font-size:12px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.private-chat-row > span:last-child { display:grid; justify-items:end; gap:6px; color:var(--muted); font-size:10px; }
.private-chat-row.unread { background:rgba(201,156,85,.07); }
.private-chat-row.unread strong { color:var(--gold-bright); }
.private-chat-row .presence-avatar img { width:100%; height:100%; object-fit:cover; border-radius:50%; }

.social-profile { max-width: 900px; margin: 0 auto; }
.profile-cover { position: relative; height: 245px; border: 1px solid var(--line); border-radius: 20px 20px 0 0; background: radial-gradient(circle at 70% 35%, rgba(239,200,120,.24), transparent 18%), linear-gradient(135deg, #3b173d, #0b0710 66%); }
.profile-cover::after { content: "☾  ·  ✦  ·  𓂀  ·  ᚠ  ·  🜍"; position: absolute; right: 7%; top: 38%; color: rgba(239,200,120,.46); font: 600 26px var(--serif); letter-spacing: .28em; }
.profile-cover.cover-ember { background: radial-gradient(circle at 72% 38%, rgba(244,173,91,.28), transparent 20%), linear-gradient(135deg, #421c12, #0b0708 68%); }
.profile-cover.cover-midnight { background: radial-gradient(circle at 72% 38%, rgba(95,144,176,.23), transparent 20%), linear-gradient(135deg, #102d43, #07070d 68%); }
.profile-cover.cover-forest { background: radial-gradient(circle at 72% 38%, rgba(120,163,121,.2), transparent 20%), linear-gradient(135deg, #153127, #070a08 68%); }
.social-avatar { position: absolute; left: 36px; bottom: -54px; width: 108px; height: 108px; display: grid; place-items: center; border: 5px solid var(--bg); border-radius: 50%; background: #18101b; color: var(--gold-bright); font: 600 45px var(--serif); box-shadow: 0 10px 35px rgba(0,0,0,.5); z-index: 2; }
.social-avatar img,.member-avatar img,.composer-avatar img,.presence-avatar img,.avatar-preview img { width:100%; height:100%; display:block; border-radius:inherit; object-fit:cover; }
.profile-summary { border-radius: 0 0 20px 20px; padding: 65px 34px 28px; display: grid; gap: 18px; }
.profile-summary h2 { margin: 0; font: 600 38px var(--serif); }
.profile-identity { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:start; }
.profile-identity p { margin:2px 0 0; color:var(--gold); }
.profile-handle { display:block; margin-bottom:4px; color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.12em; }
.profile-about { padding:18px 0 4px; border-top:1px solid var(--line); }
.profile-about > p { margin:7px 0 12px; color:var(--muted); line-height:1.65; }
.profile-motto { margin:0; padding:13px 16px; border-left:2px solid var(--gold); background:rgba(201,156,85,.05); color:#e5d8c2; font:italic 18px/1.5 var(--serif); }
.profile-details { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 12px; }
.profile-details span { padding:7px 9px; border:1px solid var(--line); color:var(--muted); font-size:11px; }
.password-field { display:grid; grid-template-columns:1fr auto; gap:7px; }
.password-field input { min-width:0; }
.password-field button { min-width:88px; border:1px solid var(--line); background:rgba(255,255,255,.04); color:var(--gold-bright); cursor:pointer; }
.avatar-editor { display:grid; grid-template-columns:96px minmax(0,1fr); gap:18px; align-items:center; padding:16px; border:1px solid var(--line); background:rgba(255,255,255,.02); }
.avatar-preview { width:92px; height:92px; display:grid; place-items:center; overflow:hidden; border:2px solid var(--gold); border-radius:50%; background:#130d13; color:var(--gold-bright); font:600 38px var(--serif); }
.avatar-editor > div { display:grid; justify-items:start; gap:7px; }
.avatar-editor strong,.avatar-editor small { display:block; }
.avatar-editor small { color:var(--muted); }
.avatar-presets { margin:0; padding:14px; border:1px solid var(--line); background:rgba(255,255,255,.018); }
.avatar-presets legend { padding:0 6px; color:var(--cream); font:600 1rem var(--serif); }
.avatar-presets > p { margin:0 0 12px; color:var(--muted); font-size:.875rem; }
.avatar-preset-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.avatar-preset-grid button { display:grid; gap:7px; justify-items:center; min-width:0; padding:9px 7px; border:1px solid transparent; border-radius:10px; background:transparent; color:var(--muted); cursor:pointer; font:600 .75rem var(--sans); }
.avatar-preset-grid button:hover,.avatar-preset-grid button:focus-visible { border-color:var(--gold); color:var(--cream); outline:none; }
.avatar-preset-grid button.selected { border-color:var(--gold-bright); background:rgba(207,170,98,.12); color:var(--gold-bright); box-shadow:0 0 0 2px rgba(207,170,98,.12); }
.avatar-preset-grid img { width:100%; max-width:72px; aspect-ratio:1; display:block; object-fit:cover; border-radius:50%; }
.avatar-preset-grid button > span,.avatar-preset-grid button strong,.avatar-preset-grid button small { display:block; min-width:0; width:100%; }
.avatar-preset-grid button strong { overflow:hidden; color:var(--cream); font-size:.72rem; line-height:1.25; text-overflow:ellipsis; white-space:nowrap; }
.avatar-preset-grid button small { margin-top:3px; color:var(--muted); font-size:.62rem; font-weight:500; line-height:1.25; }
.avatar-character-description { min-height:2.8em; margin:12px 0 0 !important; padding:10px 12px; border-left:2px solid var(--gold); background:rgba(201,156,85,.05); color:#d9cdb9 !important; line-height:1.45; }
.avatar-upload { position:relative; display:inline-flex; width:auto; overflow:hidden; }
.avatar-upload input { position:absolute; inset:0; opacity:0; cursor:pointer; }
.interest-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.interest-chips span { padding: 7px 10px; border: 1px solid var(--line); border-radius: 999px; color: #d4c9d6; font-size: 12px; }
.skill-sheet { display:grid; gap:12px; margin-top:8px; padding:18px; border:1px solid var(--line); background:rgba(0,0,0,.18); }
.skill-sheet h3 { margin:3px 0 0; font-size:26px; }
.skill-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:7px; }
.skill-card { display:grid; grid-template-columns:38px 1fr auto; gap:10px; align-items:center; padding:10px; border:1px solid rgba(255,255,255,.07); background:rgba(255,255,255,.02); }
.skill-card.primary { border-color:rgba(225,189,120,.45); background:rgba(185,146,84,.07); }
.skill-card > span { width:36px; height:36px; display:grid; place-items:center; border:1px solid #6d5b41; border-radius:50%; color:var(--gold-bright); }
.skill-card strong,.skill-card small { display:block; }
.skill-card small { margin-top:2px; color:var(--muted); font-size:9px; }
.skill-card > b { color:var(--gold-bright); font:600 25px var(--serif); }
.profile-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-block: 1px solid var(--line); }
.profile-stats > div { padding: 15px 10px; text-align: center; }
.profile-stats > div + div { border-left:1px solid var(--line); }
.profile-stats strong, .profile-stats span { display: block; }
.profile-stats strong { color: var(--gold-bright); font: 600 27px var(--serif); }
.profile-stats span { color: var(--muted); font-size: 12px; }
.guardian-metrics { padding:18px; border:1px solid rgba(201,156,85,.32); border-radius:14px; background:rgba(201,156,85,.045); }
.guardian-metrics h3 { margin:4px 0; font:600 25px var(--serif); }
.guardian-metrics > div > small,.guardian-metrics > p { color:var(--muted); font-size:11px; line-height:1.5; }
.guardian-metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:14px; }
.guardian-metric-grid article { padding:12px; border:1px solid rgba(255,255,255,.07); background:rgba(0,0,0,.18); text-align:center; }
.guardian-metric-grid strong,.guardian-metric-grid span { display:block; }
.guardian-metric-grid strong { color:var(--gold-bright); font:600 25px var(--serif); }
.guardian-metric-grid span { color:var(--muted); font-size:10px; }
.profile-content-tabs { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--line); }
.profile-content-tabs button { min-height:46px; border:0; border-bottom:2px solid transparent; background:transparent; color:var(--muted); font:700 10px var(--sans); letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.profile-content-tabs button.active { border-bottom-color:var(--gold-bright); color:var(--gold-bright); }
.profile-content-section { min-width:0; }
.academic-transcript { display:grid; gap:16px; padding-top:18px; }
.study-status-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line); border-radius:12px; overflow:hidden; background:rgba(201,156,85,.035); }
.study-status-grid article { min-width:0; padding:14px 8px; text-align:center; }
.study-status-grid article + article { border-left:1px solid var(--line); }
.study-status-grid strong,.study-status-grid span { display:block; }
.study-status-grid strong { color:var(--gold-bright); font:600 27px var(--serif); }
.study-status-grid span { margin-top:3px; color:var(--muted); font-size:10px; }
.study-hours-note { margin:0; color:var(--muted); font-size:11px; line-height:1.55; }
.transcript-list { display:grid; gap:9px; }
.transcript-row { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:start; padding:14px; border:1px solid rgba(201,156,85,.24); border-radius:12px; background:rgba(0,0,0,.18); }
.transcript-glyph { width:40px; height:40px; display:grid; place-items:center; border:1px solid var(--gold-dim); border-radius:50%; color:var(--gold-bright); font-size:20px; }
.transcript-copy { min-width:0; }
.transcript-copy > strong,.transcript-status { display:block; }
.transcript-copy > strong { font-size:14px; }
.transcript-status { margin-top:3px; color:var(--gold); font-size:11px; }
.transcript-status.passed { color:#80c9a4; }
.transcript-status.confirmed { color:#dcb672; }
.transcript-row > b { color:var(--gold-bright); font:600 18px var(--serif); white-space:nowrap; }
.exam-commission { margin:8px 0 0; color:var(--muted); font-size:10px; line-height:1.45; }
.exam-booking { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; margin-top:12px; }
.exam-booking label { display:grid; gap:5px; color:var(--muted); font-size:10px; }
.exam-booking input,.exam-score-label input { min-width:0; min-height:44px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; background:#090709; color:var(--ivory); color-scheme:dark; }
.exam-score-label { display:flex; align-items:center; gap:7px; margin-top:8px; color:var(--muted); font-size:10px; }
.exam-score-label input { width:74px; }
.transcript-empty { padding:24px; border:1px dashed var(--line); border-radius:12px; text-align:center; }
.transcript-empty strong { font:600 24px var(--serif); }
.transcript-empty p { color:var(--muted); line-height:1.55; }
.profile-section-head { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:14px; }
.profile-section-head h3 { margin:3px 0 0; font:600 27px var(--serif); }
.profile-activity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
.profile-activity-card { min-height:170px; display:flex; flex-direction:column; padding:16px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(133,84,131,.12),rgba(0,0,0,.18)); }
.profile-activity-card > span { color:var(--gold); font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.profile-activity-card p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:5; -webkit-box-orient:vertical; margin:13px 0; color:#ded5df; font-size:12px; line-height:1.55; }
.profile-activity-card small { margin-top:auto; color:var(--muted); }
.profile-activity-empty { grid-column:1/-1; min-height:210px; display:grid; place-items:center; align-content:center; padding:28px; border:1px dashed var(--line); text-align:center; }
.profile-activity-empty > span { color:var(--gold-bright); font-size:38px; }
.profile-activity-empty strong { margin-top:8px; font:600 25px var(--serif); }
.profile-activity-empty p { max-width:430px; margin:6px 0 0; color:var(--muted); line-height:1.6; }
.auth-error a { color:var(--gold-bright); font-weight:700; }
.profile-guest { padding: 38px; text-align: center; }
.profile-guest h3 { font: 600 30px var(--serif); }
.install-dialog { width: min(650px, calc(100% - 30px)); grid-template-columns: 130px 1fr; gap: 28px; align-items: center; padding: 38px; }
.install-dialog h2 { margin: 7px 0 15px; font: 600 38px/1 var(--serif); }
.install-dialog p, .install-dialog li { color: var(--muted); line-height: 1.65; }
.install-mark { width: 120px; height: 120px; display: grid; place-items: center; border: 1px solid var(--gold); border-radius: 28px; background: radial-gradient(circle, #2a182b, #070609 75%); color: var(--gold-bright); font: 600 64px var(--serif); box-shadow: 0 18px 50px rgba(0,0,0,.42); }
.install-benefits { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 13px; }
.install-benefits span { padding:6px 8px; border:1px solid rgba(225,189,120,.25); border-radius:999px; background:rgba(225,189,120,.06); color:var(--gold-bright); font-size:.75rem; }
.ios-install-steps { display:grid; gap:9px; margin:16px 0; padding:0; list-style:none; counter-reset:install-step; }
.ios-install-steps li { display:grid; grid-template-columns:34px 1fr; gap:11px; align-items:center; min-height:48px; padding:8px 10px; border:1px solid rgba(225,189,120,.2); border-radius:12px; background:rgba(225,189,120,.04); }
.ios-install-steps li::before { counter-increment:install-step; content:counter(install-step); display:grid; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--gold); color:#120c0d; font-weight:800; }
.ios-install-steps strong { color:var(--paper); }
#copyInstallUrl { margin-top:4px; }
.install-status { min-height:1.5em; margin:10px 0 0; color:var(--gold-bright) !important; font-size:.9rem; }
.install-app-floating { position:fixed; z-index:29; left:max(18px,env(safe-area-inset-left)); bottom:24px; display:flex; align-items:center; gap:9px; min-height:48px; padding:9px 16px 9px 10px; border:1px solid rgba(225,189,120,.72); border-radius:999px; background:linear-gradient(135deg,#c99c55,#e0bd76); color:#130d0e; box-shadow:0 14px 45px rgba(0,0,0,.55); cursor:pointer; font:800 .9rem var(--ui); }
.install-app-floating > span { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:rgba(18,11,12,.13); font-size:20px; }
.install-app-floating:hover,.install-app-floating:focus-visible { transform:translateY(-1px); box-shadow:0 17px 50px rgba(0,0,0,.66); }
.install-app-floating[hidden] { display:none; }

@media (max-width: 1100px) {
  .course-catalog { grid-template-columns: repeat(2, 1fr); }
  .arcana-grid { grid-template-columns: repeat(4, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .right-column { grid-template-columns: 1fr 1fr; }
  .daily-card { display: grid; grid-template-columns: 110px 1fr; column-gap: 18px; text-align: left; }
  .daily-card .eyebrow, .daily-card .text-btn { grid-column: 1/3; }
  .mini-card { grid-row: 2/5; width: 100px; }
  .start-here { grid-template-columns: 1fr repeat(3, .65fr); }
  .start-copy small { display: none; }
  .games-layout { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar { display: none; }
  main { padding: 0 14px 104px; }
  .topbar { position: sticky; top: 0; z-index: 24; min-height: 76px; margin: 0 -14px 14px; padding: 0 14px; background: rgba(5,4,7,.92); backdrop-filter: blur(16px); }
  .topbar h1 { font-size: 29px; }
  .topbar .eyebrow { display: none; }
  .sound-toggle > span:nth-child(2) { display: block; }
  .sound-toggle > span:nth-child(2) strong { display: none; }
  .sound-toggle { min-height: 45px; max-width: 132px; padding: 7px 9px; }
  .sound-toggle small { max-width: 80px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
  .hero-card { min-height: 450px; }
  .academy-hero { grid-template-columns: 1fr; min-height: auto; padding: 28px 23px; }
  .academy-compass { display: none; }
  .catalog-toolbar { display: block; }
  .catalog-filters { justify-content: flex-start; margin-top: 15px; }
  .hero-card img { object-position: 63% center; }
  .hero-overlay { background: linear-gradient(0deg, rgba(4,10,16,.98) 0%, rgba(4,10,16,.75) 55%, rgba(4,10,16,.08)); }
  .hero-content { position: absolute; bottom: 0; width: 100%; padding: 28px 24px; }
  .hero-content h2 { font-size: 42px; }
  .right-column, .lesson-layout, .journal-layout { grid-template-columns: 1fr; }
  .start-here { grid-template-columns: 1fr 1fr 1fr; }
  .start-copy { grid-column: 1/4; }
  .quick-action { justify-content: center; }
  .quick-action small { display: none; }
  .community-layout { grid-template-columns: 1fr; }
  .nearby-members { grid-template-columns:1fr auto; }
  .nearby-list { grid-column:1/3; }
  .community-sidebar { grid-template-columns: 1fr 1fr; }
  .onboarding-card { grid-template-columns: 1fr; }
  .community-pulse { grid-template-columns: 120px 1fr; }
  .community-pulse > button { grid-column: 1/3; }
  .lesson-aside { position: static; }
  .spread { grid-template-columns: 1fr; }
  .draw-slot { min-height: 230px; }
  .arcana-grid { grid-template-columns: repeat(3, 1fr); }
  .mobile-nav { position: fixed; display: grid; grid-template-columns: repeat(5, 1fr); left: 0; right: 0; bottom: 0; z-index: 30; padding: 8px max(8px, env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)); background: rgba(5,4,7,.97); border-top: 1px solid var(--line); backdrop-filter: blur(15px); }
  .contact-shortcut { display:none; }
  .atlas-shortcut { display:none; }
  .mobile-nav button { display: grid; gap: 2px; justify-items: center; border: 0; background: none; color: var(--muted); font-size: 10px; }
  .mobile-nav button span { font-size: 20px; color: var(--gold); }
  .mobile-nav button.active { color: var(--ivory); }
  .profile-shortcut { display:none; }
  .topbar > div:first-child { min-width:0; }
  .top-actions { flex:0 0 auto; gap:6px; }
  .language-picker { min-width:48px; min-height:46px; justify-content:center; padding:6px 7px; }
  .language-picker > span { display:none; }
  .language-picker select { min-width:0; font-size:12px; }
  .sound-toggle { width:46px; min-width:46px; max-width:46px; height:46px; padding:8px; justify-content:center; }
  .sound-toggle > span:nth-child(2) { display:none; }
  .notification-panel { position:fixed; inset:calc(82px + env(safe-area-inset-top)) 10px calc(78px + env(safe-area-inset-bottom)); width:auto; max-height:none; display:flex; flex-direction:column; padding:16px; overflow:hidden; }
  .notification-list { min-height:0; max-height:none; overflow-y:auto; overscroll-behavior:contain; }
  .notification-item { grid-template-columns:38px minmax(0,1fr); min-height:76px; gap:12px; padding:13px; align-items:start; }
  .notification-item > span:first-child { width:38px; height:38px; }
  .notification-panel > header { flex:0 0 auto; align-items:center; }
  .notification-panel h2 { font-size:24px; line-height:1.05; }
  .daily-push-settings { grid-template-columns:minmax(0,1fr) auto; }
  .daily-push-settings > div { grid-column:1 / -1; }
  .daily-push-settings button { min-width:112px; }
  .paracelso-assistant { right:12px; bottom:calc(78px + env(safe-area-inset-bottom)); }
  .install-app-floating { left:10px; bottom:calc(82px + env(safe-area-inset-bottom)); min-height:44px; padding:7px 13px 7px 8px; }
  .paracelso-assistant.is-open { inset:calc(8px + env(safe-area-inset-top)) 8px calc(78px + env(safe-area-inset-bottom)); display:flex; align-items:stretch; justify-content:flex-end; pointer-events:none; }
  .paracelso-assistant.is-open .paracelso-panel { width:100%; max-height:100%; min-height:0; display:flex; flex-direction:column; pointer-events:auto; }
  .paracelso-assistant.is-open .paracelso-panel > header,.paracelso-assistant.is-open .paracelso-form { flex:0 0 auto; background:#090708; }
  .paracelso-assistant.is-open .paracelso-conversation { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
  .paracelso-assistant.is-open .paracelso-messages { max-height:none; overflow:visible; }
  .paracelso-assistant.is-open .paracelso-launcher { display:none; }
  .paracelso-launcher { gap:7px; min-height:44px; padding:5px 10px 5px 5px; }
  .paracelso-launcher > span:last-child { display:grid; position:static; width:auto; height:auto; overflow:visible; clip:auto; }
  .paracelso-launcher > span:last-child small { display:none; }
  .paracelso-launcher > span:last-child strong { font:700 12px var(--ui); }
  .paracelso-launcher.has-initiative > span:last-child { max-width:min(210px,calc(100vw - 86px)); }
  .paracelso-portrait { width:38px; height:38px; }
  dialog[open] { grid-template-columns:1fr; max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
  .dialog-card { min-height: 260px; }
  .course-dialog-body { grid-template-columns: 1fr; }
  .course-reader { position: sticky; bottom: 0; z-index: 2; box-shadow: 0 -18px 45px rgba(0,0,0,.38); }
  .source-lab,.course-media { grid-template-columns:1fr; }
}

@media (max-width: 560px) {
  .profile-content-tabs { grid-template-columns:repeat(2,1fr); }
  .study-status-grid { grid-template-columns:repeat(2,1fr); }
  .study-status-grid article:nth-child(3) { border-left:0; border-top:1px solid var(--line); }
  .study-status-grid article:nth-child(4) { border-top:1px solid var(--line); }
  .transcript-row { grid-template-columns:38px minmax(0,1fr); padding:12px; }
  .transcript-row > b { grid-column:2; }
  .exam-booking { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .course-catalog, .future-courses { grid-template-columns: 1fr; }
  .course-card { min-height: 0; padding: 18px; }
  .course-card-head { margin-bottom: 18px; }
  .course-icon { width: 58px; height: 58px; font-size: 27px; }
  .course-card h3 { font-size: 26px; }
  .academy-hero { padding: 24px 19px; }
  .academy-hero h2 { font-size: 41px; }
  .academy-hero p { font-size: 14px; }
  .hero-actions { flex-direction: column; margin-top: 20px; }
  .share-btn { min-height: 42px; text-align: center; }
  .path-guide { grid-template-columns: 1fr; }
  .path-guide > div { border-right: 0; border-bottom: 1px solid var(--line); padding: 11px 15px; }
  .path-guide > div:last-child { border-bottom: 0; }
  .personal-path { align-items: stretch; padding: 14px; }
  .personal-path > div { flex: 1; }
  .personal-path .primary-btn { width: auto; padding: 10px 13px; }
  .personal-symbol { width: 40px; height: 40px; }
  .personal-path strong { max-width: 155px; font-size: 18px; }
  .catalog-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
  .catalog-filters::-webkit-scrollbar { display: none; }
  .catalog-filters .chip { flex: 0 0 auto; }
  .course-dialog-head { grid-template-columns: 68px 1fr; gap: 15px; padding: 28px 20px; }
  .course-dialog-head .course-glyph { width: 65px; height: 65px; font-size: 27px; }
  .course-dialog-head h2 { font-size: 35px; }
  .course-dialog-body { grid-template-columns: 1fr; gap: 18px; padding: 20px 14px 24px; }
  .course-reader { position: static; padding: 18px !important; }
  .course-visual img { height:180px; }
  .streak small { display: none; }
  .topbar h1 { font-size: 30px; }
  .view-intro { display: block; }
  .view-intro > p { margin-bottom: 0; }
  .right-column { grid-template-columns: 1fr; }
  .daily-card { display: block; text-align: center; }
  .arcana-grid { grid-template-columns: repeat(2, 1fr); }
  .panel-heading { display: block; }
  .completion-badge { display: inline-block; margin-top: 10px; }
  .course-panel, .practice-board, .quiz-panel { padding: 19px; }
  .module-head { grid-template-columns: 38px 1fr auto; padding: 12px; }
  .lesson-list { padding-left: 53px; }
  .practice-actions { flex-direction: column; }
  .community-sidebar { grid-template-columns: 1fr; }
  .community-pulse { grid-template-columns: 1fr; padding: 16px; }
  .community-pulse > button { grid-column: auto; }
  .pulse-number { justify-content: start; }
  .community-topic-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
  .community-topic-filters .chip { flex: 0 0 auto; }
  .community-tabs { overflow-x: auto; scrollbar-width: none; }
  .community-tabs .chip { flex: 0 0 auto; }
  .game-selector { grid-template-columns: 1fr; }
  .rpg-start,.rpg-encounter { grid-template-columns:1fr; }
  .rpg-seal { width:90px; height:115px; }
  .encounter-art { min-height:120px; }
  .rpg-hand { grid-template-columns:1fr; }
  .rpg-hand button { min-height:0; }
  .game-stage, .leaderboard { padding: 17px; }
  .memory-board { grid-template-columns: repeat(3, 1fr); gap: 7px; }
  .memory-card { min-height: 112px; }
  .game-answers { grid-template-columns: 1fr; }
  .game-seal, .quiz-symbol { min-height: 220px; }
  .profile-cover { height: 185px; }
  .profile-cover::after { right: 2%; font-size: 17px; }
  .social-avatar { left: 20px; width: 88px; height: 88px; bottom: -44px; }
  .topbar { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
  .topbar h1 { max-width:100%; font-size:28px; line-height:.92; overflow-wrap:normal; }
  .notification-panel { inset-inline:8px; padding:14px 12px; }
  .notification-panel > header { gap:8px; }
  .notification-panel h2 { font-size:22px; }
  .notification-panel header button { flex:0 0 auto; max-width:82px; min-height:44px; line-height:1.25; }
  .notification-item strong { font-size:16px; line-height:1.3; }
  .notification-item small { font-size:13px; line-height:1.45; }
  .profile-summary { padding: 54px 20px 22px; }
  .profile-identity { grid-template-columns:1fr; }
  .profile-summary .secondary-btn { width: 100%; }
  .profile-stats strong { font-size:23px; }
  .profile-stats span { font-size:10px; }
  .profile-activity-grid { grid-template-columns:1fr; }
  .profile-activity-card { min-height:130px; }
  .chat-messages { height: 50vh; padding: 15px; }
  .chat-composer { grid-template-columns:minmax(0,1fr) 48px; padding:10px; }
  .chat-composer button { width:48px; min-width:48px; min-height:48px; padding:0; }
  .chat-composer button span { display:none; }
  .chat-composer button b { display:block; font-size:20px; }
  .chat-head { align-items:flex-start; }
  .chat-head-actions { display:grid; justify-items:end; }
  .chat-head-actions .text-btn { min-height:36px; padding:4px 7px; font-size:10px; }
  .chat-message { max-width:94%; }
  .presence-controls { display:grid; justify-items:stretch; }
  .presence-controls label,.presence-controls select { width:100%; min-width:0; max-width:none; }
  .nearby-members { grid-template-columns:1fr; }
  .nearby-actions { justify-items:stretch; }
  .nearby-list { grid-column:1; }
  .guardian-metric-grid { grid-template-columns:repeat(2,1fr); }
  .skill-grid { grid-template-columns:1fr; }
  .mobile-nav { min-height:72px; align-items:start; }
  .mobile-nav button { min-width:0; min-height:48px; padding:3px 2px; font-size: 9px; line-height:1.2; }
  .mobile-nav button span { font-size: 18px; }
  .composer-actions { grid-template-columns: 1fr auto; }
  .composer-actions .primary-btn { grid-column: 1/3; }
  .start-here { grid-template-columns: 1fr; }
  .start-copy { grid-column: auto; }
  .quick-action { justify-content: flex-start; }
  .quick-action small { display: block; }
  .sound-panel { left: 10px; right: 10px; top: auto; bottom: 78px; width: auto; }
  .primary-btn, .secondary-btn { width: 100%; }
  .meaning-grid { grid-template-columns: 1fr; }
  .dialog-copy { padding: 34px 22px; }
  .install-dialog { grid-template-columns: 1fr; gap: 18px; padding: 30px 22px; }
  .install-mark { width: 82px; height: 82px; border-radius: 20px; font-size: 44px; }
}

@media (display-mode: standalone) {
  .topbar { padding-top: env(safe-area-inset-top); }
  main { padding-bottom: calc(104px + env(safe-area-inset-bottom)); }
  .install-btn,.install-app-floating { display: none; }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* Conservatorio Rituale — selected dark editorial direction */
:root {
  --bg: #030303;
  --surface: #090807;
  --surface-2: #100b0a;
  --line: rgba(190, 151, 87, .28);
  --gold: #b99254;
  --gold-bright: #e1bd78;
  --ivory: #eee8dc;
  --muted: #aaa29a;
  --radius: 10px;
}

body { background: #030303; }
.sidebar { background: rgba(2,2,2,.98); }
.brand-mark { background: #0b0807; clip-path: polygon(50% 0, 100% 22%, 90% 100%, 10% 100%, 0 22%); }
.nav-item, .primary-btn, .secondary-btn, .sound-toggle, .streak, .panel, .path-guide, .personal-path, .chip { border-radius: 7px; }
.nav-item.active { box-shadow: inset 2px 0 var(--gold-bright); background: #14100c; }
.topbar { min-height: 92px; }
.topbar h1 { letter-spacing: .01em; }

.sidebar-rank { display: grid; gap: 3px; width: 100%; margin: 0 0 14px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 7px; background: #0c0908; text-align: left; cursor: pointer; }
.sidebar-rank:hover, .sidebar-rank:focus-visible { border-color: var(--gold-bright); }
.sidebar-rank .rank-kicker { color: var(--gold); font-size: 9px; font-weight: 700; letter-spacing: .18em; }
.sidebar-rank strong { color: var(--ivory); font: 600 23px/1.1 var(--serif); }
.sidebar-rank small { color: var(--muted); font-size: 10px; }

.academy-hero { display: block; min-height: 390px; padding: 0; border-radius: 9px; background: #080706; }
.academy-hero::after { display: none; }
.academy-hero-art, .academy-hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.academy-hero-art { object-fit: cover; object-position: center; }
.academy-hero-shade { background: linear-gradient(90deg, rgba(3,3,3,.98) 0%, rgba(3,3,3,.92) 33%, rgba(3,3,3,.52) 61%, rgba(3,3,3,.14) 100%); }
.academy-hero-copy { position: relative; z-index: 2; max-width: 760px; padding: 48px 52px 44px; }
.academy-hero h2 { max-width: 720px; margin: 11px 0 12px; font-size: clamp(52px, 6vw, 82px); }
.academy-hero p { max-width: 620px; font-size: 15px; }
.hero-mantra { margin-top: 18px; color: var(--gold); font-family: var(--serif); font-size: 11px; letter-spacing: .18em; }
.hero-actions { margin-top: 22px; flex-wrap: wrap; }
.primary-btn { background: #c59b56; color: #130e08; }
.primary-btn:hover { background: #dfbd7a; }
.secondary-btn { background: rgba(4,4,4,.74); }

.path-guide { margin-top: 0; border-top: 0; }
.path-guide > div { border-radius: 0; }
.degree-section { margin-top: 42px; }
.degree-heading { display: flex; justify-content: space-between; gap: 32px; align-items: end; margin-bottom: 18px; }
.degree-heading h2 { margin: 5px 0 0; font-size: clamp(32px, 4vw, 49px); }
.degree-heading > p { max-width: 580px; margin: 0; color: var(--muted); line-height: 1.7; }
.degree-quick-select { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:12px; padding:15px 17px; border:1px solid var(--line); border-radius:8px; background:#0b0908; }
.degree-quick-select > span { display:grid; gap:3px; }
.degree-quick-select strong { color:var(--ivory); font-size:16px; }
.degree-quick-select small { color:var(--muted); font-size:13px; }
.degree-quick-select select { min-width:min(420px,52vw); min-height:48px; padding:0 42px 0 15px; border:1px solid rgba(225,189,120,.45); border-radius:6px; background:#050505; color:var(--ivory); font-size:16px; }
.degree-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.degree-card { position:relative; display:flex; min-height:210px; flex-direction:column; padding:20px; overflow:hidden; border:1px solid rgba(190,151,87,.18); border-radius:7px; background:linear-gradient(155deg,#0e0b09,#050505 68%); }
.degree-card::before { content:""; position:absolute; inset:0 auto 0 0; width:3px; background:transparent; }
.degree-card.active { border-color:var(--gold-bright); background:linear-gradient(145deg,#1b120c,#080605 72%); box-shadow:inset 0 0 0 1px rgba(225,189,120,.12); }
.degree-card.active::before { background:var(--gold-bright); }
.degree-selected { color:var(--gold); font-size:12px; font-weight:800; letter-spacing:.11em; }
.degree-card h3 { position:relative; margin:10px 0 7px; font-size:26px; line-height:1.05; }
.degree-card p { position:relative; margin:0; color:var(--muted); font-size:14px; line-height:1.5; }
.degree-credit { position: relative; display: grid; gap: 12px; margin-top: auto; }
.degree-credit > span { margin-top:16px; color:#aaa198; font-size:12px; text-transform:uppercase; letter-spacing:.06em; }
.degree-credit button { width: 100%; }
.degree-summary { margin-top:12px; padding:24px; border:1px solid rgba(225,189,120,.4); border-radius:9px; background:linear-gradient(140deg,#17100c,#080706 72%); }
.degree-summary > header { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:end; padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.09); }
.degree-summary h3 { margin:5px 0 7px; font-size:clamp(31px,4vw,46px); }
.degree-summary header p { max-width:720px; margin:0; color:var(--muted); font-size:15px; line-height:1.6; }
.degree-summary-stats { display:grid; grid-template-columns:auto auto; gap:1px 9px; align-items:baseline; min-width:180px; }
.degree-summary-stats strong { color:var(--gold-bright); font:600 27px var(--serif); text-align:right; }
.degree-summary-stats span { color:var(--muted); font-size:13px; }
.degree-plan-heading { display:flex; justify-content:space-between; gap:16px; margin:20px 0 10px; }
.degree-plan-heading strong { font-size:17px; }
.degree-plan-heading small { color:var(--muted); font-size:13px; }
.degree-plan { display:grid; gap:6px; margin:0; padding:0; list-style:none; }
.degree-plan button { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:13px; align-items:center; width:100%; min-height:64px; padding:9px 14px; border:1px solid rgba(255,255,255,.09); border-radius:6px; background:rgba(0,0,0,.34); color:var(--ivory); text-align:left; cursor:pointer; }
.degree-plan button:hover,.degree-plan button:focus-visible { border-color:var(--gold-bright); background:rgba(185,146,84,.1); }
.degree-plan button > span:first-child { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); border-radius:50%; color:var(--gold-bright); font:600 14px var(--serif); }
.degree-plan button > span:nth-child(2) { display:grid; gap:3px; }
.degree-plan button strong { font-size:16px; }
.degree-plan button small { color:var(--muted); font-size:13px; }
.degree-plan button b { color:var(--gold-bright); font-size:13px; white-space:nowrap; }
.degree-summary > footer { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:15px; }
.degree-summary > footer > span { color:var(--muted); font-size:13px; }
.personal-path { margin-top: 10px; background: #0b0908; }
.catalog-toolbar { margin-top: 26px; }
.course-catalog { position: relative; display: grid; grid-template-columns: 1fr; gap: 5px; padding: 7px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: #080706 url("assets/conservatorio-curriculum.png") center/cover no-repeat; }
.course-catalog::before { content: ""; position: absolute; inset: 0; background: rgba(2,2,2,.66); pointer-events: none; }
.course-card { position: relative; z-index: 1; min-height: 94px; display: grid; grid-template-columns: 56px minmax(0, 1fr) 130px 104px; gap: 18px; align-items: center; padding: 14px 17px; border-radius: 4px; background: rgba(6,5,5,.78); backdrop-filter: blur(2px); }
.course-card::after { display: none; }
.course-card:hover { transform: none; background: rgba(17,11,9,.92); }
.course-index { color: var(--gold); font: 600 19px var(--serif); text-align: center; }
.course-copy { min-width: 0; }
.course-card .eyebrow { font-size: 9px; }
.course-card h3 { margin: 2px 0 3px; font-size: 25px; }
.course-card p { max-width: 780px; margin: 0; overflow: hidden; color: #bab2aa; font-size: 12px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.course-tags { margin: 7px 0 0; }
.course-tags span { padding: 3px 7px; font-size: 9px; }
.course-facts { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.course-facts span { padding:4px 7px; border:1px solid rgba(255,255,255,.08); border-radius:999px; color:#aaa096; font-size:9px; }
.course-state { display: grid; gap: 10px; }
.course-status { text-align: center; }
.course-progress { width: 100%; margin: 0; }
.course-open { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; padding: 12px; border: 1px solid var(--line); border-radius: 5px; }
.course-open b { color: var(--gold-bright); font-size: 18px; }

.profile-cover { background: #090705 url("assets/percorso-gradi.png") center 58%/cover no-repeat; }
.profile-cover::after { display: none; }
.rank-path { position: relative; grid-column: 1/3; overflow: hidden; margin-top: 10px; padding: 22px; border: 1px solid var(--line); border-radius: 7px; background: #070605; }
.rank-path > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .25; }
.rank-path::after { content: ""; position: absolute; inset: 0; background: rgba(3,3,3,.5); pointer-events: none; }
.rank-path > *:not(img) { position: relative; z-index: 1; }
.rank-path-head { display: flex; justify-content: space-between; gap: 20px; align-items: end; }
.rank-path-head h3 { margin: 5px 0 0; font: 600 28px var(--serif); }
.rank-path-head > strong { color: var(--gold-bright); font-size: 13px; }
.rank-meter { height: 4px; margin: 22px 0 15px; overflow: hidden; background: rgba(255,255,255,.12); }
.rank-meter span { display: block; width: 0; height: 100%; background: var(--gold-bright); transition: width .35s ease; }
.rank-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; }
.rank-step { display: grid; grid-template-columns: 31px 1fr; grid-template-rows: auto auto; column-gap: 9px; align-items: center; padding: 10px; border: 1px solid rgba(255,255,255,.08); background: rgba(0,0,0,.42); }
.rank-step > span { grid-row: 1/3; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid #675c4b; border-radius: 50%; color: #938676; font: 600 13px var(--serif); }
.rank-step strong { color: #998f84; font: 600 17px var(--serif); }
.rank-step small { color: #77706a; font-size: 9px; }
.rank-step.done, .rank-step.active { border-color: rgba(225,189,120,.42); }
.rank-step.done > span, .rank-step.active > span { border-color: var(--gold-bright); color: var(--gold-bright); }
.rank-step.active strong { color: var(--ivory); }
.rank-requirement { margin: 14px 0 0 !important; color: #c7bfb6 !important; font-size: 12px; }
.profile-degree { display: block; margin-top: 5px; color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

.exam-access { width: 100%; display: grid; gap: 5px; margin-top: 18px; padding: 16px; border: 1px solid var(--gold); border-radius: 6px; background: #120d09; color: var(--ivory); text-align: left; cursor: pointer; }
.exam-access span { color: var(--gold); font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.exam-access strong { font: 600 20px var(--serif); }
.exam-access small { color: var(--muted); }
.exam-access:disabled { border-color: rgba(255,255,255,.1); opacity: .55; cursor: not-allowed; }
.exam-dialog { width: min(720px, calc(100vw - 28px)); padding: 0; border: 1px solid var(--line); border-radius: 8px; background: #080706; color: var(--ivory); }
.exam-copy { padding: 34px; }
.exam-copy h2 { margin: 7px 0 8px; font-size: 39px; }
.exam-copy > p { color: var(--muted); }
.exam-copy fieldset { display: grid; gap: 8px; margin: 22px 0; padding: 18px; border: 1px solid rgba(255,255,255,.1); }
.exam-copy legend { padding: 0 8px; color: var(--ivory); font: 600 19px var(--serif); }
.exam-copy fieldset label { display: flex; gap: 10px; align-items: start; padding: 10px; border: 1px solid transparent; background: rgba(255,255,255,.025); cursor: pointer; }
.exam-copy fieldset label:has(input:checked) { border-color: var(--gold); background: rgba(185,146,84,.1); }
.exam-result { margin-top: 22px; padding: 22px; border: 1px solid var(--gold); background: #120d09; }
.exam-result strong { color: var(--gold-bright); font: 600 27px var(--serif); }

.language-picker { display:flex; align-items:center; gap:7px; padding:8px 10px; border:1px solid var(--line); border-radius:5px; background:#090807; color:var(--gold); }
.language-picker select { border:0; background:transparent; color:var(--ivory); font-weight:800; cursor:pointer; }
.archive-section { margin-top:24px; padding:25px; }
.archive-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
.archive-grid a { min-height:125px; display:flex; flex-direction:column; justify-content:flex-end; gap:4px; padding:16px; border:1px solid var(--line); border-radius:6px; background:linear-gradient(145deg,#15100d,#080706); color:var(--ivory); text-decoration:none; }
.archive-grid a:hover { border-color:var(--gold); transform:translateY(-2px); }
.archive-grid a > span { margin-bottom:auto; color:var(--gold-bright); font:600 25px var(--serif); }
.archive-grid a small { color:var(--muted); }
.order-panel { display:grid; gap:14px; }
.order-hero { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:20px; padding:25px; background:radial-gradient(circle at 8% 20%,rgba(185,146,84,.14),transparent 30%),#080706; }
.order-hero h2 { margin:3px 0; font-size:38px; }
.order-hero p { margin:0; color:var(--muted); }
.order-sigil { width:82px; height:82px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); box-shadow:0 0 35px rgba(185,146,84,.16); font:600 42px var(--serif); }
#orderContent { display:grid; gap:14px; }
.order-section { padding:24px; }
.order-directory { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.order-directory article,.order-list article { display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; align-items:center; gap:12px; padding:13px; border:1px solid rgba(255,255,255,.08); background:rgba(255,255,255,.025); }
.order-list { display:grid; gap:7px; }
.order-list article p { margin:5px 0 0; color:var(--muted); }
.member-symbol { width:42px; height:42px; display:grid; place-items:center; border:1px solid #6f5b3c; border-radius:50%; color:var(--gold-bright); font:600 21px var(--serif); }
.order-directory strong,.order-list strong { display:block; font:600 19px var(--serif); }
.order-directory small,.order-list small { color:var(--muted); }
.role-seal { position:absolute; left:104px; bottom:18px; width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--gold-bright); border-radius:50%; background:#090706; color:var(--gold-bright); box-shadow:0 0 20px rgba(225,189,120,.25); font-size:18px; }
.canon-section { margin-top:34px; padding:28px; border:1px solid var(--line); border-radius:8px; background:radial-gradient(circle at 80% 0,rgba(116,72,126,.13),transparent 28%),#070605; }
.canon-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:22px 0 12px; }
.canon-criteria { display:flex; align-items:center; gap:16px; margin-bottom:10px; padding:12px 14px; border-left:2px solid var(--gold); background:rgba(185,146,84,.06); }
.canon-criteria span { flex:0 0 auto; color:var(--gold); font-size:10px; font-weight:800; letter-spacing:.14em; }
.canon-criteria p { margin:0; color:#bcb3a9; font-size:13px; }
.canon-grid { display:grid; gap:5px; }
.canon-card { display:grid; grid-template-columns:72px minmax(0,1fr) 70px; align-items:center; gap:18px; min-height:112px; padding:16px 18px; border:1px solid rgba(255,255,255,.075); background:linear-gradient(90deg,rgba(20,15,13,.92),rgba(8,7,6,.84)); }
.canon-card:hover { border-color:rgba(225,189,120,.36); }
.canon-rank { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:10px; color:#766d64; font:600 13px var(--sans); }
.canon-rank b { color:var(--gold-bright); font:600 30px var(--serif); }
.canon-card small { color:var(--gold); font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.canon-card h3 { margin:3px 0; font-size:24px; }
.canon-card p { margin:0; color:var(--muted); font-size:13px; line-height:1.5; }
.canon-score { text-align:right; }
.canon-score strong { display:block; color:var(--gold-bright); font:600 30px var(--serif); }
.canon-score span { color:#7d746b; font-size:10px; }

.profile-actions { display:flex; gap:10px; align-items:center; }
.contact-hero { display:grid; grid-template-columns:auto 1fr; gap:24px; align-items:center; padding:32px; background:radial-gradient(circle at 8% 50%,rgba(185,146,84,.15),transparent 28%),#080706; }
.contact-hero h2 { margin:5px 0 8px; font:600 clamp(38px,5vw,58px)/1 var(--serif); }
.contact-hero p { max-width:720px; margin:0; color:var(--muted); line-height:1.65; }
.contact-sigil { width:84px; height:84px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font-size:34px; box-shadow:0 0 35px rgba(185,146,84,.13); }
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.contact-form { display:grid; gap:15px; align-content:start; padding:28px; }
.contact-form h3 { margin:0 0 5px; font:600 30px var(--serif); }
.contact-form > label,.auth-form > label { display:grid; gap:7px; color:var(--muted); font-size:13px; font-weight:600; }
.contact-form > small,.auth-note { color:var(--muted); line-height:1.5; }
.rating-field { margin:0; padding:14px; border:1px solid var(--line); }
.rating-field legend { padding:0 7px; color:var(--muted); font-size:13px; font-weight:600; }
.rating-field > div { display:grid; grid-template-columns:repeat(5,1fr); gap:7px; }
.rating-field label { display:flex; justify-content:center; align-items:center; gap:6px; min-height:42px; border:1px solid rgba(255,255,255,.08); cursor:pointer; }
.rating-field label:has(input:checked) { border-color:var(--gold); background:rgba(185,146,84,.1); color:var(--gold-bright); }
.rating-field input { width:auto; accent-color:var(--gold); }
.form-honeypot { position:absolute !important; left:-10000px !important; width:1px !important; height:1px !important; opacity:0 !important; }

dialog.auth-dialog { width:min(790px,calc(100% - 28px)); grid-template-columns:240px 1fr; border-radius:8px; background:#080706; }
.auth-mark { min-height:560px; display:grid; place-content:center; gap:16px; text-align:center; border-right:1px solid var(--line); background:radial-gradient(circle at center,rgba(91,47,99,.38),transparent 48%),linear-gradient(160deg,#160e19,#050405); }
.auth-mark span { width:116px; height:116px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); box-shadow:0 0 60px rgba(185,146,84,.18); font:600 58px var(--serif); }
.auth-mark small { color:var(--gold); letter-spacing:.16em; }
.auth-copy { padding:42px 38px 34px; }
.auth-copy h2 { margin:7px 0 8px; font:600 43px/1 var(--serif); }
.auth-copy > p { color:var(--muted); line-height:1.6; }
.auth-tabs { display:flex; gap:7px; margin:22px 0 16px; }
.auth-form { display:grid; gap:14px; }
.auth-form label small { color:#7f777f; font-weight:400; }
.auth-error { margin:0; padding:10px 12px; border-left:2px solid var(--danger); background:rgba(217,142,132,.08); color:#e8b1a9; font-size:13px; }
.auth-divider { display:flex; align-items:center; gap:12px; margin:20px 0 14px; color:#746d74; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:var(--line); }
.auth-chatgpt { display:flex; justify-content:center; text-decoration:none; }

.faculty-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:24px; align-items:center; padding:28px; margin-bottom:18px; }
.faculty-hero h2 { margin:7px 0 8px; font:600 clamp(30px,4vw,46px)/1 var(--serif); }
.faculty-hero p { max-width:760px; margin:0; color:var(--muted); line-height:1.65; }
.faculty-seal { width:74px; height:74px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font:600 34px var(--serif); }
.faculty-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.faculty-card { display:grid; grid-template-columns:58px minmax(0,1fr); gap:14px; padding:20px; }
.faculty-avatar { width:56px; height:56px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; background:#130d13; color:var(--gold-bright); font:600 25px var(--serif); }
.faculty-avatar img,.faculty-dialog > header > span img,.private-chat-dialog > header > span img { width:100%; height:100%; display:block; object-fit:cover; border-radius:50%; }
.faculty-card h3 { margin:4px 0; font:600 24px var(--serif); }
.faculty-card p { margin:0; color:var(--muted); line-height:1.45; }
.faculty-card blockquote { grid-column:1/-1; margin:4px 0 0; padding:13px 14px; border-left:2px solid var(--gold); background:rgba(201,156,85,.05); color:#d9d0c9; line-height:1.55; }
.faculty-card button { grid-column:1/-1; }
.invite-dialog,.faculty-dialog { width:min(620px,calc(100vw - 28px)); padding:28px; border:1px solid var(--line); border-radius:12px; background:#0a080a; color:var(--ivory); }
.private-chat-dialog { width:min(920px,calc(100vw - 28px)); height:min(760px,calc(100dvh - 28px)); max-height:calc(100dvh - 28px); padding:0; overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#080708; color:var(--ivory); box-shadow:0 26px 90px rgba(0,0,0,.72); }
.private-chat-dialog[open] { display:flex; flex-direction:column; }
.invite-dialog h2 { margin:8px 0; font:600 38px var(--serif); }
.invite-dialog > p { color:var(--muted); line-height:1.6; }
.invite-mark { color:var(--gold-bright); font-size:34px; }
.invite-options { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; margin-top:20px; }
.invite-options a,.invite-options button { display:grid; place-items:center; text-decoration:none; }
.invite-options .text-btn { grid-column:1/-1; min-height:44px; }
.faculty-dialog > header { display:grid; grid-template-columns:58px 1fr; gap:14px; align-items:center; padding-right:28px; }
.private-chat-dialog > header { display:grid; grid-template-columns:58px minmax(0,1fr); gap:14px; align-items:center; padding:18px 64px 16px 20px; border-bottom:1px solid var(--line); background:#0e0b0d; }
.faculty-dialog > header > span,.private-chat-dialog > header > span { width:54px; height:54px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font-size:24px; }
.faculty-dialog h2,.private-chat-dialog h2 { margin:2px 0; font:600 31px var(--serif); }
.faculty-dialog header small,.private-chat-dialog header small { color:var(--gold); font-size:9px; letter-spacing:.09em; }
.faculty-dialog header p { margin:0; color:var(--muted); }
.faculty-conversation { display:grid; gap:9px; max-height:360px; overflow:auto; margin:20px 0; padding:14px; border:1px solid var(--line); background:#060506; }
.private-chat-messages { display:grid; align-content:start; gap:11px; flex:1 1 auto; min-height:0; overflow:auto; margin:0; padding:24px clamp(18px,4vw,48px); border:0; background:linear-gradient(180deg,#060506,#0b080b); overscroll-behavior:contain; }
.faculty-conversation > article,.private-chat-messages article { max-width:88%; margin:0; padding:11px 13px; border-radius:4px 12px 12px; background:rgba(201,156,85,.08); line-height:1.55; }
.faculty-conversation > article p { margin:0; }
.faculty-conversation .user,.private-chat-messages .mine { justify-self:end; border-radius:12px 4px 12px 12px; background:rgba(115,158,152,.12); }
.faculty-source-links { display:flex; flex-wrap:wrap; gap:7px; margin-top:10px; }
.faculty-source-links a { color:var(--gold-bright); font-size:12px; text-decoration:underline; text-underline-offset:3px; }
.private-chat-messages article small { display:block; color:var(--gold); }
.private-chat-messages article p { margin:4px 0 0; }
.message-receipt { display:block; margin-top:5px; color:var(--muted); font-size:10px; text-align:right; }
.message-receipt.read { color:#86c8bd; }
.private-chat-dialog > header p { margin:2px 0 0; color:var(--muted); font-size:12px; }
.faculty-suggestions { display:flex; flex-wrap:wrap; gap:8px; }
.faculty-dialog form { display:grid; gap:7px; margin-top:16px; }
.faculty-dialog form > div { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.private-chat-dialog form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; padding:14px 18px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:#0e0b0d; }
.private-chat-dialog form input { min-height:48px; padding:12px 18px; border-radius:999px; }
.private-chat-dialog form button { min-width:96px; border-radius:999px; }
.faculty-dialog form label { color:var(--gold); font-size:10px; font-weight:800; letter-spacing:.08em; }
.faculty-dialog form small { color:var(--muted); }
.faculty-dialog input,.private-chat-dialog input { min-width:0; }

.community-cover { position:relative; overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; margin:0 0 18px; padding:28px; background:radial-gradient(circle at 85% 15%,rgba(201,156,85,.19),transparent 28%),linear-gradient(135deg,rgba(34,17,40,.96),rgba(8,7,9,.98)); }
.community-cover::before { content:"☾  ✦  ◇  ☿"; position:absolute; right:20px; top:10px; color:rgba(201,156,85,.12); font:600 42px var(--serif); letter-spacing:.18em; pointer-events:none; }
.community-cover-copy { position:relative; max-width:650px; }
.community-cover h2 { margin:5px 0 7px; font:600 clamp(30px,4vw,48px) var(--serif); }
.community-cover p { margin:0; color:var(--muted); line-height:1.55; }
.community-member-count { position:relative; align-self:start; padding:9px 13px; border:1px solid var(--line); border-radius:999px; color:var(--gold-bright); white-space:nowrap; }
.community-member-grid { position:relative; grid-column:1/-1; display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:12px; margin-top:7px; }
.community-member-card { min-width:0; padding:15px 10px; border:1px solid rgba(201,156,85,.23); border-radius:12px; background:rgba(5,4,6,.62); text-align:center; }
.community-member-card.member-open { width:100%; color:inherit; cursor:pointer; }
.community-member-card.member-open:hover { transform:translateY(-2px); border-color:var(--gold); background:rgba(201,156,85,.08); }
.community-member-card .friend-state { display:inline-flex; margin-top:8px; padding:4px 7px; border-radius:999px; background:rgba(115,158,152,.12); color:#9cc8c1; font:700 10px var(--sans); }
.members-panel { display:grid; gap:14px; }
.members-dashboard { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; align-items:center; padding:24px; }
.members-actions { display:flex; flex-wrap:wrap; gap:8px; }
.social-inbox,.study-session-section,.symbolic-section { padding:22px; }
.symbolic-section > p { color:var(--muted); line-height:1.55; }
.social-request-list,.study-session-list { display:grid; gap:9px; margin-top:14px; }
.social-request-list article,.study-session-card { display:grid; grid-template-columns:44px minmax(0,1fr) auto; gap:11px; align-items:center; padding:12px; border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.018); }
.social-request-list article > span,.study-session-card > span { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:rgba(201,156,85,.1); color:var(--gold-bright); font-size:19px; }
.social-request-list strong,.social-request-list small,.study-session-card strong,.study-session-card small { display:block; }
.social-request-list small,.study-session-card small { margin-top:3px; color:var(--muted); }
.request-actions { display:flex; flex-wrap:wrap; gap:6px; justify-content:end; }
.request-actions button { min-height:40px; padding:7px 10px; }
.member-profile-dialog,.study-invite-dialog,.symbolic-dialog,.card-reading-dialog,.member-game-dialog,.study-session-dialog { width:min(680px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); padding:0; overflow:auto; border:1px solid var(--line); border-radius:18px; background:#090709; color:var(--ivory); }
.member-profile-cover { position:relative; height:150px; background:radial-gradient(circle at 75% 25%,rgba(239,200,120,.22),transparent 25%),linear-gradient(135deg,#351337,#0a070c); }
.member-profile-cover.cover-ember { background:radial-gradient(circle at 75% 25%,rgba(244,173,91,.25),transparent 25%),linear-gradient(135deg,#421c12,#0b0708); }
.member-profile-cover.cover-midnight { background:radial-gradient(circle at 75% 25%,rgba(95,144,176,.23),transparent 25%),linear-gradient(135deg,#102d43,#07070d); }
.member-profile-cover.cover-forest { background:radial-gradient(circle at 75% 25%,rgba(120,163,121,.2),transparent 25%),linear-gradient(135deg,#153127,#070a08); }
.member-profile-avatar { position:absolute; left:26px; bottom:-42px; width:88px; height:88px; display:grid; place-items:center; overflow:hidden; border:4px solid #090709; border-radius:50%; background:#1a111b; color:var(--gold-bright); font:600 34px var(--serif); }
.member-profile-avatar img { width:100%; height:100%; object-fit:cover; }
.member-profile-body { display:grid; gap:13px; padding:58px 26px 26px; }
.member-profile-body h2 { margin:0; font:600 38px/1 var(--serif); }
.member-profile-body > p { margin:0; color:var(--muted); line-height:1.55; }
.member-profile-body blockquote { margin:0; padding:10px 13px; border-left:2px solid var(--gold); color:#ded4c9; }
.member-study-list { display:grid; gap:7px; margin-top:9px; }
.member-study-list article { display:grid; grid-template-columns:1fr auto; gap:8px; padding:10px 12px; border:1px solid rgba(255,255,255,.07); border-radius:9px; }
.member-study-list small { color:var(--muted); }
.member-profile-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:5px; }
.study-invite-dialog,.symbolic-dialog,.card-reading-dialog,.member-game-dialog,.study-session-dialog { padding:26px; }
.study-invite-dialog h2,.symbolic-dialog h2,.card-reading-dialog h2,.member-game-dialog h2,.study-session-dialog h2 { margin:5px 0 16px; font:600 34px var(--serif); }
.study-invite-dialog form,.symbolic-dialog form,.card-reading-dialog form,.member-game-dialog form { display:grid; gap:13px; }
.study-invite-dialog label,.symbolic-dialog label,.card-reading-dialog label,.member-game-dialog label { display:grid; gap:6px; color:var(--gold); font-weight:700; }
.study-invite-dialog fieldset { min-width:0; margin:0; padding:13px; border:1px solid var(--line); border-radius:12px; }
.study-invite-dialog form > small,.symbolic-dialog form > small,.card-reading-dialog form > small { color:var(--muted); line-height:1.45; }
.card-reading-dialog textarea { min-height:110px; resize:vertical; }
.card-reading-panel { display:grid; gap:18px; }
.reading-hero { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; align-items:center; padding:28px; background:radial-gradient(circle at 88% 15%,rgba(201,156,85,.16),transparent 30%),linear-gradient(145deg,rgba(42,17,45,.68),rgba(8,7,10,.96)); }
.reading-hero h2 { margin:6px 0; font:600 clamp(34px,5vw,55px)/.98 var(--serif); }
.reading-hero p { max-width:720px; margin:0; color:var(--muted); line-height:1.6; }
.reading-section { padding:24px; }
.reading-friend-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:10px; }
.reading-friend-card { display:grid; grid-template-columns:58px minmax(0,1fr) auto; gap:12px; align-items:center; min-width:0; min-height:80px; padding:10px 13px; border:1px solid var(--line); border-radius:13px; background:rgba(255,255,255,.018); color:var(--ivory); text-align:left; }
.reading-friend-card:hover { border-color:var(--gold); transform:translateY(-1px); }
.reading-friend-card .community-member-avatar { width:54px; height:54px; margin:0; }
.reading-friend-card strong,.reading-friend-card small { display:block; overflow:hidden; text-overflow:ellipsis; }
.reading-friend-card small { margin-top:3px; color:var(--muted); white-space:nowrap; }
.reading-friend-card b { color:var(--gold-bright); white-space:nowrap; }
.reading-empty { display:grid; justify-items:start; gap:12px; }
.peer-reading { display:grid; gap:12px; width:min(430px,100%); min-width:0; }
.peer-reading > header { display:grid; gap:4px; padding-bottom:9px; border-bottom:1px solid rgba(201,156,85,.25); }
.peer-reading > header small { color:var(--gold-bright); font-weight:800; letter-spacing:.08em; }
.peer-reading > header p { margin:0; color:var(--ivory); line-height:1.5; }
.peer-reading-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(115px,1fr)); gap:8px; }
.peer-reading-card { min-width:0; padding:14px 10px; border:1px solid var(--line); border-radius:12px; background:linear-gradient(155deg,rgba(201,156,85,.13),rgba(36,16,41,.42)); text-align:center; }
.peer-reading-card b { display:grid; place-items:center; width:38px; height:52px; margin:0 auto 9px; border:1px solid var(--gold); border-radius:6px; color:var(--gold-bright); font:600 20px var(--serif); }
.peer-reading-card strong,.peer-reading-card small { display:block; }
.peer-reading-card small { margin-top:5px; color:var(--muted); line-height:1.4; }
.social-games-section { display:grid; gap:16px; }
.social-game-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.social-game-grid button { display:grid; grid-template-columns:48px minmax(0,1fr); grid-template-rows:auto auto; gap:2px 12px; align-items:center; min-width:0; min-height:86px; padding:12px; border:1px solid var(--line); border-radius:13px; background:linear-gradient(145deg,rgba(201,156,85,.08),rgba(35,17,39,.38)); color:var(--ivory); text-align:left; }
.social-game-grid button:hover { border-color:var(--gold); transform:translateY(-1px); }
.social-game-grid button > span { grid-row:1/3; display:grid; place-items:center; width:46px; height:58px; border:1px solid var(--gold); border-radius:7px; color:var(--gold-bright); font:600 18px var(--serif); }
.social-game-grid button strong,.social-game-grid button small { overflow:hidden; text-overflow:ellipsis; }
.social-game-grid button small { color:var(--muted); line-height:1.35; }
.peer-game { display:grid; gap:12px; width:min(470px,100%); min-width:0; }
.peer-game header { display:grid; gap:4px; }
.peer-game header small { color:var(--gold-bright); font-weight:800; letter-spacing:.08em; }
.peer-game header p,.peer-game > p { margin:0; line-height:1.55; }
.peer-game-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; }
.peer-game-cards span { display:grid; place-items:center; min-height:72px; padding:10px; border:1px solid var(--line); border-radius:9px; color:var(--gold-bright); text-align:center; }
.peer-game details { padding:9px 11px; border:1px solid var(--line); border-radius:9px; }
.peer-game details summary { cursor:pointer; color:var(--gold-bright); font-weight:700; }
.game-status { display:inline-flex; width:max-content; margin-top:6px; padding:4px 8px; border-radius:999px; background:rgba(115,158,152,.16); color:#a9d8d0; font:700 11px var(--sans); }
.game-status.waiting { background:rgba(201,156,85,.12); color:var(--gold-bright); }
.study-session-toolbar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.study-friend-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.study-friend-choices label { display:flex; align-items:center; gap:8px; min-height:44px; padding:8px; border:1px solid rgba(255,255,255,.07); border-radius:9px; color:var(--ivory); }
.study-friend-choices img { width:34px; height:34px; border-radius:50%; object-fit:cover; }
.study-friend-choices label > input { width:18px; height:18px; accent-color:var(--gold); }
.ability-summary { display:grid; gap:3px; padding:10px 12px; border:1px solid rgba(115,158,152,.2); border-radius:10px; background:rgba(115,158,152,.06); }
.ability-summary small { color:var(--muted); }
.study-session-dialog { overflow:hidden; }
.study-session-dialog[open] { display:flex; flex-direction:column; }
.study-session-dialog > header { display:grid; grid-template-columns:48px 1fr; gap:12px; align-items:center; }
.study-session-dialog > header > span { width:46px; height:46px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); }
.study-session-dialog > header p { margin:0; color:var(--muted); }
.study-session-dialog #studyCallLink { margin-top:13px; text-align:center; text-decoration:none; }
.study-session-dialog form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.community-member-avatar { width:68px; height:68px; display:grid; place-items:center; margin:0 auto 9px; overflow:hidden; border:2px solid var(--gold); border-radius:50%; background:#161117; color:var(--gold-bright); font-size:28px; }
.community-member-avatar img { width:100%; height:100%; object-fit:cover; }
.community-member-card strong,.community-member-card small { display:block; overflow:hidden; text-overflow:ellipsis; }
.community-member-card em { display:block; margin-top:5px; color:var(--gold); font-size:10px; font-style:normal; line-height:1.35; }
.community-member-card strong { white-space:nowrap; }
.community-member-card small { margin-top:4px; color:var(--muted); line-height:1.3; }
.community-members-loading { grid-column:1/-1; color:var(--muted); }
.guardian-alias-note { padding:10px 12px; border-left:2px solid var(--gold); background:rgba(201,156,85,.07); color:var(--muted); }

.welcome-dialog { width:min(680px,calc(100vw - 28px)); max-height:min(760px,calc(100dvh - 28px)); overflow:auto; padding:30px; border:1px solid var(--line); border-radius:14px; background:#0a080a; color:var(--ivory); }
.welcome-seal { width:62px; height:62px; display:grid; place-items:center; margin-bottom:14px; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font-size:28px; }
.welcome-dialog h2 { margin:5px 35px 8px 0; font:600 clamp(32px,5vw,48px) var(--serif); }
.welcome-dialog > p { color:var(--muted); line-height:1.55; }
.welcome-messages { display:grid; gap:10px; margin:20px 0; }
.welcome-messages article { display:grid; grid-template-columns:58px minmax(0,1fr); gap:13px; padding:13px; border:1px solid rgba(201,156,85,.25); border-radius:12px; background:rgba(201,156,85,.06); }
.welcome-messages img { width:58px; height:58px; border-radius:50%; object-fit:cover; border:1px solid var(--gold); }
.welcome-messages span,.welcome-messages strong { display:block; }
.welcome-messages span { color:var(--gold); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.welcome-messages p { margin:5px 0 0; color:var(--muted); line-height:1.45; }

@media (max-width: 820px) {
  .faculty-grid { grid-template-columns:1fr; }
  .faculty-hero { grid-template-columns:1fr; padding:20px; }
  .faculty-seal { display:none; }
  .invite-options { grid-template-columns:1fr; }
  .faculty-dialog form > div,.private-chat-dialog form { grid-template-columns:1fr; }
}
.auth-note { display:block; margin-top:12px; font-size:11px; text-align:center; }
.text-size-control { display:flex; align-items:center; justify-content:flex-end; gap:7px; margin:-6px 0 16px; }
.text-size-control > span { margin-right:auto; color:var(--muted); font-size:.8rem; font-weight:700; }
.text-size-control button { min-width:44px; min-height:44px; border:1px solid var(--line); background:#0d0a09; color:var(--ivory); cursor:pointer; }
.text-size-control button:hover,.text-size-control button:focus-visible { border-color:var(--gold-bright); }

.places-hero { display:grid; grid-template-columns:auto minmax(0,1fr); gap:25px; align-items:center; padding:34px; background:radial-gradient(circle at 8% 45%,rgba(185,146,84,.16),transparent 28%),#080706; }
.atlas-map-shell { display:grid; grid-template-columns:minmax(220px,.38fr) minmax(0,1fr); gap:24px; align-items:center; margin-top:16px; padding:24px; overflow:hidden; background:linear-gradient(135deg,#10161a,#080b0d); }
.atlas-map-copy h3 { margin:5px 0 8px; font:600 30px var(--serif); }
.atlas-map-copy p { margin:0; color:var(--muted); line-height:1.55; }
.atlas-map-legend { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.atlas-map-legend span { padding:6px 8px; border:1px solid rgba(148,171,181,.24); border-radius:6px; color:#aebbc1; font-size:10px; }
.atlas-map-legend b { margin-right:4px; color:var(--gold-bright); }
.atlas-map-column { min-width:0; }
.atlas-map { position:relative; min-height:390px; overflow:hidden; border:1px solid rgba(148,171,181,.36); border-radius:12px; background:#e5e0d6; box-shadow:0 14px 38px rgba(0,0,0,.32); }
.atlas-map iframe { width:100%; height:390px; display:block; border:0; background:#e5e0d6; color-scheme:light; }
.map-fallback { min-height:44px; display:flex; align-items:center; justify-content:center; margin-top:9px; padding:9px 14px; border:1px solid rgba(217,182,111,.46); border-radius:8px; background:#151015; color:var(--gold-bright); font-weight:800; text-decoration:none; }
.map-fallback:hover,.map-fallback:focus-visible { border-color:var(--gold-bright); background:#211617; }
.atlas-map-places { display:flex; gap:7px; margin-top:9px; padding-bottom:4px; overflow-x:auto; scrollbar-width:thin; }
.atlas-map-places button { flex:0 0 auto; min-height:40px; display:flex; align-items:center; gap:6px; padding:7px 10px; border:1px solid rgba(148,171,181,.34); border-radius:999px; background:#10161a; color:#dbe2e5; cursor:pointer; }
.atlas-map-places button span { color:var(--gold-bright); }
.atlas-map-places button.active,.atlas-map-places button:hover,.atlas-map-places button:focus-visible { border-color:var(--gold-bright); background:#211917; }
.atlas-map-empty { display:block; padding:10px; color:#aebbc1; font-weight:700; }
.map-attribution { display:inline-block; margin-top:7px; color:#9eabb1; font-size:10px; }
.map-location-consent { width:100%; margin-top:16px; }
#mapPrivacyNote { display:block; margin-top:10px; color:#93a0a6; line-height:1.45; }
.places-hero h2 { margin:5px 0 8px; font:600 clamp(40px,5vw,60px)/1 var(--serif); }
.places-hero p { max-width:780px; margin:0; color:var(--muted); line-height:1.65; }
.atlas-facts { display:flex; flex-wrap:wrap; gap:8px; margin-top:17px; }
.atlas-facts span { padding:7px 9px; border:1px solid rgba(217,182,111,.22); border-radius:4px; background:rgba(217,182,111,.05); color:var(--muted); font-size:10px; text-transform:uppercase; letter-spacing:.07em; }
.atlas-facts b { margin-right:4px; color:var(--gold-bright); }
.places-compass { width:92px; height:92px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); box-shadow:inset 0 0 0 12px rgba(185,146,84,.035),0 0 40px rgba(185,146,84,.14); font:600 42px var(--serif); }
.location-control { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,.8fr); gap:30px; margin-top:16px; padding:26px 28px; }
.location-copy h3 { margin:5px 0 8px; font:600 29px var(--serif); }
.location-copy p { margin:0 0 8px; color:var(--ivory); }
.location-copy small { display:block; max-width:660px; color:var(--muted); line-height:1.55; }
.location-actions { display:grid; grid-template-columns:1fr auto; gap:9px; align-content:start; }
.location-actions .primary-btn { grid-column:1/3; }
.location-actions .text-btn { justify-self:start; margin-top:4px; }
.location-actions .location-clear { justify-self:end; color:#d49a91; }
.city-picker { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.city-picker select,.places-toolbar select,.places-toolbar input { min-height:40px; padding:8px 10px; border:1px solid var(--line); border-radius:5px; background:#0c0908; color:var(--ivory); }
.places-toolbar { display:flex; justify-content:space-between; gap:20px; align-items:end; margin:26px 0 13px; }
.places-toolbar strong,.places-toolbar small { display:block; }
.places-toolbar strong { font:600 24px var(--serif); }
.places-toolbar small { margin-top:4px; color:var(--muted); }
.places-toolbar label { display:grid; gap:5px; color:var(--muted); font-size:11px; font-weight:700; }
.atlas-filters { display:grid; grid-template-columns:minmax(175px,1fr) 150px 110px; gap:8px; }
.places-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.place-card { display:grid; grid-template-columns:68px minmax(0,1fr); gap:17px; min-height:250px; padding:23px; border:1px solid var(--line); border-radius:8px; background:linear-gradient(145deg,#110d0c,#070605 72%); }
.place-symbol { width:64px; height:64px; display:grid; place-items:center; border:1px solid rgba(225,189,120,.5); border-radius:50%; color:var(--gold-bright); background:rgba(185,146,84,.04); font:600 29px var(--serif); }
.place-copy { display:flex; min-width:0; flex-direction:column; }
.place-meta { display:flex; justify-content:space-between; gap:12px; color:var(--gold); font-size:9px; font-weight:800; letter-spacing:.11em; text-transform:uppercase; }
.place-meta strong { color:var(--gold-bright); white-space:nowrap; }
.place-card h3 { margin:8px 0 1px; font:600 28px/1 var(--serif); }
.place-card small { color:#887e75; }
.place-card p { margin:12px 0 18px; color:var(--muted); font-size:13px; line-height:1.6; }
.place-links { display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin-top:auto; }
.place-links .primary-btn { padding:9px 12px; border-radius:5px; text-decoration:none; font-size:12px; }
.place-links .text-btn { text-decoration:none; font-size:12px; }
.places-empty { grid-column:1/3; padding:42px; text-align:center; }
.places-empty > span { color:var(--gold); font-size:40px; }
.places-empty h3 { margin:9px 0; font:600 28px var(--serif); }
.places-empty p,.places-disclaimer { color:var(--muted); }
.places-disclaimer { margin:15px 0 0; font-size:11px; line-height:1.6; }

dialog.nav-dialog { width:min(920px,calc(100% - 28px)); max-height:min(850px,calc(100dvh - 28px)); display:none; grid-template-columns:minmax(0,1fr); gap:18px; padding:30px; overflow-x:hidden; border-radius:12px; }
dialog.nav-dialog[open] { display:grid; }
.nav-dialog-copy { min-width:0; padding-right:38px; }
.nav-dialog-copy h2 { max-width:100%; margin:5px 0; font:600 clamp(28px,6vw,42px)/1.05 var(--serif); overflow-wrap:anywhere; }
.nav-dialog-copy p { margin:0; color:var(--muted); }
.nav-faculty-spotlight { min-width:0; padding:16px; border:1px solid rgba(217,182,111,.38); border-radius:12px; background:linear-gradient(135deg,rgba(91,42,65,.34),rgba(13,9,12,.96)); }
.nav-faculty-spotlight > header { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-bottom:12px; }
.nav-faculty-spotlight h3 { margin:3px 0 0; font:600 25px/1.05 var(--serif); }
.nav-faculty-spotlight > header button { min-height:44px; padding:8px 10px; border:0; background:none; color:var(--gold-bright); font-weight:700; cursor:pointer; }
.nav-faculty-spotlight > div { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.nav-faculty-spotlight > div > button { min-width:0; min-height:92px; padding:10px 7px; display:grid; justify-items:center; gap:7px; border:1px solid var(--line); border-radius:9px; background:#0d090b; color:var(--ivory); text-align:center; cursor:pointer; }
.nav-faculty-spotlight > div > button:hover,.nav-faculty-spotlight > div > button:focus-visible { border-color:var(--gold-bright); background:#171013; }
.nav-faculty-spotlight img { width:48px; height:48px; object-fit:cover; border:1px solid var(--gold-dim); border-radius:50%; }
.nav-faculty-spotlight span,.nav-faculty-spotlight strong,.nav-faculty-spotlight small { display:block; min-width:0; }
.nav-faculty-spotlight strong { font-size:11px; line-height:1.25; overflow-wrap:anywhere; }
.nav-faculty-spotlight small { margin-top:2px; color:var(--muted); font-size:8px; line-height:1.25; }
.nav-faculty-spotlight > small { margin-top:10px; font-size:9px; }
.nav-hubs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.nav-hubs > section { padding:15px; border:1px solid var(--line); border-radius:10px; background:rgba(255,255,255,.015); }
.nav-hubs > section > header { display:flex; gap:10px; align-items:center; margin-bottom:12px; }
.nav-hubs > section > header > span { color:var(--gold); font:600 22px var(--serif); }
.nav-hubs header strong,.nav-hubs header small { display:block; }
.nav-hubs header strong { font:600 22px var(--serif); }
.nav-hubs header small { color:var(--muted); font-size:12px; }
.nav-grid { display:grid; grid-template-columns:1fr; gap:7px; }
.nav-grid button { display:grid; grid-template-columns:38px 1fr; grid-template-rows:auto auto; column-gap:10px; align-items:center; min-height:66px; padding:10px; border:1px solid var(--line); border-radius:7px; background:#0d0a09; color:var(--ivory); text-align:left; cursor:pointer; }
.nav-grid button:hover { border-color:var(--gold); background:#15100d; }
.nav-grid button > span { grid-row:1/3; width:36px; height:36px; display:grid; place-items:center; border:1px solid #69573d; border-radius:50%; color:var(--gold-bright); font:600 18px var(--serif); }
.nav-grid button strong { font:700 14px var(--sans); }
.nav-grid button small { color:var(--muted); font-size:11px; }

.emporium-view { padding-bottom:120px; }
.emporium-hero { position:relative; min-height:390px; display:flex; align-items:flex-end; overflow:hidden; }
.emporium-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,3,4,.96),rgba(4,3,4,.36) 72%),linear-gradient(0deg,#050407,transparent 55%); }
.emporium-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.emporium-hero > div { position:relative; z-index:1; width:min(670px,100%); padding:50px 40px; }
.emporium-hero h2 { margin:8px 0 12px; font:600 clamp(40px,6vw,70px)/.96 var(--serif); }
.emporium-hero p { margin:0; color:#d7d0d3; font-size:17px; line-height:1.7; }
.emporium-notice { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:start; margin:22px 40px 0; padding:16px 18px; }
.emporium-notice strong { color:var(--gold-bright); }
.emporium-notice p { margin:0; color:var(--muted); line-height:1.6; }
.emporium-toolbar { display:flex; justify-content:space-between; gap:20px; align-items:end; padding:28px 40px 4px; }
.emporium-toolbar strong,.emporium-toolbar small { display:block; }
.emporium-toolbar strong { font:600 28px var(--serif); }
.emporium-toolbar small { margin-top:4px; color:var(--muted); font-size:12px; }
.emporium-filters { display:flex; gap:7px; flex-wrap:wrap; }
.emporium-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:18px 40px 50px; }
.emporium-card { min-height:390px; display:flex; flex-direction:column; align-items:flex-start; overflow:hidden; border:1px solid var(--line); border-radius:12px; background:linear-gradient(150deg,rgba(201,156,85,.08),rgba(13,9,13,.95) 42%); color:var(--ivory); text-decoration:none; transition:transform .2s ease,border-color .2s ease; }
.emporium-card:hover,.emporium-card:focus-visible { transform:translateY(-3px); border-color:var(--gold); }
.emporium-card[hidden] { display:none; }
.emporium-card figure { width:100%; height:172px; margin:0 0 18px; overflow:hidden; border-bottom:1px solid var(--line); background:#080607; }
.emporium-card figure img { width:100%; height:100%; object-fit:cover; transform:scale(1.04); }
.emporium-card .preview-books img { object-position:20% 69%; }
.emporium-card .preview-astrolabe img { object-position:5% 16%; }
.emporium-card .preview-jewelry img { object-position:76% 76%; }
.emporium-card .preview-objects img { object-position:54% 28%; }
.emporium-card > small,.emporium-card h3,.emporium-card p,.emporium-card b { margin-left:20px; margin-right:20px; }
.emporium-card > small { color:var(--gold); font-weight:800; letter-spacing:.12em; font-size:10px; }
.emporium-card h3 { margin-top:7px; margin-bottom:7px; font:600 25px var(--serif); }
.emporium-card p { margin-top:0; margin-bottom:18px; color:var(--muted); line-height:1.55; font-size:13px; }
.emporium-card b { margin-top:auto; margin-bottom:20px; color:var(--gold-bright); font-size:12px; }

.guardian-editorial { padding:18px; border-color:rgba(201,156,85,.5); background:linear-gradient(120deg,rgba(201,156,85,.1),rgba(21,12,20,.72)); }
.faculty-initiatives { padding:20px; overflow:hidden; border-color:rgba(169,111,151,.5); background:radial-gradient(circle at 88% 0,rgba(112,48,101,.22),transparent 34%),linear-gradient(145deg,rgba(33,15,34,.96),rgba(8,6,10,.98)); }
.faculty-initiatives > header { display:flex; justify-content:space-between; gap:16px; align-items:end; }
.faculty-initiatives h2 { margin:5px 0 0; font:600 clamp(1.65rem,3vw,2.15rem)/1.05 var(--display); }
.faculty-initiatives > header > small { color:var(--muted); text-align:right; }
.initiative-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:17px; }
.daily-initiative-grid { grid-template-columns:1fr; }
.daily-initiative-grid .daily-initiative-feature { min-height:168px; align-items:center; background:radial-gradient(circle at 94% 10%,rgba(201,156,85,.12),transparent 34%),rgba(4,3,6,.62); }
.initiative-grid article { display:grid; grid-template-columns:46px minmax(0,1fr); gap:12px; min-width:0; padding:15px; border:1px solid rgba(201,156,85,.25); border-radius:13px; background:rgba(4,3,6,.55); }
.initiative-grid article > span { width:44px; height:44px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--gold-bright); font-size:20px; }
.initiative-grid small,.initiative-grid strong,.initiative-grid p { display:block; }
.initiative-grid small { color:var(--gold); font-size:.68rem; font-weight:800; letter-spacing:.08em; line-height:1.35; }
.initiative-grid strong { margin-top:5px; color:var(--ivory); font:600 1.22rem/1.15 var(--serif); }
.initiative-grid p { margin:7px 0 12px; color:var(--muted); font-size:.9rem; line-height:1.5; }
.initiative-grid button { min-height:42px; padding:8px 12px; border:1px solid var(--line); border-radius:9px; background:rgba(201,156,85,.08); color:var(--gold-bright); font-weight:700; cursor:pointer; }
.initiative-grid button:hover,.initiative-grid button:focus-visible { border-color:var(--gold); background:rgba(201,156,85,.15); }
.faculty-initiatives > footer { margin-top:14px; padding-top:13px; border-top:1px solid rgba(201,156,85,.18); }
.guardian-editorial header { display:flex; gap:12px; align-items:center; }
.guardian-editorial-seal { width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); }
.guardian-editorial header small,.guardian-editorial header strong { display:block; }
.guardian-editorial header small { color:var(--gold); font-size:9px; font-weight:800; letter-spacing:.12em; }
.guardian-editorial h3 { margin:18px 0 7px; font:600 27px var(--serif); }
.guardian-editorial > p { color:#d8d1d7; line-height:1.65; }
.guardian-editorial > small { display:block; margin-top:12px; color:var(--muted); font-size:10px; }

.lunar-gadget { position:fixed; z-index:27; right:118px; bottom:26px; }
.lunar-gadget-toggle { min-height:58px; display:flex; align-items:center; gap:10px; padding:9px 14px 9px 9px; border:1px solid var(--line); border-radius:999px; background:rgba(8,6,8,.96); color:var(--ivory); box-shadow:0 12px 38px rgba(0,0,0,.42); cursor:pointer; }
.lunar-gadget-toggle > span:first-child { width:38px; height:38px; display:grid; place-items:center; border-radius:50%; background:rgba(201,156,85,.12); color:var(--gold-bright); font-size:22px; }
.lunar-gadget-toggle small,.lunar-gadget-toggle strong { display:block; text-align:left; }
.lunar-gadget-toggle small { color:var(--gold); font-size:8px; letter-spacing:.12em; }
.lunar-gadget-toggle strong { margin-top:2px; font-size:11px; }
.lunar-gadget-panel { position:absolute; right:0; bottom:68px; width:min(390px,calc(100vw - 24px)); padding:22px; overflow:hidden; border:1px solid rgba(217,182,111,.55); border-radius:18px; background:radial-gradient(circle at 50% 32%,rgba(75,61,92,.28),transparent 38%),linear-gradient(160deg,#100c14,#080608 70%); box-shadow:0 24px 75px rgba(0,0,0,.72); }
.lunar-gadget-panel header { display:flex; justify-content:space-between; gap:12px; }
.lunar-gadget-panel h2 { margin:4px 0; font:600 31px var(--serif); }
.lunar-gadget-panel header button { width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:none; color:var(--ivory); font-size:22px; }
.lunar-visual { display:flex; justify-content:center; align-items:center; gap:24px; margin:20px 0; }
.lunar-disc { width:118px; height:118px; display:grid; place-items:center; border:1px solid rgba(233,211,162,.38); border-radius:50%; background:radial-gradient(circle at 38% 34%,#efe3bf,#ab9569 54%,#30271f 72%); box-shadow:0 0 0 9px rgba(201,156,85,.04),0 0 34px rgba(217,182,111,.18); }
.lunar-disc span { color:#14100e; font-size:54px; mix-blend-mode:multiply; }
.lunar-reading strong,.lunar-reading small,.lunar-reading span { display:block; }
.lunar-reading strong { color:var(--ivory); font:600 32px var(--serif); }
.lunar-reading small { width:120px; color:var(--muted); line-height:1.45; }
.lunar-reading span { margin-top:7px; color:var(--gold); font-size:12px; }
.lunar-timeline { height:6px; overflow:hidden; border-radius:999px; background:#262027; }
.lunar-timeline span { display:block; width:0; height:100%; border-radius:inherit; background:linear-gradient(90deg,#57462e,var(--gold-bright),#f1e6c9); }
.lunar-facts { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:12px; }
.lunar-facts p { margin:0; padding:10px; border:1px solid rgba(201,156,85,.18); color:var(--muted); font-size:11px; line-height:1.45; }
.lunar-gadget-panel > small { color:var(--muted); }
.lunar-gadget-panel label { display:grid; gap:7px; margin:14px 0; color:var(--gold); font-size:11px; font-weight:700; }
.lunar-gadget-panel select { width:100%; min-height:44px; }

@media (max-width: 1100px) {
  .course-catalog { grid-template-columns: 1fr; }
  .course-card { grid-template-columns: 48px minmax(0,1fr) 105px 90px; gap: 12px; }
  .nav-hubs { grid-template-columns:1fr 1fr; }
  .nav-hubs > section:last-child { grid-column:1/-1; }
  .nav-hubs > section:last-child .nav-grid { grid-template-columns:1fr 1fr; }
  .emporium-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 820px) {
  dialog.nav-dialog { overflow-y:auto; }
  .nav-hubs { grid-template-columns:1fr; }
  .nav-hubs > section:last-child { grid-column:auto; }
  .nav-hubs > section:last-child .nav-grid { grid-template-columns:1fr; }
  .emporium-hero { min-height:360px; }
  .emporium-hero::after { background:linear-gradient(0deg,rgba(4,3,4,.98),rgba(4,3,4,.45) 82%); }
  .emporium-hero > div { padding:30px 20px; }
  .emporium-toolbar { align-items:flex-start; padding:24px 18px 4px; flex-direction:column; }
  .emporium-grid { padding-left:18px; padding-right:18px; }
  .faculty-grid { grid-template-columns:1fr; }
  .faculty-hero { grid-template-columns:1fr; padding:20px; }
  .faculty-seal { display:none; }
  .invite-options { grid-template-columns:1fr; }
  .faculty-dialog form > div,.private-chat-dialog form { grid-template-columns:1fr; }
  .academy-hero { min-height: 520px; }
  .academy-hero-art { object-position: 66% center; }
  .academy-hero-shade { background: linear-gradient(0deg, rgba(3,3,3,.99) 0%, rgba(3,3,3,.9) 48%, rgba(3,3,3,.18) 100%); }
  .academy-hero-copy { position: absolute; inset: auto 0 0; max-width: none; padding: 30px 25px; }
  .course-card { grid-template-columns: 42px minmax(0,1fr) 84px; }
  .course-state { display: none; }
  .course-open { min-width: 80px; }
  .course-section-nav { padding:9px 14px; }
  .course-overview { grid-template-columns:repeat(2,minmax(0,1fr)); margin:0 14px; }
  .unit-study-plan > header { grid-template-columns:1fr; }
  .rank-path { grid-column: 1; }
  .degree-heading { display: block; }
  .degree-heading > p { margin-top: 10px; }
  .degree-grid { grid-template-columns: 1fr; }
  .degree-card { min-height: 0; }
  .degree-summary > header { grid-template-columns:1fr; }
  .degree-summary-stats { justify-self:start; }
  .academic-milestones { grid-template-columns:1fr; }
  .academic-outcome > header { grid-template-columns:1fr; }
  .academic-outcome-score { justify-items:start; }
  .academic-opportunities-head { grid-template-columns:1fr; }
  .academic-opportunities-head p { margin-top:7px; text-align:left; }
  .academic-opportunities > div { grid-template-columns:1fr; }
  .academic-opportunities article { min-height:0; }
  .archive-grid,.order-directory { grid-template-columns:1fr 1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .places-grid { grid-template-columns:1fr; }
  .places-empty { grid-column:1; }
  .community-layout { grid-template-columns:1fr; }
  .social-profile { max-width:none; }
}

@media (max-width: 560px) {
  .faculty-initiatives { padding:17px 13px; }
  .faculty-initiatives > header { display:grid; align-items:start; }
  .faculty-initiatives > header > small { text-align:left; }
  .initiative-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; margin-inline:-13px; padding-inline:13px; scrollbar-width:none; }
  .daily-initiative-grid { display:grid; margin-inline:0; padding-inline:0; overflow:visible; }
  .initiative-grid::-webkit-scrollbar { display:none; }
  .initiative-grid article { flex:0 0:min(82vw,310px); grid-template-columns:40px minmax(0,1fr); padding:13px; scroll-snap-align:start; }
  .daily-initiative-grid article { width:100%; min-height:0; }
  .initiative-grid article > span { width:38px; height:38px; }
  .academy-hero { min-height: 590px; }
  .academy-hero h2 { font-size: 46px; }
  .degree-quick-select { display:grid; gap:10px; }
  .degree-quick-select select { width:100%; min-width:0; }
  .degree-grid { grid-template-columns:1fr; }
  .degree-card { min-height:190px; padding:16px 13px; }
  .degree-card h3 { font-size:22px; }
  .degree-card p { display:-webkit-box; overflow:hidden; -webkit-line-clamp:3; -webkit-box-orient:vertical; font-size:13px; }
  .degree-credit > span { font-size:11px; }
  .degree-summary { padding:18px 13px; }
  .degree-plan-heading { display:grid; gap:4px; }
  .degree-plan button { grid-template-columns:38px minmax(0,1fr); }
  .degree-plan button b { grid-column:2; }
  .degree-summary > footer { display:grid; }
  .degree-summary > footer .primary-btn { width:100%; }
  .academy-jump { top:67px; margin:10px -4px 0; padding:8px; }
  .academy-jump label { gap:7px; }
  .academy-jump .secondary-btn { padding-inline:12px; }
  .academic-outcome { padding:18px 13px; }
  .academic-opportunities { padding:15px 11px; }
  .hero-mantra { line-height: 1.7; }
  .course-card { min-height: 0; grid-template-columns: 35px minmax(0,1fr); gap: 11px; padding: 14px 12px; }
  .course-open { grid-column: 2; width: fit-content; min-width: 110px; margin-top: 4px; }
  .course-card p { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
  .course-tags { display: none; }
  .course-facts span { font-size:8px; }
  .course-overview > div { padding:12px; }
  .course-overview strong { font-size:16px; }
  .unit-study-plan > div { grid-template-columns:1fr; }
  .rank-path { padding: 17px 13px; }
  .rank-path-head { display: block; }
  .rank-path-head > strong { display: block; margin-top: 8px; }
  .rank-steps { grid-template-columns: 1fr 1fr; }
  .archive-grid,.order-directory { grid-template-columns:1fr; }
  .order-hero { grid-template-columns:auto 1fr; }
  .order-hero > button { grid-column:1/3; }
  .order-sigil { width:62px; height:62px; font-size:31px; }
  .order-directory article,.order-list article { grid-template-columns:auto minmax(0,1fr); }
  .order-directory article button,.order-list article button { grid-column:2; width:100%; }
  .canon-section { padding:18px 12px; }
  .canon-criteria { display:block; }
  .canon-criteria p { margin-top:6px; }
  .canon-card { grid-template-columns:52px minmax(0,1fr); gap:10px; padding:14px 10px; }
  .canon-score { grid-column:2; display:flex; align-items:baseline; gap:4px; text-align:left; }
  .canon-score strong { font-size:22px; }
  .contact-shortcut { padding:9px 10px; }
  .contact-hero { grid-template-columns:1fr; padding:24px 18px; }
  .contact-sigil { width:62px; height:62px; }
  .contact-form { padding:22px 16px; }
  .places-hero { grid-template-columns:1fr; padding:24px 19px; }
  .atlas-map-shell { grid-template-columns:1fr; padding:20px 16px; }
  .atlas-map { min-height:320px; }
  .atlas-map iframe { height:320px; }
  .private-chat-dialog { width:calc(100vw - 8px); height:calc(100dvh - 8px - env(safe-area-inset-top)); max-height:calc(100dvh - 8px - env(safe-area-inset-top)); border-radius:12px; }
  .private-chat-dialog > header { padding:14px 54px 13px 14px; }
  .private-chat-dialog > header > span { width:46px; height:46px; }
  .private-chat-dialog h2 { font-size:25px; }
  .private-chat-messages { padding:18px 12px; }
  .private-chat-dialog form { grid-template-columns:minmax(0,1fr) 48px; padding:10px 10px calc(10px + env(safe-area-inset-bottom)); }
  .private-chat-dialog form button { width:48px; min-width:48px; padding:0; font-size:0; }
  .private-chat-dialog form button::after { content:"↑"; font-size:20px; }
  .places-compass { width:64px; height:64px; font-size:30px; }
  .location-control { grid-template-columns:1fr; padding:22px 17px; }
  .location-actions { grid-template-columns:1fr; }
  .location-actions .primary-btn { grid-column:auto; }
  .location-actions .location-clear { justify-self:start; }
  .places-toolbar { display:block; }
  .places-toolbar label { margin-top:12px; }
  .atlas-filters { grid-template-columns:1fr 1fr; }
  .atlas-filters label:first-child { grid-column:1/3; }
  .place-card { grid-template-columns:48px minmax(0,1fr); min-height:0; padding:17px 14px; }
  .place-symbol { width:46px; height:46px; font-size:23px; }
  .place-card h3 { font-size:24px; }
  .place-links { align-items:stretch; }
  .place-links .primary-btn { width:auto; }
  dialog.nav-dialog { width:calc(100% - 16px); max-height:calc(100dvh - 16px); gap:14px; padding:22px 14px 18px; }
  .nav-dialog-copy { padding-right:34px; }
  .nav-dialog-copy h2 { font-size:clamp(27px,9vw,36px); }
  .text-size-control { margin:0; }
  .visitor-guide-reopen { margin:0; }
  .nav-faculty-spotlight { padding:13px 11px; }
  .nav-faculty-spotlight > div { display:flex; gap:8px; padding-bottom:4px; overflow-x:auto; scroll-snap-type:x proximity; }
  .nav-faculty-spotlight > div > button { flex:0 0 112px; scroll-snap-align:start; }
  .nav-hubs { gap:14px; }
  .nav-hubs > section { padding:13px; }
  .nav-hubs > section > header { margin-bottom:10px; }
  .nav-grid { grid-template-columns:1fr; }
  .emporium-notice { grid-template-columns:1fr; margin:16px 12px 0; }
  .emporium-grid { grid-template-columns:1fr; padding:14px 12px 40px; }
  .emporium-card { min-height:220px; padding:20px; }
  .lunar-gadget { left:10px; right:auto; bottom:82px; }
  .lunar-gadget-toggle { min-height:48px; padding:5px; }
  .lunar-gadget-toggle > span:first-child { width:36px; height:36px; }
  .lunar-gadget-toggle > span:last-child { display:none; }
  .lunar-gadget-panel { left:0; right:auto; bottom:56px; width:min(340px,calc(100vw - 20px)); }
  dialog.auth-dialog[open] { grid-template-columns:1fr; }
  .auth-mark { min-height:150px; border-right:0; border-bottom:1px solid var(--line); }
  .auth-mark span { width:72px; height:72px; font-size:36px; }
  .auth-copy { padding:30px 20px 24px; }
  .auth-copy h2 { font-size:36px; }
  .community-feed { gap:12px; }
  .forum-thread { grid-template-columns:minmax(0,1fr); }
  .thread-vote { display:none; }
  .thread-body { padding:16px 14px; }
  .post-head { grid-template-columns:42px minmax(0,1fr); column-gap:10px; }
  .post-head .composer-avatar { width:42px; height:42px; }
  .post-head small { grid-column:2; font-size:.72rem; }
  .thread-body > h3 { margin-top:17px; font-size:clamp(1.45rem,7vw,1.85rem); line-height:1.08; }
  .thread-body > p { font-size:1rem; line-height:1.58; }
  .post-actions { justify-content:flex-start; flex-wrap:wrap; gap:8px; }
  .virtual-editorial-label { flex:1 1 180px; line-height:1.4; }
  .comment-form { grid-template-columns:1fr; }
  .feed-filter { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:8px; }
  .feed-filter > strong { font:600 1.45rem/1.1 var(--display); }
  #refreshCommunity { grid-column:2; grid-row:1; min-height:42px; padding:7px 11px; font-size:.82rem; }
  .forum-sort { grid-column:1/-1; grid-row:2; width:100%; margin-left:0; justify-content:space-between; }
  .forum-sort select { flex:1; min-width:0; }
  .profile-cover { height:190px; }
  .profile-summary { padding:60px 17px 22px; }
  .profile-identity { grid-template-columns:1fr; }
  .profile-stats { grid-template-columns:repeat(2,1fr); }
  .profile-activity-grid,.skill-grid { grid-template-columns:1fr; }
  .password-field { grid-template-columns:1fr; }
  .avatar-editor { grid-template-columns:72px minmax(0,1fr); gap:12px; padding:13px; }
  .avatar-preview { width:68px; height:68px; font-size:30px; }
  .avatar-preset-grid { grid-template-columns:repeat(4,minmax(58px,1fr)); overflow-x:auto; padding-bottom:4px; }
  .community-cover { grid-template-columns:1fr; padding:21px 16px; }
  .community-member-count { justify-self:start; }
  .community-member-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
  .community-member-card { padding:11px 5px; }
  .community-member-avatar { width:56px; height:56px; }
  .welcome-dialog { padding:24px 16px; }
  .welcome-messages article { grid-template-columns:48px minmax(0,1fr); padding:11px; }
  .welcome-messages img { width:48px; height:48px; }
  .members-dashboard { grid-template-columns:1fr; padding:18px; }
  .members-actions > * { flex:1 1 150px; }
  .social-request-list article,.study-session-card { grid-template-columns:40px minmax(0,1fr); }
  .request-actions { grid-column:1/-1; justify-content:stretch; }
  .request-actions button { flex:1; }
  .study-friend-choices { grid-template-columns:1fr; }
  .member-profile-dialog,.study-invite-dialog,.symbolic-dialog,.card-reading-dialog,.member-game-dialog,.study-session-dialog { width:calc(100vw - 12px); max-height:calc(100dvh - 12px); }
  .member-profile-body { padding:55px 18px 20px; }
  .member-profile-actions > * { flex:1 1 140px; }
  .study-invite-dialog,.symbolic-dialog,.card-reading-dialog,.member-game-dialog,.study-session-dialog { padding:20px 14px; }
  .reading-hero { grid-template-columns:1fr; padding:20px 16px; }
  .reading-hero > button { width:100%; }
  .reading-section { padding:18px 14px; }
  .reading-friend-grid { grid-template-columns:1fr; }
  .social-game-grid { grid-template-columns:1fr; }
  .study-session-dialog form { grid-template-columns:minmax(0,1fr) 48px; }
  .study-session-dialog form button { min-width:48px; padding:0 8px; }
}

/* Gothic cathedral visual system */
body { background:radial-gradient(ellipse at 78% -10%,rgba(92,20,43,.38),transparent 38%),radial-gradient(ellipse at 4% 48%,rgba(45,13,44,.3),transparent 31%),linear-gradient(90deg,transparent 0 49.8%,rgba(183,138,73,.035) 50%,transparent 50.2%),var(--bg); }
body::before { content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(135deg,rgba(183,138,73,.022) 1px,transparent 1px),linear-gradient(45deg,rgba(122,31,53,.018) 1px,transparent 1px); background-size:54px 54px; }
.sidebar { background:linear-gradient(180deg,rgba(8,4,9,.985),rgba(19,6,15,.97)); border-right-color:rgba(183,138,73,.36); box-shadow:12px 0 42px rgba(0,0,0,.28); }
.brand-mark { border-width:2px; background:radial-gradient(circle at 50% 30%,#3a1022,#090509 70%); box-shadow:inset 0 0 22px rgba(183,138,73,.12),0 0 26px rgba(80,12,34,.22); }
.brand strong,.topbar h1,.hero-content h2,.view-intro h2,.panel-heading h2,.academy-hero h2 { letter-spacing:.025em; text-shadow:0 2px 20px rgba(0,0,0,.72); }
.nav-item { border-radius:3px 12px 3px 12px; }
.nav-item:hover,.nav-item.active { background:linear-gradient(90deg,rgba(92,20,43,.34),rgba(183,138,73,.055)); border-color:rgba(183,138,73,.33); box-shadow:inset 3px 0 var(--blood-bright); }
.topbar { border-bottom-color:rgba(183,138,73,.35); }
.hero-card,.academy-hero { border-radius:4px 26px 4px 26px; border-color:rgba(183,138,73,.42); box-shadow:0 28px 90px rgba(0,0,0,.52),inset 0 1px rgba(226,186,112,.08); }
.hero-overlay { background:linear-gradient(90deg,rgba(5,2,6,.98),rgba(25,5,17,.88) 46%,rgba(36,5,19,.16) 78%); }
.academy-hero { background:radial-gradient(circle at 80% 45%,rgba(183,138,73,.13),transparent 24%),linear-gradient(135deg,#230916,#09050a 72%); }
.panel,.course-card,.knowledge-card,.religion-card,.community-cover { border-radius:3px 17px 3px 17px; border-color:rgba(183,138,73,.31); background:linear-gradient(145deg,rgba(29,8,22,.97),rgba(6,4,7,.985) 72%); box-shadow:inset 0 1px rgba(226,186,112,.035),0 22px 55px rgba(0,0,0,.24); }
.panel { position:relative; }
.panel::before { content:"◆"; position:absolute; top:-9px; left:24px; z-index:2; padding:0 8px; background:var(--bg); color:rgba(226,186,112,.58); font-size:12px; line-height:18px; pointer-events:none; }
.course-card:hover { border-color:color-mix(in srgb,var(--course-tone) 68%,var(--gold)); box-shadow:0 24px 58px rgba(0,0,0,.46),inset 0 0 30px rgba(92,20,43,.08); }
.course-icon,.academy-compass,.mini-card { box-shadow:inset 0 0 24px rgba(73,14,42,.36),0 12px 34px rgba(0,0,0,.38); }
.primary-btn { border-radius:3px 10px 3px 10px; background:linear-gradient(135deg,#d1a55f,#9b6b36); color:#10080c; box-shadow:inset 0 1px rgba(255,235,191,.28); }
.secondary-btn,.contact-shortcut,.atlas-shortcut,.sound-toggle,.streak { border-radius:3px 10px 3px 10px; background:linear-gradient(145deg,rgba(43,11,30,.42),rgba(8,5,9,.88)); }
input,textarea,select { border-radius:3px 9px 3px 9px; background:#080509; }
input:focus,textarea:focus,select:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(183,138,73,.11),inset 3px 0 var(--blood-bright); }
dialog,.member-profile-dialog,.study-invite-dialog,.symbolic-dialog,.card-reading-dialog,.member-game-dialog,.study-session-dialog { border-radius:3px 22px 3px 22px; border-color:rgba(226,186,112,.44); background:linear-gradient(150deg,#160912,#070408 60%); box-shadow:0 34px 110px rgba(0,0,0,.82),inset 0 0 46px rgba(80,12,34,.07); }
.bottom-nav { background:linear-gradient(180deg,rgba(9,5,9,.96),rgba(3,2,4,.995)); border-top-color:rgba(183,138,73,.4); box-shadow:0 -16px 45px rgba(0,0,0,.46); }
.eyebrow { color:var(--gold-bright); }
::selection { background:rgba(122,31,53,.75); color:#fff7ea; }
* { scrollbar-color:rgba(183,138,73,.42) rgba(6,4,7,.7); }

@media (max-width:560px) {
  .panel::before { left:16px; }
  .hero-card,.academy-hero,.panel,.course-card,.community-cover { border-radius:2px 14px 2px 14px; }
}

/* v95 — progressive disclosure keeps the Academy focused without removing content. */
.academy-primary-actions { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); max-width:620px; }
.academy-primary-actions > button { min-height:52px; }
.academy-more-actions { width:min(620px,100%); margin-top:9px; font-family:var(--ui); }
.academy-more-actions > summary,
.degree-browser > summary,
.academy-extensions > summary { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:14px; padding:10px 14px; border:1px solid rgba(226,186,112,.3); background:rgba(5,4,5,.78); color:var(--ivory); cursor:pointer; list-style:none; }
.academy-more-actions > summary::-webkit-details-marker,
.degree-browser > summary::-webkit-details-marker,
.academy-extensions > summary::-webkit-details-marker { display:none; }
.academy-more-actions > summary::after,
.degree-browser > summary::after { content:"+"; color:var(--gold-bright); font:600 20px var(--ui); }
.academy-more-actions[open] > summary::after,
.degree-browser[open] > summary::after { content:"−"; }
.academy-more-actions > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:8px 0 0; }
.academy-more-actions .secondary-btn { min-height:46px; }
.degree-browser { margin-top:10px; }
.degree-browser > summary { border-radius:6px; }
.degree-browser > summary > span { font-weight:700; }
.degree-browser > summary > small { margin-left:auto; color:var(--muted); font-size:13px; }
.degree-browser .degree-grid { margin-top:9px; }
.academy-extensions { margin:26px 0 12px; }
.academy-extensions > summary { min-height:70px; padding:14px 18px; border-radius:3px 14px 3px 14px; background:linear-gradient(145deg,rgba(31,10,24,.95),rgba(7,5,8,.98)); }
.academy-extensions > summary span { display:grid; gap:4px; }
.academy-extensions > summary strong { font:600 23px/1.05 var(--display); }
.academy-extensions > summary small { color:var(--muted); font-size:13px; }
.academy-extensions > summary b { color:var(--gold-bright); font:700 13px var(--ui); }
.academy-extensions[open] > summary b { font-size:0; }
.academy-extensions[open] > summary b::after { content:"Chiudi"; font-size:13px; }
.academy-extensions-body { padding-top:8px; }

@media (max-width:820px) {
  .academy-primary-actions { grid-template-columns:1fr; }
  .academy-more-actions > div { grid-template-columns:1fr 1fr; }
  .degree-browser[open] .degree-grid { display:grid; grid-template-columns:1fr; }
  .academy-extensions { margin-top:18px; }
  .academy-extensions > summary { min-height:64px; padding:12px 14px; }
  .academy-extensions > summary strong { font-size:20px; }
}

@media (max-width:420px) {
  .academy-more-actions > div { grid-template-columns:1fr; }
}

/* Clear reading path: local book faces first, compact navigation */
body {
  font-family: var(--book);
  font-variant-ligatures: common-ligatures;
}

.view {
  width: min(1180px, 100%);
  margin-inline: auto;
}

.panel,
.course-card,
.knowledge-card,
.religion-card,
.community-cover {
  background-image:
    linear-gradient(100deg, rgba(226,186,112,.025), transparent 24%),
    linear-gradient(145deg, rgba(29,8,22,.97), rgba(6,4,7,.985) 72%);
}

.topbar h1,
.hero-content h2,
.view-intro h2,
.panel-heading h2,
.academy-hero h2,
.course-card h3,
.knowledge-card h3,
.religion-card h3,
.profile-summary h2,
.faculty-card h3,
dialog h2 {
  letter-spacing: .012em;
}

.nav-item,
.community-tabs,
.catalog-filters,
.degree-quick-select,
.hero-actions,
.nav-dialog,
.language-picker,
.sound-toggle {
  font-family: var(--ui);
}

.community-tabs { display:none; }
.community-section-picker { display:grid; grid-template-columns:auto minmax(180px,340px); justify-content:end; align-items:center; gap:10px; margin:0 0 18px; color:var(--gold-bright); font:600 12px var(--ui); text-transform:uppercase; letter-spacing:.1em; }
.community-section-picker select { min-height:48px; width:100%; padding:0 40px 0 14px; border:1px solid var(--gold); background:#0d080b; color:var(--ivory); font:600 15px var(--ui); }
.discipline-menus { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:22px 0 8px; }
.discipline-heading { grid-column:1/-1; }
.discipline-heading h2 { margin:4px 0 3px; font:600 34px/1 var(--display); }
.discipline-menus details { border:1px solid rgba(183,138,73,.38); border-radius:3px 15px 3px 15px; background:linear-gradient(145deg,rgba(36,10,25,.96),rgba(6,4,7,.98)); overflow:hidden; }
.discipline-menus summary { display:grid; grid-template-columns:48px minmax(0,1fr) auto; gap:12px; align-items:center; min-height:76px; padding:12px 16px; cursor:pointer; list-style:none; }
.discipline-menus summary::-webkit-details-marker { display:none; }
.discipline-menus summary > span:first-child { display:grid; place-items:center; width:46px; height:46px; border:1px solid var(--gold); border-radius:50%; color:var(--gold-bright); font:600 24px var(--display); }
.discipline-menus summary strong,.discipline-menus summary small { display:block; }
.discipline-menus summary strong { font:600 25px/1 var(--display); }
.discipline-menus summary small { margin-top:4px; color:var(--muted); font:500 12px var(--ui); }
.discipline-menus summary b { color:var(--gold); font:600 22px var(--ui); transition:transform .18s; }
.discipline-menus details[open] summary b { transform:rotate(180deg); }
.discipline-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:0 12px 12px; }
.discipline-links button { min-height:46px; padding:9px 11px; border:1px solid var(--line); background:#080507; color:var(--ivory); text-align:left; cursor:pointer; }
.discipline-links button:hover,.discipline-links button:focus-visible { border-color:var(--gold); color:var(--gold-bright); }

/* Thematic rooms: every major area keeps its own visual atmosphere. */
.view.active { position:relative; isolation:isolate; min-height:calc(100vh - 130px); }
.view.active::before { content:""; position:absolute; inset:-24px -4vw -70px; z-index:-2; pointer-events:none; background:var(--view-room); background-attachment:fixed; background-position:center top; background-size:cover; }
.view.active::after { content:""; position:absolute; inset:-24px -4vw -70px; z-index:-1; pointer-events:none; opacity:.22; background-image:linear-gradient(90deg,transparent 49.7%,rgba(226,186,112,.08) 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,rgba(226,186,112,.05) 50%,transparent 50.3%); background-size:180px 180px; mask-image:linear-gradient(to bottom,black,transparent 72%); }
#coursesView { --view-room:linear-gradient(180deg,rgba(4,2,5,.18),#050306 74%),radial-gradient(circle at 76% 12%,rgba(150,87,40,.24),transparent 32%),radial-gradient(circle at 14% 46%,rgba(82,28,49,.24),transparent 36%),#050306; }
#knowledgeView { --view-room:linear-gradient(180deg,rgba(3,5,9,.12),#030507 78%),radial-gradient(circle at 78% 18%,rgba(37,76,94,.3),transparent 34%),radial-gradient(circle at 12% 58%,rgba(72,50,88,.23),transparent 38%),#030507; }
#homeView,#lessonView { --view-room:linear-gradient(180deg,rgba(2,5,10,.06),#03060b 76%),radial-gradient(circle at 72% 14%,rgba(34,82,111,.34),transparent 34%),radial-gradient(circle at 9% 56%,rgba(90,63,115,.22),transparent 34%),#03060b; }
#libraryView { --view-room:linear-gradient(180deg,rgba(2,4,11,.08),#03040a 78%),radial-gradient(circle at 82% 18%,rgba(49,61,145,.3),transparent 32%),radial-gradient(circle at 13% 63%,rgba(96,45,103,.25),transparent 36%),#03040a; }
#practiceView { --view-room:linear-gradient(180deg,rgba(4,3,8,.08),#050408 78%),radial-gradient(circle at 78% 16%,rgba(85,52,112,.32),transparent 34%),radial-gradient(circle at 10% 58%,rgba(44,106,104,.2),transparent 35%),#050408; }
#journalView { --view-room:linear-gradient(180deg,rgba(8,5,2,.06),#080503 80%),radial-gradient(circle at 80% 15%,rgba(137,86,43,.28),transparent 34%),radial-gradient(circle at 11% 62%,rgba(77,45,25,.3),transparent 38%),#080503; }
#gamesView { --view-room:linear-gradient(180deg,rgba(7,2,5,.06),#070205 80%),radial-gradient(circle at 78% 15%,rgba(129,28,54,.3),transparent 33%),radial-gradient(circle at 12% 58%,rgba(74,42,104,.28),transparent 36%),#070205; }
#communityView { --view-room:linear-gradient(180deg,rgba(5,3,7,.08),#050307 80%),radial-gradient(circle at 78% 15%,rgba(98,45,94,.3),transparent 34%),radial-gradient(circle at 12% 58%,rgba(42,79,91,.2),transparent 38%),#050307; }
#placesView { --view-room:linear-gradient(180deg,rgba(2,6,7,.05),#020607 80%),radial-gradient(circle at 79% 15%,rgba(43,104,90,.28),transparent 34%),radial-gradient(circle at 12% 60%,rgba(77,90,45,.2),transparent 38%),#020607; }
#emporiumView { --view-room:linear-gradient(180deg,rgba(8,5,2,.04),#080502 80%),radial-gradient(circle at 78% 14%,rgba(150,101,41,.3),transparent 33%),radial-gradient(circle at 10% 58%,rgba(91,43,29,.24),transparent 36%),#080502; }
#contactView { --view-room:linear-gradient(180deg,rgba(2,7,6,.05),#020706 80%),radial-gradient(circle at 77% 14%,rgba(38,111,91,.25),transparent 34%),radial-gradient(circle at 13% 60%,rgba(46,77,91,.23),transparent 38%),#020706; }
body[data-community-panel="profile"] #communityView { --view-room:linear-gradient(180deg,rgba(8,3,9,.05),#070307 80%),radial-gradient(circle at 78% 14%,rgba(137,63,105,.3),transparent 34%),radial-gradient(circle at 12% 58%,rgba(74,48,95,.24),transparent 36%),#070307; }
body[data-community-panel="chat"] #communityView { --view-room:linear-gradient(180deg,rgba(2,6,8,.05),#020608 80%),radial-gradient(circle at 78% 14%,rgba(40,109,119,.27),transparent 34%),radial-gradient(circle at 12% 58%,rgba(52,65,110,.23),transparent 36%),#020608; }
body[data-community-panel="readings"] #communityView { --view-room:linear-gradient(180deg,rgba(4,3,10,.05),#04030a 80%),radial-gradient(circle at 78% 14%,rgba(73,58,150,.28),transparent 34%),radial-gradient(circle at 12% 58%,rgba(111,45,95,.22),transparent 36%),#04030a; }
body[data-community-panel="faculty"] #communityView { --view-room:linear-gradient(180deg,rgba(8,5,2,.05),#080502 80%),radial-gradient(circle at 78% 14%,rgba(151,96,37,.28),transparent 34%),radial-gradient(circle at 12% 58%,rgba(87,48,31,.23),transparent 36%),#080502; }
body[data-arcana-view="courses"] .topbar,body[data-arcana-view="emporium"] .topbar { border-bottom-color:rgba(226,186,112,.38); }
body[data-arcana-view="knowledge"] .topbar,body[data-arcana-view="library"] .topbar { border-bottom-color:rgba(93,139,169,.38); }
body[data-arcana-view="places"] .topbar,body[data-arcana-view="contact"] .topbar { border-bottom-color:rgba(91,157,137,.36); }
body[data-arcana-view="games"] .topbar,body[data-arcana-view="community"] .topbar { border-bottom-color:rgba(147,74,121,.4); }
.section-guide { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:14px 0 22px; overflow:hidden; border:1px solid rgba(226,186,112,.27); border-radius:14px; background:rgba(226,186,112,.18); box-shadow:0 18px 55px rgba(0,0,0,.18); }
.section-guide > div { display:grid; grid-template-columns:42px minmax(0,1fr); grid-template-rows:auto auto; column-gap:11px; align-items:center; min-height:78px; padding:14px 16px; background:rgba(7,6,8,.88); backdrop-filter:blur(12px); }
.section-guide span { grid-row:1/3; display:grid; place-items:center; width:38px; height:38px; border:1px solid currentColor; border-radius:50%; color:var(--gold-bright); font:600 15px var(--inscription); }
.section-guide strong,.section-guide small { display:block; min-width:0; }
.section-guide strong { align-self:end; color:var(--ivory); font:600 19px/1.05 var(--display); }
.section-guide small { align-self:start; margin-top:4px; color:var(--muted); font:500 12px/1.35 var(--ui); }
#knowledgeView .section-guide span,#libraryView .section-guide span { color:#8fb7cf; }
#practiceView .section-guide span,#contactView .section-guide span,#placesView .section-guide span { color:#86b8a8; }
#journalView .section-guide span,#emporiumView .section-guide span { color:#d2a45e; }
#gamesView .section-guide span,#communityView .section-guide span { color:#c181ad; }

@media (max-width:820px) {
  main { padding:0 12px 96px; }
  .topbar { min-height:68px; margin:0 -12px 12px; padding:0 12px; }
  .topbar h1 { font-size:24px; line-height:1; }
  .academy-hero { min-height:0; }
  .academy-hero-copy { padding:138px 18px 20px; }
  .academy-hero-shade { background:linear-gradient(0deg,rgba(3,3,3,.99) 0%,rgba(3,3,3,.88) 58%,rgba(3,3,3,.18) 100%); }
  .academy-hero h2 { max-width:520px; font-size:42px; line-height:.94; }
  .academy-hero p { font-size:1rem; line-height:1.5; }
  .academy-hero .hero-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:18px; }
  .academy-hero .hero-actions > [data-view="knowledge"],
  .academy-hero .hero-actions > .install-btn,
  .academy-hero .hero-actions > .share-btn { display:none; }
  .starter-paths { padding:20px 14px; }
  .starter-paths > header { display:block; }
  .starter-paths > header p { margin-top:9px; }
  .starter-path-grid { grid-template-columns:1fr; }
  .starter-path-grid > button { min-height:0; padding:18px; }
  .starter-path-grid > button > span { margin-bottom:13px; }
  .academy-complete-body { padding:0 8px 18px; }
  .path-guide { margin-top:10px; padding:12px 8px; gap:5px; }
  .path-guide div { min-width:0; padding:0 5px; }
  .path-guide strong { font-size:12px; }
  .path-guide small { display:none; }
  .degree-section { margin-top:24px; }
  .degree-heading { display:block; }
  .degree-heading p { display:none; }
  .degree-grid { display:none; }
  .degree-quick-select { margin-top:12px; }
  .catalog-toolbar { margin-top:22px; }
  .community-intro { margin:4px 0 12px; }
  .community-intro > p { display:none; }
  .community-intro h2 { font-size:36px; }
  .community-section-picker { position:sticky; top:68px; z-index:20; grid-template-columns:auto minmax(0,1fr); margin:0 -4px 12px; padding:8px 4px; background:rgba(3,2,4,.96); backdrop-filter:blur(14px); }
  .community-pulse { grid-template-columns:1fr; padding:15px; }
  .community-pulse > button { grid-column:auto; }
  .pulse-number { display:none; }
  .mobile-nav { grid-template-columns:repeat(4,1fr); }
  .mobile-nav button { font-family:var(--ui); font-size:10px; }
  .discipline-menus { grid-template-columns:1fr; margin-top:16px; }
  .discipline-heading { grid-column:auto; }
  .discipline-heading h2 { font-size:30px; }
  .discipline-links { grid-template-columns:1fr; }
  .view.active::before,.view.active::after { inset:-12px -12px -96px; background-attachment:scroll; }
  .section-guide { display:flex; overflow-x:auto; scroll-snap-type:x proximity; scrollbar-width:none; }
  .section-guide::-webkit-scrollbar { display:none; }
  .section-guide > div { flex:0 0 min(78vw,290px); scroll-snap-align:start; }
}

@media (max-width:420px) {
  .academy-hero .hero-actions { grid-template-columns:1fr; }
  .academy-hero h2 { font-size:38px; }
  .community-section-picker span { display:none; }
  .community-section-picker { grid-template-columns:1fr; }
}

/* Grimoire typography: antique reading voice, modern controls */
.brand strong,
.nav-group-label,
.eyebrow,
.hero-mantra,
.course-card small,
.knowledge-card small,
.profile-handle,
.path-label,
.lesson-kicker,
.panel-heading > small {
  font-family: var(--inscription);
}

.brand strong {
  font-weight: 600;
  letter-spacing: .18em;
}

.topbar h1,
.hero-content h2,
.view-intro h2,
.panel-heading h2,
.lesson-main h2,
.academy-hero h2,
.course-card h3,
.knowledge-card h3,
.religion-card h3,
.profile-summary h2,
.thread-body > h3,
.faculty-card h3,
dialog h2 {
  font-family: var(--display);
  font-weight: 600;
  text-wrap: balance;
}

.hero-content p,
.view-intro p,
.academy-hero p,
.course-card > p,
.knowledge-card p,
.religion-card p,
.academic-sheet p,
.lecture-block p,
.source-lab p,
.seminar-work p,
.study-depth p,
.lesson-body,
.lesson-main blockquote,
.profile-bio,
.profile-motto,
.thread-body > p,
.forum-comment p,
.faculty-card > p,
.emporium-card > p,
.oracle-answer,
.grimoire-entries article p {
  font-family: var(--book);
  font-size: 1.08rem;
  line-height: 1.66;
  letter-spacing: .004em;
}

.lesson-main blockquote,
.profile-motto {
  font-style: italic;
}

.lesson-body > p:first-of-type::first-letter,
.academic-sheet > p:first-of-type::first-letter {
  float: left;
  margin: .08em .12em 0 0;
  color: var(--gold-bright);
  font: 600 3.15rem/.78 var(--inscription);
  text-shadow: 0 2px 18px rgba(0,0,0,.75);
}

button,
input,
textarea,
select,
.bottom-nav,
.chat-thread,
.private-chat-messages,
.notification-panel,
.post-actions,
.course-progress,
.profile-stats {
  font-family: var(--ui);
}

@media (max-width:560px) {
  .hero-content p,
  .view-intro p,
  .academy-hero p,
  .course-card > p,
  .knowledge-card p,
  .religion-card p,
  .academic-sheet p,
  .lecture-block p,
  .source-lab p,
  .seminar-work p,
  .study-depth p,
  .lesson-body,
  .thread-body > p,
  .forum-comment p {
    font-size: 1.03rem;
    line-height: 1.58;
  }
}

/* Accoglienza guidata: una finestra leggibile anche su schermi piccoli. */
.visitor-guide-reopen {
  width: 100%;
  min-height: 68px;
  margin-top: 16px;
  padding: 12px 14px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  text-align: left;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(200,156,82,.14), rgba(46,22,48,.28));
}
.visitor-guide-reopen > span:first-child { color: var(--gold-bright); font-size: 1.35rem; text-align: center; }
.visitor-guide-reopen strong,
.visitor-guide-reopen small { display: block; overflow-wrap: anywhere; }
.visitor-guide-reopen small { margin-top: 3px; color: var(--muted); line-height: 1.35; }
.visitor-guide-reopen b { color: var(--gold-bright); white-space: nowrap; }

.visitor-guide-dialog {
  width: min(790px, calc(100vw - 28px));
  max-width: 790px;
  max-height: min(780px, calc(100dvh - 28px));
  padding: 0;
  overflow: auto;
  overscroll-behavior: contain;
  color: var(--ink);
  border: 1px solid var(--gold-dim);
  border-radius: 22px;
  background: radial-gradient(circle at 15% 0%, rgba(118,75,39,.21), transparent 36%), #0b080d;
  box-shadow: 0 28px 90px rgba(0,0,0,.8);
}
.visitor-guide-dialog[open] { display: block; }
.visitor-guide-dialog::backdrop { background: rgba(0,0,0,.82); backdrop-filter: blur(5px); }
.visitor-guide-head { padding: 22px 64px 14px 24px; }
.visitor-guide-head > span { color: var(--gold-bright); font: 700 .76rem/1.2 var(--ui); letter-spacing: .16em; }
.visitor-guide-progress { height: 4px; margin-top: 11px; overflow: hidden; border-radius: 4px; background: rgba(255,255,255,.1); }
.visitor-guide-progress i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold-dim), var(--gold-bright)); transition: width .24s ease; }
.visitor-guide-speaker {
  padding: 8px 24px 20px;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid var(--line);
}
.visitor-guide-speaker img { width: 118px; aspect-ratio: 1; object-fit: cover; border: 2px solid var(--gold-dim); border-radius: 50%; box-shadow: 0 8px 32px rgba(0,0,0,.65); }
.visitor-guide-speaker small { display: block; color: var(--gold-bright); font: 700 .72rem/1.45 var(--ui); letter-spacing: .1em; }
.visitor-guide-speaker h2 { margin: 7px 0 4px; font-size: clamp(1.75rem, 5vw, 2.8rem); line-height: .98; overflow-wrap: anywhere; }
.visitor-guide-speaker strong { color: var(--muted); font: 600 .95rem/1.3 var(--ui); }
.visitor-guide-motto { margin: 8px 0 0; color: var(--gold-bright); font: italic .9rem/1.4 var(--book); }
.visitor-guide-copy { padding: 22px 24px 18px; }
.visitor-guide-knowledge { margin: 0 0 18px; padding: 13px 14px; border: 1px solid var(--line); border-radius: 13px; background: rgba(207,170,98,.055); }
.visitor-guide-knowledge p { margin: 0 0 10px; color: var(--ink); font: 600 .92rem/1.4 var(--ui); }
#visitorGuideTopics { display: flex; flex-wrap: wrap; gap: 7px; }
#visitorGuideTopics span { padding: 5px 9px; color: var(--gold-bright); border: 1px solid rgba(207,170,98,.35); border-radius: 999px; font: 700 .7rem/1.2 var(--ui); }
#visitorGuidePaths { display: block; margin-top: 10px; color: var(--muted); font: .78rem/1.4 var(--ui); }
.visitor-guide-copy > p { margin: 0 0 18px; font: 1.08rem/1.6 var(--book); }
.visitor-guide-copy ol { margin: 0; padding: 0; display: grid; gap: 10px; list-style: none; counter-reset: visitor-guide-task; }
.visitor-guide-copy li {
  min-height: 48px;
  padding: 10px 12px 10px 52px;
  position: relative;
  display: flex;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.025);
  font: .98rem/1.45 var(--ui);
  overflow-wrap: anywhere;
  counter-increment: visitor-guide-task;
}
.visitor-guide-copy li::before {
  content: counter(visitor-guide-task);
  width: 30px;
  height: 30px;
  position: absolute;
  left: 11px;
  display: grid;
  place-items: center;
  color: #09070a;
  border-radius: 50%;
  background: var(--gold-bright);
  font-weight: 800;
}
#visitorGuideDisclosure { display: block; margin-top: 16px; color: var(--muted); font: .78rem/1.45 var(--ui); }
.visitor-guide-interaction {
  margin-top: 20px;
  padding: 16px;
  border: 1px solid rgba(207,170,98,.44);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(207,170,98,.09), rgba(49,23,51,.22));
}
.visitor-guide-interaction h3 { margin: 0 0 12px; font: 600 1.12rem/1.35 var(--book); color: var(--ink); }
#visitorGuideChoices { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 9px; }
#visitorGuideChoices button {
  min-height: 50px;
  padding: 10px 12px;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(8,6,10,.72);
  font: 600 .9rem/1.3 var(--ui);
  text-align: left;
}
#visitorGuideChoices button:hover,
#visitorGuideChoices button:focus-visible { border-color: var(--gold-bright); }
#visitorGuideChoices button.selected { color: #0b080d; border-color: var(--gold-bright); background: var(--gold-bright); }
#visitorGuideAnswer { min-height: 1.5em; margin: 12px 0 0; color: var(--gold-bright); font: .9rem/1.45 var(--ui); }
.visitor-guide-dialog footer .primary-btn:disabled { opacity: .4; cursor: not-allowed; }
.visitor-guide-dialog footer {
  padding: 14px 24px calc(14px + env(safe-area-inset-bottom));
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--line);
  background: rgba(11,8,13,.96);
  backdrop-filter: blur(12px);
}
.visitor-guide-dialog footer > div { display: flex; gap: 9px; }
.visitor-guide-dialog footer button { min-height: 46px; }

@media (max-width:560px) {
  .visitor-guide-dialog { width: calc(100vw - 16px); max-height: calc(100dvh - 16px); border-radius: 16px; }
  .visitor-guide-head { padding: 18px 56px 12px 16px; }
  .visitor-guide-speaker { padding: 6px 16px 16px; grid-template-columns: 78px minmax(0, 1fr); gap: 13px; }
  .visitor-guide-speaker img { width: 78px; }
  .visitor-guide-speaker h2 { font-size: clamp(1.52rem, 8vw, 2.05rem); }
  .visitor-guide-speaker small { font-size: .64rem; }
  .visitor-guide-motto { font-size: .8rem; }
  .visitor-guide-copy { padding: 17px 16px 13px; }
  .visitor-guide-knowledge { padding: 11px 12px; }
  .visitor-guide-copy > p { font-size: 1rem; line-height: 1.5; }
  .visitor-guide-copy li { font-size: .92rem; line-height: 1.4; }
  .visitor-guide-interaction { padding: 13px; }
  #visitorGuideChoices { grid-template-columns: 1fr; }
  .visitor-guide-dialog footer { padding: 11px 14px calc(11px + env(safe-area-inset-bottom)); flex-wrap: wrap; }
  .visitor-guide-dialog footer > div { margin-left: auto; }
  .visitor-guide-dialog footer .primary-btn,
  .visitor-guide-dialog footer .secondary-btn { padding-inline: 14px; }
  .visitor-guide-reopen { grid-template-columns: 34px minmax(0, 1fr); }
  .visitor-guide-reopen b { grid-column: 2; }
}

@media (prefers-reduced-motion: reduce) {
  .visitor-guide-progress i { transition: none; }
}

/* La prima schermata personale privilegia azioni reali, non decorazione. */
.today-dashboard {
  padding: 18px;
  border: 1px solid rgba(226,186,112,.3);
  border-radius: 14px;
  background:
    radial-gradient(circle at 92% 0, rgba(112,52,105,.2), transparent 35%),
    linear-gradient(145deg, rgba(19,13,18,.98), rgba(8,7,9,.96));
}
.today-dashboard > header { display:flex; align-items:end; justify-content:space-between; gap:18px; margin-bottom:13px; }
.today-dashboard h3 { margin:3px 0 0; font:600 1.65rem/1.05 var(--display); }
.today-dashboard > header > small { color:var(--muted); font:.78rem/1.3 var(--ui); text-transform:capitalize; }
.today-actions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.today-actions > button {
  min-width:0;
  min-height:112px;
  display:grid;
  grid-template-columns:40px minmax(0,1fr);
  grid-template-rows:1fr auto;
  gap:8px 10px;
  padding:13px;
  color:var(--ivory);
  text-align:left;
  border:1px solid rgba(226,186,112,.22);
  border-radius:10px;
  background:rgba(5,4,6,.76);
  cursor:pointer;
}
.today-actions > button:hover,.today-actions > button:focus-visible { border-color:var(--gold-bright); background:rgba(31,19,26,.9); }
.today-actions > button > span:first-child { grid-row:1/3; width:38px; height:38px; display:grid; place-items:center; color:var(--gold-bright); border:1px solid rgba(226,186,112,.45); border-radius:50%; font:600 1.05rem var(--inscription); }
.today-actions > button > span:nth-child(2) { min-width:0; }
.today-actions small,.today-actions strong,.today-actions em { display:block; overflow-wrap:anywhere; }
.today-actions small { color:var(--gold); font:700 .62rem/1.25 var(--ui); letter-spacing:.09em; }
.today-actions strong { margin:4px 0; font:600 1.05rem/1.15 var(--book); }
.today-actions em { color:var(--muted); font:normal .75rem/1.35 var(--ui); }
.today-actions b { grid-column:2; align-self:end; color:var(--gold-bright); font:700 .74rem/1.2 var(--ui); }

@media (max-width:820px) {
  .today-actions { grid-template-columns:1fr; }
  .today-actions > button { min-height:82px; grid-template-columns:40px minmax(0,1fr) auto; grid-template-rows:1fr; align-items:center; }
  .today-actions > button > span:first-child { grid-row:auto; }
  .today-actions b { grid-column:auto; align-self:center; white-space:nowrap; }
}

@media (max-width:560px) {
  .social-profile .profile-cover { height:132px; }
  .social-profile .profile-summary { padding-top:52px; gap:14px; }
  .profile-identity { gap:10px; }
  .profile-identity h2 { font-size:clamp(1.9rem,10vw,2.55rem); line-height:1; }
  .today-dashboard { padding:14px 12px; margin-inline:-5px; }
  .today-dashboard > header { align-items:start; margin-bottom:10px; }
  .today-dashboard h3 { font-size:1.35rem; }
  .today-dashboard > header > small { max-width:92px; text-align:right; }
  .today-actions > button { min-height:76px; padding:10px; }
  .today-actions > button > span:first-child { width:36px; height:36px; }
  .today-actions strong { font-size:.98rem; }
  .today-actions b { font-size:.68rem; }
}
