:root{--background:#0d1b2a;--surface:#1b263b;--surface-raised:#243447;--foreground:#e8eaf0;--foreground-muted:#89a;--primary:#c9a84c;--primary-light:#e2c46e;--primary-glow:#c9a84c40;--primary-glow-strong:#c9a84c80;--accent:#415a77;--success:#4ade80;--success-glow:#4ade804d;--error:#f87171;--error-glow:#f871714d;--glass-bg:#1b263bbf;--glass-border:#ffffff14;--glass-border-hover:#c9a84c80;--font-serif:"Noto Serif JP", serif;--font-sans:"Noto Sans JP", sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--transition:all .25s cubic-bezier(.4, 0, .2, 1);--navbar-height:64px}[data-theme=light]{--background:#f4f1eb;--surface:#fff9f0;--surface-raised:#fff;--foreground:#1b263b;--foreground-muted:#5a6b7a;--primary:#8b6b1a;--primary-light:#a07c25;--primary-glow:#8b6b1a26;--glass-bg:#fff9f0d9;--glass-border:#0000000f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--background);color:var(--foreground);font-family:var(--font-sans);min-height:100vh;line-height:1.7;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;color:inherit;transition:var(--transition);background:0 0;border:none;font-family:inherit}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:700;line-height:1.3}.container{max-width:900px;padding:2rem 1.25rem;padding-top:calc(var(--navbar-height) + 2rem);margin:0 auto}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:0 8px 32px #0000001f}.glass:hover{border-color:var(--glass-border-hover)}.gold-text{color:var(--primary);text-shadow:0 0 20px var(--primary-glow)}.muted{color:var(--foreground-muted)}.btn-primary{background:var(--primary);color:#1a0e00;border-radius:var(--radius-sm);box-shadow:0 4px 15px var(--primary-glow);transition:var(--transition);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:1rem;font-weight:700;display:inline-flex}.btn-primary:hover{background:var(--primary-light);box-shadow:0 8px 25px var(--primary-glow-strong);transform:translateY(-2px)}.btn-ghost{border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--foreground);transition:var(--transition);align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-weight:600;display:inline-flex}.btn-ghost:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-glow)}.grid-books{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:1.25rem;display:grid}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-gold{0%,to{box-shadow:0 0 0 0 var(--primary-glow)}50%{box-shadow:0 0 0 12px #0000}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.animate-fade{animation:.45s forwards fadeInUp}.progress-bar-track{background:#ffffff1a;border-radius:3px;width:100%;height:6px;overflow:hidden}.progress-bar-fill{background:linear-gradient(90deg, var(--accent), var(--primary));height:100%;box-shadow:0 0 8px var(--primary-glow);border-radius:3px;transition:width .5s cubic-bezier(.4,0,.2,1)}.badge{border-radius:99px;align-items:center;padding:.2rem .6rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-gold{background:var(--primary-glow);color:var(--primary);border:1px solid var(--primary)}.badge-success{background:var(--success-glow);color:var(--success)}.badge-muted{background:var(--primary-glow);opacity:.8;color:var(--foreground-muted)}@media (max-width:768px){.container{padding:1.5rem 1rem;padding-top:calc(var(--navbar-height) + 1.5rem)}.grid-books{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}h1,.page-title{font-size:1.75rem}h2{font-size:1.4rem}.btn-primary{padding:.6rem 1.25rem;font-size:.95rem}.glass{border-radius:10px}}@media (max-width:480px){.container{padding:1rem .75rem;padding-top:calc(var(--navbar-height) + 1rem)}.grid-books{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}h1,.page-title{font-size:1.5rem}}.home-container{min-height:100vh;padding-bottom:4rem}.hero{justify-content:center;align-items:center;min-height:60vh;padding:4rem 1.25rem;display:flex;position:relative;overflow:hidden}.hero-bg{z-index:-1;position:absolute;inset:0}.overlay{background:linear-gradient(to bottom, #0d1b2a66, var(--background));position:absolute;inset:0}.hero-content{text-align:center;z-index:1;width:100%;max-width:1000px}.main-title{letter-spacing:-.02em;margin-bottom:1rem;font-size:3.5rem}.subtitle{color:var(--foreground-muted);font-size:1.25rem;font-family:var(--font-serif);margin-bottom:3rem;font-style:italic}.stats-summary{justify-content:space-around;align-items:center;max-width:850px;margin-bottom:2.5rem;margin-left:auto;margin-right:auto;padding:1.5rem 2rem;display:flex}.stat-item{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;display:flex}.stat-value{color:var(--primary);font-size:1.75rem;font-weight:800;font-family:var(--font-serif);line-height:1.2}.stat-label{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.8rem}.stat-divider{background:var(--glass-border);align-self:center;width:1px;height:40px}.today-schedule{text-align:left;max-width:800px;margin:0 auto;padding:2rem}.schedule-header{border-bottom:1px solid var(--glass-border);align-items:center;gap:.75rem;margin-bottom:1.5rem;padding-bottom:1rem;display:flex}.schedule-title{color:var(--primary);font-size:1.25rem}.reading-list{flex-wrap:wrap;gap:1rem;margin-bottom:2rem;display:flex}.reading-item{background:var(--surface-raised);border-radius:var(--radius-sm);border:1px solid var(--glass-border);padding:.5rem 1rem;font-weight:600}.youtube-list{grid-template-columns:1fr;gap:2rem;display:grid}.youtube-wrapper{width:100%}.youtube-container{border-radius:var(--radius-md);width:100%;height:0;padding-bottom:56.25%;position:relative;overflow:hidden;box-shadow:0 10px 30px #0000004d}.youtube-container iframe{width:100%;height:100%;position:absolute;top:0;left:0}@media (max-width:768px){.main-title{font-size:2.5rem}.stats-summary{flex-wrap:wrap;gap:1.5rem}.stat-item{flex:40%}.stat-divider{display:none}.progress-grid{grid-template-columns:1fr!important}}@media (max-width:480px){.main-title{font-size:2rem}.stats-summary{flex-direction:column;gap:1.5rem}}.progress-section{transition:var(--transition)}.progress-box{text-align:left}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-up{animation:.6s forwards fade-up}
