:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:dark;--bg:#171827;--accent:#c7abdb;--glow:#75628d;--ink:#f4eef7;--muted:#c1b7cb}html[data-theme=jiho]{--bg:#171d35;--accent:#c3a5dc;--glow:#6862a3}html[data-theme=olympus]{--bg:#2a1c20;--accent:#e0b87e;--glow:#925c57}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 75% 10%,color-mix(in srgb,var(--glow) 22%,transparent),transparent 55%),var(--bg);color:var(--ink);min-height:100vh;transition:background-color .9s,color .9s}a{color:inherit}a:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px clamp(20px,5vw,84px);border-bottom:1px solid #ffffff24;flex-wrap:wrap}.brand{text-decoration:none;letter-spacing:.14em;font-weight:750}.brand span{font-weight:300}.header nav{display:flex;gap:clamp(10px,2vw,28px);align-items:center;flex-wrap:wrap;font-size:.88rem}.header nav a{text-decoration:none}.header nav a:hover{color:var(--accent)}.muted,small{color:var(--muted)}main{max-width:1200px;margin:auto;padding:clamp(28px,6vw,88px) clamp(20px,5vw,72px);min-height:70vh}.eyebrow{color:var(--accent);letter-spacing:.25em;text-transform:uppercase;font-size:.76rem;font-weight:650}.hero{max-width:850px;padding:50px 0 80px}h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(3rem,8vw,6.5rem);line-height:1.06;letter-spacing:-.045em;margin:18px 0}h2{font-family:Georgia,serif;font-size:clamp(1.7rem,4vw,2.7rem);font-weight:400}p{line-height:1.75;color:var(--muted);max-width:65ch}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px}.card{border:1px solid #ffffff2e;border-radius:18px;padding:30px;min-height:240px;background:#ffffff09;text-decoration:none;display:flex;flex-direction:column;justify-content:space-between;transition:transform .2s,border-color .2s}.card:hover{transform:translateY(-4px);border-color:var(--accent)}.card h2{margin:12px 0}.card p{font-size:.95rem}.button{display:inline-block;padding:13px 20px;border:1px solid var(--accent);border-radius:30px;text-decoration:none;margin-top:20px}.button:hover{background:#ffffff15}.back{font-size:.9rem;color:var(--accent)}footer{border-top:1px solid #ffffff24;padding:30px clamp(20px,5vw,84px);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.8rem;letter-spacing:.08em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.nocturne-emblem{width:clamp(150px,21vw,215px);height:clamp(150px,21vw,215px);margin:0 0 26px;filter:drop-shadow(0 0 20px #c4a57d35)}.nocturne-emblem svg{width:100%;height:100%;overflow:visible}.emblem-ring{fill:none;stroke:#d9c6a0;stroke-width:.85;stroke-opacity:.65;stroke-dasharray:380 200;transform-origin:110px 110px;animation:nocturne-orbit 45s linear infinite}.emblem-ring-inner{stroke:#a99ac3;stroke-opacity:.35;stroke-dasharray:135 320;animation-duration:60s;animation-direction:reverse}.emblem-moon{fill:#e5cf9d;stroke:#f5e8c7;stroke-width:.7}.emblem-star{fill:#f4e4ba;filter:drop-shadow(0 0 4px #e5cf9d)}.emblem-star-small{opacity:.7}@keyframes nocturne-orbit{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.emblem-ring{animation:none}}.home-library{margin:0 0 70px}.home-library h2{margin:12px 0 24px}.library-shelf{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;padding:22px;border:1px solid #ffffff2e;border-radius:20px;background:#ffffff05}.library-story,.library-future{min-height:280px;border:1px solid #ffffff26;border-radius:14px;padding:26px;display:flex;flex-direction:column;justify-content:space-between}.library-story{background:#ffffff0b;text-decoration:none;transition:border-color .2s,transform .2s}.library-story:hover{border-color:var(--accent);transform:translateY(-3px)}.library-story-mark{align-self:flex-start;border:1px solid var(--accent);border-radius:50%;width:116px;height:116px;display:grid;place-content:center;text-align:center;line-height:1.15;letter-spacing:.12em;font-size:.8rem;font-weight:700;color:var(--ink)}.library-story h3{font-family:Georgia,serif;font-size:1.65rem;font-weight:400;margin:8px 0}.library-link{color:var(--accent);font-size:.9rem}.library-future{align-items:center;justify-content:center;text-align:center;border-style:dashed;background:#ffffff04}.library-future-symbol{font-size:2rem;color:var(--accent);opacity:.7}.library-future p{font-family:Georgia,serif;font-size:1.3rem;color:var(--ink);max-width:24ch;margin:14px auto}.library-future .eyebrow{font-size:.65rem}.home-about{border-top:1px solid #ffffff24;padding:54px 0 30px;margin-bottom:50px;max-width:820px}.home-about h2{line-height:1.2;margin:14px 0 22px}.about-link{display:inline-block;color:var(--accent);text-decoration:none;margin-top:12px;border-bottom:1px solid currentColor;padding-bottom:4px}.about-link:hover{color:var(--ink)}.about-story{max-width:790px}.about-story h1{font-size:clamp(2.7rem,6vw,5rem)}.about-story p{margin:0 0 22px}.about-story .about-motto{font-family:Georgia,serif;font-size:clamp(1.2rem,2.5vw,1.7rem);color:var(--accent);margin:4px 0 36px}.about-process{max-width:820px;margin-top:75px;padding-top:45px;border-top:1px solid #ffffff29}.about-process h2{margin:12px 0 20px}.about-process>p{max-width:75ch}.process-timeline{margin:32px 0 36px;border-top:1px solid #ffffff30}.process-stage{border-bottom:1px solid #ffffff30}.process-stage summary{display:flex;align-items:center;gap:20px;padding:20px 12px;cursor:pointer;font-size:1.06rem;list-style:none}.process-stage summary::-webkit-details-marker{display:none}.process-stage summary:hover{color:var(--accent)}.process-stage summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.process-number{color:var(--accent);font-size:.8rem;letter-spacing:.14em;min-width:26px}.process-chevron{margin-left:auto;color:var(--accent);font-size:1.4rem;transition:transform .2s}.process-stage[open] .process-chevron{transform:rotate(180deg)}.process-content{padding:0 24px 20px 58px}.process-content p{margin:0 0 16px}.process-closing{margin-top:28px;color:var(--ink)}@media(max-width:500px){.process-stage summary{gap:12px}.process-content{padding-left:45px}}
