@font-face{font-family:HarryP;src:url(/fonts/HarryP.ttf) format("truetype");font-display:swap}@font-face{font-family:Lumos;src:url(/fonts/Lumos.ttf) format("truetype");font-display:swap}:root,:root[data-theme=dark]{color-scheme:dark;--page-bg: #070914;--page-overlay: linear-gradient(rgba(6, 8, 20, .72), rgba(6, 8, 20, .86));--surface: rgba(15, 18, 36, .8);--surface-raised: #141830;--surface-sunken: rgba(255, 255, 255, .05);--text: #ece6d6;--text-muted: #b2aa96;--heading: #e9c869;--link: #edcd73;--border: rgba(212, 175, 55, .28);--border-strong: rgba(212, 175, 55, .55);--nav-bg: rgba(8, 10, 22, .9);--accent: #a11d1d;--accent-hover: #bd2626;--accent-text: #fff8ec;--danger: #ff7b7b;--success: #8fdc9a;--glow: rgba(180, 202, 255, .75);--shadow: 0 10px 30px rgba(0, 0, 0, .45);--chrome-text: #ece6d6;--chrome-text-muted: #b2aa96;--chrome-text-active: #e9c869;--chrome-border: rgba(212, 175, 55, .28);--chrome-menu-bg: #141830;--adminbar-bg: #a11d1d;--adminbar-text: #fff8ec}:root[data-theme=light]{color-scheme:light;--gryffindor-scarlet: #740001;--gryffindor-scarlet-deep: #4f0001;--gryffindor-gold: #d3a625;--page-bg: #f2e4c2;--page-overlay: radial-gradient(ellipse at 50% 0%, rgba(211, 166, 37, .28), transparent 55%), linear-gradient(rgba(249, 240, 218, .9), rgba(241, 226, 189, .95));--surface: rgba(255, 251, 240, .97);--surface-raised: #fffaf0;--surface-sunken: rgba(116, 0, 1, .05);--text: #2b1a10;--text-muted: #6e5537;--heading: #740001;--link: #8f0a0b;--border: rgba(211, 166, 37, .5);--border-strong: rgba(176, 134, 22, .85);--nav-bg: linear-gradient(180deg, #8a0a0b, #5e0001);--accent: #740001;--accent-hover: #93080a;--accent-text: #fbe6a6;--danger: #a11414;--success: #2e6b35;--glow: rgba(211, 166, 37, .7);--shadow: 0 8px 24px rgba(116, 0, 1, .14);--chrome-text: #f7e3a8;--chrome-text-muted: #e3c77e;--chrome-text-active: #ffd75e;--chrome-border: #d3a625;--chrome-menu-bg: #5e0001;--adminbar-bg: #d3a625;--adminbar-text: #3d0000}*,*:before,*:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-h, 64px) + 16px)}body{margin:0;min-height:100vh;font-family:Philosopher,Georgia,serif;font-size:1.05rem;line-height:1.6;color:var(--text);background-color:var(--page-bg);background-image:var(--page-overlay),var(--bg-image, url(/images/constellations.jpeg));background-size:cover;background-position:center;background-attachment:fixed;transition:color .4s ease,background-color .4s ease}#root{min-height:100vh;display:flex;flex-direction:column}main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:calc(var(--header-h, 64px) + 24px) 20px 40px}a{color:var(--link)}h1,h2,h3,h4{line-height:1.2}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--surface-sunken);padding:.1em .4em;border-radius:4px}.icon{flex-shrink:0}.skip-link{position:absolute;left:-999px;top:8px;z-index:2000;background:var(--surface-raised);color:var(--text);padding:8px 12px;border-radius:6px}.skip-link:focus{left:8px}:focus-visible{outline:2px solid var(--heading);outline-offset:2px}.site-top{position:fixed;inset:0 0 auto 0;z-index:1000}.site-nav{position:relative;background:var(--nav-bg);border-bottom:2px solid var(--chrome-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-inner{max-width:1280px;margin:0 auto;height:64px;padding:0 20px;display:flex;align-items:center;gap:12px}.brand-logo{display:block;height:46px;width:auto}.brand-logo{filter:invert(1) drop-shadow(0 0 6px var(--glow))}:root[data-theme=light] .brand-logo{filter:invert(1) sepia(1) saturate(2.6) hue-rotate(-8deg) brightness(.98) drop-shadow(0 0 4px rgba(0,0,0,.35))}.theme-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--chrome-border);background:transparent;color:var(--chrome-text);font:inherit;font-size:.9rem;cursor:pointer;transition:box-shadow .25s ease,border-color .25s ease}.theme-toggle:hover{border-color:var(--chrome-text-active);box-shadow:0 0 12px var(--glow)}.nav-fixed{display:flex;align-items:center;gap:12px;flex-shrink:0}.nav-links{list-style:none;margin:0 0 0 auto;padding:0;display:flex;gap:4px}.nav-links a{display:block;padding:8px 10px;border-radius:6px;color:var(--chrome-text);text-decoration:none;white-space:nowrap}.nav-links a:hover,.nav-links a.active{color:var(--chrome-text-active);text-shadow:0 0 10px var(--glow)}.menu-toggle{display:none;margin-left:auto;padding:8px;border:1px solid var(--chrome-border);border-radius:8px;background:transparent;color:var(--chrome-text);cursor:pointer}.nav-links.nav-measure{position:absolute;visibility:hidden;pointer-events:none;left:0;top:0}.is-compact .menu-toggle{display:inline-flex}.is-compact .nav-links:not(.nav-measure){display:none;position:absolute;top:100%;left:0;right:0;max-height:calc(100vh - 80px);overflow-y:auto;flex-direction:column;padding:8px 16px 16px;background:var(--chrome-menu-bg);box-shadow:var(--shadow);border-bottom:2px solid var(--chrome-border)}.is-compact .nav-links.is-open:not(.nav-measure){display:flex}.is-compact .nav-links:not(.nav-measure) a{padding:12px 8px;border-bottom:1px solid var(--chrome-border)}.admin-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;padding:6px 20px;font-size:.88rem;background:var(--adminbar-bg);color:var(--adminbar-text)}.admin-bar .icon{vertical-align:-2px}.admin-bar-links{display:flex;gap:16px}.admin-bar a,.admin-bar .linklike{color:var(--adminbar-text);font-weight:700}.linklike{background:none;border:none;padding:0;font:inherit;text-decoration:underline;cursor:pointer}.page-header{text-align:center;padding:28px 0 20px}.page-header h1{margin:0;font-family:HarryP,Philosopher,serif;font-weight:400;font-size:clamp(2.8rem,7vw,5rem);letter-spacing:.02em;color:var(--heading);text-shadow:0 0 18px var(--glow);transition:transform .3s ease,text-shadow .3s ease}.page-header h1:hover{transform:scale(1.04);text-shadow:0 0 28px var(--glow)}.page-subtitle{margin:6px 0 0;font-size:1.15rem;font-style:italic;color:var(--text-muted)}.header-edit{display:flex;justify-content:center;margin:-6px 0 18px}.page-status{text-align:center;padding:120px 20px;color:var(--text-muted)}.card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.card h2{margin:0 0 14px;font-family:Lumos,Philosopher,serif;font-weight:400;font-size:2rem;color:var(--heading);text-align:center}.card-tools{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;margin:-8px -8px 6px 0}.card-tools .btn-icon{padding:5px}.card-title-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.card-title-row h2{margin:0}.card-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.placeholder{color:var(--text-muted);font-style:italic;text-align:center}.caption{text-align:center;color:var(--text-muted);margin-bottom:0}.card:before,.card:after{content:"";position:absolute;width:18px;height:18px;border:1px solid var(--border-strong);pointer-events:none}.card:before{top:7px;left:7px;border-right:none;border-bottom:none;border-top-left-radius:8px}.card:after{bottom:7px;right:7px;border-left:none;border-top:none;border-bottom-right-radius:8px}.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text h3,.rich-text h4{color:var(--heading);margin:1.2em 0 .4em}.rich-text li p{margin:.2em 0}.rich-text blockquote{margin:1em 0;padding:.2em 1em;border-left:3px solid var(--border-strong);color:var(--text-muted);font-style:italic}.home-layout,.widget-stack{display:grid;gap:22px;align-content:start}.band-split{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:22px;align-items:start}@media (max-width: 900px){.band-split{grid-template-columns:minmax(0,1fr)}}.add-widget{display:flex;align-items:center;justify-content:center;gap:8px;padding:22px;border:2px dashed var(--border-strong);border-radius:14px;background:var(--surface-sunken);color:var(--heading);font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer;transition:box-shadow .2s ease,background-color .2s ease}.add-widget:hover{background:var(--surface);box-shadow:0 0 16px var(--glow)}.widget-picker{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}.widget-choice{display:grid;gap:6px;justify-items:start;padding:16px;border:1px solid var(--border-strong);border-radius:10px;background:var(--surface-sunken);color:var(--text);font:inherit;text-align:left;cursor:pointer}.widget-choice .icon{color:var(--heading)}.widget-choice span{font-size:.88rem;color:var(--text-muted)}.widget-choice:hover,.widget-choice:focus-visible{border-color:var(--heading);box-shadow:0 0 12px var(--glow)}.widget-note{margin-bottom:16px}.image-widget{margin:0;text-align:center}.image-widget img{display:block;max-width:100%;max-height:80vh;margin:0 auto;border-radius:10px}.embed-frame{border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#fff}.embed-frame iframe{width:100%;height:100%;border:0}.pdf-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000;display:flex;flex-direction:column;background:var(--page-bg)}.pdf-overlay-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;background:var(--nav-bg);border-bottom:2px solid var(--chrome-border);color:var(--chrome-text);font-weight:700}.pdf-overlay-bar .btn-ghost{color:var(--chrome-text);border-color:var(--chrome-border)}.pdf-overlay iframe{flex:1;width:100%;border:0;background:#fff}.video-frame{aspect-ratio:16 / 9;border-radius:10px;overflow:hidden;background:#000;border:1px solid var(--border)}.video-frame iframe,.video-frame video{display:block;width:100%;height:100%;border:0}.pdf-frame{height:min(78vh,900px);border-radius:10px;overflow:hidden;border:1px solid var(--border);background:#fff}.pdf-frame iframe{width:100%;height:100%;border:0}.pdf-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:16px}@media (max-width: 600px){.pdf-frame{height:60vh}}.post-previews{list-style:none;margin:0;padding:0}.post-previews li{padding:12px 0;border-bottom:1px solid var(--border)}.post-previews li:first-child{padding-top:0}.post-preview-title{font-weight:700;font-size:1.1rem;text-decoration:none}.post-preview-title:hover{text-decoration:underline}.post-date{display:block;font-size:.85rem;color:var(--text-muted)}.post-excerpt{margin:4px 0 0}.class-code{font-size:1.05rem}.page-narrow{max-width:860px;margin:0 auto;display:grid;gap:20px}.page-tools{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.post-card h2{font-family:Philosopher,serif;font-weight:700;font-size:1.6rem;text-align:left;margin-bottom:2px}.post-card h2 a{color:var(--heading);text-decoration:none}.post-card h2 a:hover{text-shadow:0 0 10px var(--glow)}.read-more{font-weight:700}.post-full .page-tools{margin-bottom:12px}.post-back{margin:28px 0 0}.faq-list{display:grid;gap:12px}.faq-item{padding:0}.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px;font-weight:700;font-size:1.12rem;cursor:pointer;list-style:none}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary .icon{transition:transform .2s ease;color:var(--heading)}.faq-item[open] summary .icon{transform:rotate(180deg)}.faq-item[open] summary{color:var(--heading)}.faq-item .rich-text{padding:0 24px 20px}.login-wrap{max-width:440px}.login-note{margin:0;color:var(--text-muted);text-align:center}.admin-posts,.admin-pages{list-style:none;margin:0;padding:0}.admin-posts li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px 0;border-top:1px solid var(--border)}.admin-post-title{font-weight:700;font-size:1.1rem;margin-right:8px}.admin-post-actions{display:flex;align-items:center;gap:8px}.admin-pages li{display:grid;padding:10px 0;border-top:1px solid var(--border)}.admin-pages a{font-weight:700}.admin-pages span{color:var(--text-muted);font-size:.92rem}.badge{display:inline-block;padding:1px 10px;border-radius:999px;font-size:.78rem;font-weight:700;vertical-align:2px}.badge-live{background:color-mix(in srgb,var(--success) 22%,transparent);color:var(--success)}.badge-draft{background:var(--surface-sunken);color:var(--text-muted);border:1px solid var(--border)}.title-input{font-size:1.3rem!important;font-weight:700}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.form-actions .btn-danger{margin-left:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border-radius:8px;border:1px solid transparent;font:inherit;font-size:.95rem;font-weight:700;line-height:1.2;text-decoration:none;cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease,border-color .2s ease}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-text);border-color:color-mix(in srgb,var(--heading) 45%,transparent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 0 14px var(--glow)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn-ghost:hover:not(:disabled){background:var(--surface-sunken);box-shadow:0 0 10px var(--glow)}.btn-edit{padding:5px 11px;font-size:.85rem;background:var(--surface-sunken);color:var(--heading);border-color:var(--border-strong);white-space:nowrap}.btn-edit:hover{box-shadow:0 0 10px var(--glow)}.btn-danger{background:transparent;color:var(--danger);border-color:currentColor}.btn-icon{display:inline-flex;padding:7px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer}.btn-icon:disabled{opacity:.35;cursor:not-allowed}.btn-icon.danger{color:var(--danger)}.stack{display:grid;gap:16px}.field{display:grid;gap:6px;margin-bottom:14px}.stack .field{margin-bottom:0}.field-label{font-weight:700;font-size:.92rem}.field-hint{font-size:.85rem;color:var(--text-muted)}input[type=text],input[type=email],input[type=password],input[type=url],input[type=number],select,textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border-strong);background:var(--surface-sunken);color:var(--text);font:inherit}textarea{resize:vertical}.field-check{grid-template-columns:auto 1fr;align-items:start;gap:10px}.field-check input{width:18px;height:18px;margin-top:2px;accent-color:var(--accent)}.field-check .field-hint{display:block}.field-group{margin:18px 0 0;padding:14px 14px 0;border:1px solid var(--border);border-radius:10px}.field-group legend{padding:0 6px;font-weight:700;color:var(--heading)}.file-row{display:flex;align-items:center;gap:8px}.file-chip{flex:1;padding:10px 12px;border-radius:8px;border:1px dashed var(--border-strong);color:var(--text-muted)}.button-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:8px}.admin-settings-link{justify-self:start;color:var(--link);font-weight:700;text-decoration:none}.form-error{color:var(--danger);margin:0}.form-success{color:var(--success);margin:0}.edit-dialog{width:min(780px,calc(100vw - 24px));max-height:calc(100vh - 32px);padding:0;border:1px solid var(--border-strong);border-radius:14px;background:var(--surface-raised);color:var(--text);box-shadow:0 20px 60px #00000080}.edit-dialog::backdrop{background:#04050ca6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.edit-dialog form{display:flex;flex-direction:column;max-height:calc(100vh - 34px)}.dialog-head,.dialog-foot{display:flex;align-items:center;gap:10px;padding:14px 20px}.dialog-head{justify-content:space-between;border-bottom:1px solid var(--border)}.dialog-head h2{margin:0;font-size:1.3rem;color:var(--heading)}.dialog-body{padding:18px 20px;overflow-y:auto}.dialog-foot{justify-content:flex-end;flex-wrap:wrap;border-top:1px solid var(--border)}.dialog-foot .form-error{margin-right:auto}.faq-editor{display:grid;gap:14px}.faq-edit-item{position:relative;margin:0;padding:14px;border:1px solid var(--border);border-radius:10px}.faq-edit-item legend{padding:0 6px;font-weight:700;color:var(--heading)}.faq-edit-tools{display:flex;justify-content:flex-end;gap:6px;margin:-6px 0 6px}.rte{display:grid;gap:6px;margin-bottom:14px}.rte-toolbar{display:flex;flex-wrap:wrap;gap:4px;padding:6px;border:1px solid var(--border-strong);border-bottom:none;border-radius:8px 8px 0 0;background:var(--surface-sunken)}.tool{min-width:34px;height:32px;padding:0 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font:inherit;font-size:.95rem;cursor:pointer}.tool:hover:not(:disabled){border-color:var(--border)}.tool.is-active{background:var(--accent);color:var(--accent-text)}.tool:disabled{opacity:.35;cursor:not-allowed}.tool-sep{width:1px;margin:4px 2px;background:var(--border)}.rte-content .ProseMirror{min-height:var(--rte-min, 180px);padding:12px 14px;border:1px solid var(--border-strong);border-radius:0 0 8px 8px;background:var(--surface-sunken);outline:none}.rte-content .ProseMirror:focus{border-color:var(--heading)}.site-footer{margin-top:30px;padding:24px 20px;text-align:center;background:var(--nav-bg);border-top:2px solid var(--chrome-border)}.footer-links{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px}.footer-links a,.admin-link{color:var(--chrome-text);text-decoration:none}.footer-links a:hover,.admin-link:hover{text-decoration:underline}.site-footer p{margin:0;color:var(--chrome-text-muted);font-size:.92rem}.footer-sep{margin:0 8px}.site-footer .admin-link{color:var(--chrome-text-muted)}:root[data-theme=light] .card{border-top:4px solid var(--gryffindor-scarlet)}:root[data-theme=light] .card:before,:root[data-theme=light] .card:after{border-color:var(--gryffindor-gold)}:root[data-theme=light] .page-header h1{text-shadow:0 1px 0 rgba(255,255,255,.6),0 0 22px rgba(211,166,37,.55)}:root[data-theme=light] .page-subtitle{color:var(--gryffindor-scarlet)}:root[data-theme=light] .btn-primary{border-color:var(--gryffindor-gold)}:root[data-theme=light] .btn-edit{background:var(--gryffindor-gold);border-color:#b08616;color:var(--gryffindor-scarlet-deep)}:root[data-theme=light] .badge-live{background:#2e6b351f}@media (max-width: 600px){main{padding-left:16px;padding-right:16px}.card{padding:18px 16px}.card h2{font-size:1.7rem}.admin-bar{font-size:.8rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important}}.forgot-link{justify-self:center;color:var(--text-muted);font-size:.9rem}.card-subheading{margin:18px 0 10px;color:var(--heading)}
