:root{--bark:#1a1a1a;--bark-soft:#3d3937;--leaf:#2e3f5e;--leaf-light:#3d5272;--leaf-pale:#e0d8c6;--sun:#a16207;--sun-light:#b5740e;--sun-pale:#f0ead9;--paper:#f0ead9;--cream:#e4dbca;--muted:#4a4744;--muted-soft:#7a7672;--border:#cfc5b4;--border-light:#ddd4c4;--sky:#2e3f5e;--red:#8b3a2f;--red-bg:#fdf2f0;--shadow:#322c2414;--shadow-md:#322c241f;--ff:"Figtree", sans-serif;--ff-display:"Young Serif", serif;--ff-ui:"IBM Plex Sans", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--ff);color:var(--bark);letter-spacing:.005em;background:var(--paper);font-kerning:normal;font-variant-ligatures:common-ligatures;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;line-height:1.6;position:relative}body:after{content:"";pointer-events:none;z-index:9999;opacity:.06;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 600'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:182px;position:fixed;inset:0}button{font-family:var(--ff)}input{font-family:var(--ff-display)}input[type=range]{appearance:none;background:var(--border-light);border-radius:10px;outline:none;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--leaf);cursor:pointer;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 6px #2e3f5e4d}button:focus-visible,input:focus-visible{outline:2px solid var(--leaf);outline-offset:2px}h1,h2,h3,h4{text-wrap:balance}p{text-wrap:pretty}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.fu{animation:.6s cubic-bezier(.16,1,.3,1) both fadeUp}.fu.d1{animation-delay:0s}.fu.d2{animation-delay:80ms}.fu.d3{animation-delay:.16s}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes gentlePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.hh-container{max-width:760px;margin:0 auto}@media (min-width:768px){.hh-container{max-width:780px}}@media (min-width:1024px){.hh-container{max-width:1100px}}@media (min-width:1280px){.hh-container{max-width:1200px}}@media (min-width:1440px){.hh-container{max-width:1360px}}.hh-feature-grid{grid-template-columns:1fr;display:grid}@media (min-width:768px){.hh-feature-grid{grid-template-columns:1fr 1fr}}@media (min-width:1024px){.hh-feature-grid{grid-template-columns:1fr 1fr 1fr}}.hh-resource-grid{grid-template-columns:1fr}@media (min-width:768px){.hh-resource-grid{grid-template-columns:1fr 1fr}}.hh-pricing-grid{grid-template-columns:1fr;display:grid}@media (min-width:768px){.hh-pricing-grid{grid-template-columns:1fr 1fr}}@media (min-width:1024px){.hh-pricing-grid{grid-template-columns:1fr 1fr 1fr}}.hh-grade-grid{grid-template-columns:1fr 1fr 1fr;display:grid}@media (min-width:1024px){.hh-grade-grid{grid-template-columns:repeat(5,1fr)}}.botanical-margin{display:none}@media (min-width:1100px){.botanical-margin{display:block}}.botanical-layer{--botanical-opacity:.22;opacity:0;will-change:opacity, transform;animation:1.05s cubic-bezier(.22,1,.36,1) .18s both botanicalRise;display:none}@media (max-width:639.98px){.botanical-layer{--botanical-opacity:.18;display:block;width:88vw!important;max-width:420px!important}.botanical-layer[data-side=left]{left:-40px!important;right:auto!important}.botanical-layer[data-side=right]{left:auto!important;right:-40px!important}}@media (min-width:640px) and (max-width:959.98px){.botanical-layer{--botanical-opacity:.2;display:block;width:72vw!important;max-width:540px!important}.botanical-layer[data-side=left]{left:-20px!important;right:auto!important}.botanical-layer[data-side=right]{left:auto!important;right:-20px!important}}@media (min-width:960px) and (max-width:1279.98px){.botanical-layer{display:block;width:48vw!important;max-width:520px!important}.botanical-layer[data-side=left]{left:20px!important;right:auto!important}.botanical-layer[data-side=right]{left:auto!important;right:20px!important}}@media (min-width:1280px){.botanical-layer{display:block}}@keyframes botanicalRise{0%{opacity:0;transform:translateY(36px)}to{opacity:var(--botanical-opacity,.22);transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.botanical-layer{opacity:var(--botanical-opacity,.22);animation:none;transform:none}}.page-transition{will-change:opacity, transform;animation:.42s cubic-bezier(.22,1,.36,1) both pageFade}@keyframes pageFade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media print{body{margin:20px}.resource-section{page-break-before:always;break-before:page}.no-print{display:none!important}}.sidebar-drawer{z-index:310;width:280px;height:100dvh;box-shadow:none;background:linear-gradient(#f3ecdb 0%,#ece4d2 100%);flex-direction:column;padding:32px 20px 24px;transition:transform .195s cubic-bezier(.4,0,1,1),box-shadow .195s;display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.sidebar-drawer.open{transition:transform .225s cubic-bezier(0,0,.2,1),box-shadow .225s;transform:translate(0);box-shadow:-8px 0 32px #322c2414,-16px 0 64px #322c240f}.sidebar-drawer-header{flex-shrink:0}.sidebar-drawer-nav{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:auto;min-height:0;overflow-y:auto}.sidebar-drawer-footer{flex-shrink:0}.sidebar-backdrop{z-index:300;pointer-events:none;background:0 0;transition:background .195s ease-out;position:fixed;inset:0}.sidebar-backdrop.open{pointer-events:auto;cursor:pointer;background:#1c161066;transition:background .225s ease-in}.sidebar-section+.sidebar-section{margin-top:24px}.sidebar-section-label{font-family:var(--ff);color:var(--muted-soft);text-transform:uppercase;letter-spacing:.12em;-webkit-user-select:none;user-select:none;margin:0 0 8px 14px;font-size:10px;font-weight:700}.sidebar-item{width:100%;color:var(--bark);font-size:14px;font-weight:500;font-family:var(--ff);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:12px;margin-bottom:2px;padding:11px 14px;text-decoration:none;transition:background-color .15s,color .15s,transform 80ms;display:flex}.sidebar-item:hover{background:#0f24200d}.sidebar-item:active{transform:scale(.985)}.sidebar-item .sidebar-icon{flex-shrink:0;justify-content:center;width:20px;display:flex}.sidebar-item.active{background:var(--leaf-pale);color:var(--leaf);font-weight:600}.sidebar-item.active:hover{background:var(--leaf-pale)}.sidebar-cta{border:1.5px solid var(--leaf);width:100%;height:44px;color:var(--leaf);font-family:var(--ff-ui,var(--ff));font-variant:all-small-caps;letter-spacing:.1em;cursor:pointer;text-align:center;background:0 0;border-radius:4px;justify-content:center;align-items:center;gap:8px;margin-bottom:24px;padding:0 16px;font-size:12px;font-weight:600;text-decoration:none;transition:background-color .15s,transform 80ms;display:flex}.sidebar-cta:hover{background:#0f24200d}.sidebar-cta:active{transform:translateY(1px)}.sidebar-footer{border-top:1px solid #3d251214;margin-top:24px;padding-top:16px}.book-card-link{text-decoration:none;display:block}.notebook-lines{position:relative;overflow:hidden}.notebook-lines:after{content:"";pointer-events:none;z-index:1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 28' preserveAspectRatio='none'><line x1='0' y1='10' x2='100' y2='18' stroke='%23788CC8' stroke-width='1.5' stroke-opacity='0.45' vector-effect='non-scaling-stroke'/></svg>");background-position:0 0;background-repeat:repeat-y;background-size:100% 28px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 0% 45%,#000 70%);mask-image:linear-gradient(90deg,#0000 0% 45%,#000 70%)}.notebook-lines>*{z-index:2;position:relative}.book-card{border:1px solid var(--border-light);background:#fdfcfa;border-radius:12px;flex-direction:column;height:100%;min-height:140px;padding:24px;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),border-color .2s;display:flex;box-shadow:0 1px 2px #3a36320a,0 2px 4px #3a36320a,0 4px 8px #3a363208}.book-card-link:hover .book-card{border-color:#2e3f5e33;transform:translateY(-3px);box-shadow:0 2px 4px #3a36320a,0 8px 16px #3a36320f,0 16px 32px #3a363214,0 24px 48px #2e3f5e0f}.book-card-link:hover .book-card-title{color:var(--leaf)}.book-card-title{font-family:var(--ff-display);color:var(--bark);letter-spacing:-.005em;margin:0;font-size:18px;font-weight:600;line-height:1.35;transition:color .2s}.book-card-author{font-family:var(--ff);color:var(--muted-soft);margin:6px 0 0;font-size:13px}.book-card-meta{align-items:center;gap:8px;margin-top:auto;padding-top:16px;display:flex}.book-card-grades{font-family:var(--ff);color:var(--leaf);background:var(--leaf-pale);letter-spacing:.02em;border-radius:100px;padding:4px 12px;font-size:11px;font-weight:600}.catalog-search{width:100%;max-width:420px;font-family:var(--ff);color:var(--bark);border:2px solid var(--border-light);background:#fff;border-radius:10px;outline:none;margin:0 auto 32px;padding:12px 18px;font-size:15px;transition:border-color .2s,box-shadow .2s;display:block}.catalog-search:focus{border-color:var(--leaf);box-shadow:0 0 0 3px #2e3f5e1a}.catalog-search::placeholder{color:var(--muted-soft)}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.catalog-pager{border-top:1px solid var(--border-light);justify-content:center;align-items:center;gap:16px;margin-top:40px;padding-top:24px;display:flex}.pager-btn{font-family:var(--ff);color:var(--leaf);background:var(--leaf-pale);cursor:pointer;border:none;border-radius:8px;padding:8px 20px;font-size:13px;font-weight:600;transition:background .2s,transform .1s}.pager-btn:hover:not(:disabled){background:var(--leaf);color:#fff;transform:translateY(-1px)}.pager-btn:disabled{color:var(--muted-soft);background:var(--border-light);cursor:not-allowed}.pager-info{font-family:var(--ff);color:var(--muted);font-size:13px;font-weight:500}