.cn-home{overflow-x:clip}.cn-hero{position:relative;min-height:min(92vh, 820px);display:grid;grid-template-columns:1.05fr 0.95fr;align-items:stretch}.cn-hero__visual{position:relative;min-height:320px;background:linear-gradient(90deg,rgb(232 243 239 / .15) 0%,transparent 28%),var(--cn-hero-image) center / cover no-repeat;animation:cn-hero-in 1.1s var(--cn-ease) both}.cn-hero__copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem, 5vw, 4.5rem) clamp(1.25rem, 4vw, 3.5rem);background:linear-gradient(165deg,rgb(244 250 247 / .92) 0%,rgb(232 243 239 / .88) 100%);animation:cn-copy-in 0.9s 0.12s var(--cn-ease) both}.cn-hero__brand{display:block;margin:0 0 1.15rem;max-width:min(100%, 22rem)}.cn-hero__wordmark{width:min(100%, 22rem);height:auto;display:block;filter:drop-shadow(0 8px 20px rgb(28 53 48 / .08))}.cn-hero__title{margin:0 0 .85rem;font-family:var(--cn-font-display);font-size:clamp(1.55rem, 2.8vw, 2.15rem);font-weight:400;letter-spacing:-.02em;line-height:1.25;color:var(--cn-ink);max-width:16ch}.cn-hero__lead{margin:0 0 1.6rem;max-width:28ch;color:var(--cn-ink-soft);font-size:1.05rem;line-height:1.55}.cn-hero__cta{display:flex;flex-wrap:wrap;gap:.65rem}@keyframes cn-hero-in{from{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes cn-copy-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.cn-section__head{max-width:var(--cn-max);margin:0 auto 1.75rem;padding:0 1.25rem}.cn-section__head h2{margin:0 0 .4rem;font-family:var(--cn-font-display);font-size:clamp(1.55rem, 2.5vw, 2rem);letter-spacing:-.02em}.cn-section__head p{margin:0;color:var(--cn-ink-soft);max-width:36rem}.cn-grades,.cn-shelf,.cn-guide{padding:clamp(3rem, 7vw, 5rem) 0}.cn-grades{background:linear-gradient(180deg,transparent,rgb(255 255 255 / .55) 30%,transparent)}.cn-grade-grid{max-width:var(--cn-max);margin:0 auto;padding:0 1.25rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.85rem}.cn-grade{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1rem 1.1rem;text-decoration:none;color:inherit;border-radius:var(--cn-radius);border:1.5px solid #fff0;background:rgb(255 255 255 / .55);transition:transform 0.3s var(--cn-ease),border-color 0.25s ease,background 0.25s ease}.cn-grade:hover{transform:translateY(-3px);border-color:rgb(47 122 95 / .35);background:var(--cn-white);color:inherit}.cn-grade__head{display:flex;flex-direction:column;gap:.2rem}.cn-grade__label{font-family:var(--cn-font-display);font-size:1.2rem;color:var(--cn-leaf-deep)}.cn-grade__hint{font-size:.85rem;color:var(--cn-ink-soft)}.cn-grade__book{display:flex;flex-direction:column;gap:.55rem;text-decoration:none;color:inherit;flex:1}.cn-grade__book:hover{color:inherit}.cn-grade__cover{aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;background:linear-gradient(145deg,#d7ebe3,#c5dce8);box-shadow:0 8px 22px rgb(28 53 48 / .08);transition:transform 0.35s var(--cn-ease)}.cn-grade__book:hover .cn-grade__cover{transform:translateY(-3px) rotate(-0.5deg)}.cn-grade__cover img,.cn-grade__placeholder{width:100%;height:100%;object-fit:cover;display:block}.cn-grade__placeholder{background:linear-gradient(145deg,#d7ebe3,#c5dce8)}.cn-grade__title{font-size:.98rem;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cn-grade__more,.cn-grade__archive,.cn-grade__empty{font-size:.86rem;color:var(--cn-leaf-deep);text-decoration:none;border-bottom:1px solid #fff0;align-self:flex-start}.cn-grade__archive{color:var(--cn-ink-soft);font-size:.82rem}.cn-grade__more:hover,.cn-grade__archive:hover,.cn-grade__empty:hover{border-bottom-color:currentColor}.cn-shelf__rail{max-width:var(--cn-max);margin:0 auto;padding:0 1.25rem;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem 1rem}.cn-book__link{display:flex;flex-direction:column;gap:.55rem;text-decoration:none;color:inherit;height:100%}.cn-book__link:hover{color:inherit}.cn-book__cover{aspect-ratio:3 / 4;border-radius:10px;overflow:hidden;background:linear-gradient(145deg,#d7ebe3,#c5dce8);box-shadow:0 10px 28px rgb(28 53 48 / .08);transition:transform 0.35s var(--cn-ease)}.cn-book__link:hover .cn-book__cover{transform:translateY(-4px) rotate(-0.6deg)}.cn-book__cover img{width:100%;height:100%;object-fit:cover}.cn-book__placeholder{width:100%;height:100%;background:radial-gradient(circle at 30% 25%,rgb(232 184 74 / .35),transparent 45%),linear-gradient(160deg,#cfe6dc,#b9d4e4)}.cn-book__cat{font-size:.78rem;font-weight:600;letter-spacing:.02em;color:var(--cn-sky)}.cn-book__title{margin:0;font-size:1rem;font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cn-book__excerpt{margin:0;font-size:.88rem;color:var(--cn-ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.cn-about{padding:clamp(2.5rem, 6vw, 4rem) 0}.cn-about__inner{max-width:40rem;margin:0 auto;padding:0 1.25rem;text-align:center}.cn-about__inner h2{margin:0 0 .85rem;font-family:var(--cn-font-display);font-size:clamp(1.5rem, 2.4vw, 1.9rem)}.cn-about__inner p{margin:0 0 .85rem;color:var(--cn-ink-soft);line-height:1.7}.cn-about__inner a{color:var(--cn-leaf);font-weight:600}.cn-guide{padding-bottom:clamp(4rem, 9vw, 6rem)}.cn-guide__inner{max-width:40rem;margin:0 auto;padding:0 1.25rem;text-align:center}.cn-guide__inner h2{margin:0 0 .75rem;font-family:var(--cn-font-display);font-size:clamp(1.5rem, 2.4vw, 1.9rem)}.cn-guide__inner>p{margin:0 auto;color:var(--cn-ink-soft);max-width:34rem}.cn-guide .cn-search{margin-left:auto;margin-right:auto}.cn-reveal{opacity:0;transform:translateY(16px);transition:opacity 0.7s var(--cn-ease),transform 0.7s var(--cn-ease)}.cn-reveal.is-in{opacity:1;transform:none}@media (max-width:960px){.cn-shelf__rail{grid-template-columns:repeat(3,1fr)}}@media (max-width:800px){.cn-hero{grid-template-columns:1fr;min-height:auto}.cn-hero__visual{min-height:42vh;order:-1}.cn-hero__title{max-width:none}.cn-grade-grid{grid-template-columns:repeat(2,1fr)}.cn-shelf__rail{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.cn-grade-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.cn-hero__visual,.cn-hero__copy,.cn-reveal,.cn-book__cover,.cn-grade,.cn-btn{animation:none!important;transition:none!important}}