@import "https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600&family=Jost:wght@300;400;500;600;700&family=Oswald:wght@200..700&display=swap";:root{--bg:#fff;--parch:#f0ece3;--panel:#fffef9;--panel-2:#f7f4ed;--text:#1a1714;--text-2:#5c5650;--text-3:#9e9890;--line:#dbd5c9;--line-2:#ece8e0;--navy:#1d3461;--rust:#b84b1a;--ink:#111008;--danger:#c0392b;--success:#1a6641;--warn:#7c5500;--radius:8px;--brand:#2563eb;--shadow-soft:0 12px 32px -24px #1118278c;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:Jost,sans-serif;font-size:1rem;font-weight:400;line-height:1.55}h1,h2,h3,h4,p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.home-shell{width:min(100%,1280px);margin-inline:auto;padding-inline:16px}.home-header{z-index:20;border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0}.top-row{justify-content:space-between;align-items:center;gap:16px;min-height:64px;display:flex}.brand-lockup{flex-shrink:0;align-items:center;display:inline-flex}.brand-main{width:6rem;height:auto}.brand-mark{width:2rem;height:auto}.brand-text{letter-spacing:.01em;color:#111827;font-family:Oswald,sans-serif;font-size:2rem;font-weight:300;line-height:1}.search-wrap{flex:1;max-width:42rem;margin-inline:1rem}.search-input{color:#1f2937;border:1px solid #d1d5db;border-radius:.375rem;width:100%;padding:.52rem .74rem;font-size:.875rem;line-height:1.4;box-shadow:0 1px 2px #0000000a}.search-input:focus-visible{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #93c5fd47}.desktop-nav{align-items:center;gap:2rem;display:none}.nav-link{appearance:none;color:#6b7280;cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem;font-weight:500}.nav-link:hover{color:#111827}.nav-link-cta{background:#111827;border-radius:.375rem;padding:.4rem .9rem;font-size:.8125rem;color:#fff!important}.nav-link-cta:hover{background:#1f2937;color:#fff!important}.menu-button{color:#4b5563;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;padding:.5rem .75rem;font-weight:600}.mobile-nav{gap:.625rem;padding-bottom:.75rem;display:none}.mobile-nav.open{display:grid}.mobile-nav-link{appearance:none;text-align:left;color:#4b5563;background:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:.625rem .75rem;font-weight:600}.categories-rail{white-space:nowrap;color:#4b5563;gap:1.5rem;padding-block:.75rem;font-size:.875rem;display:flex;overflow-x:auto}.category-pill{appearance:none;color:#4b5563;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0}.category-pill:hover,.category-pill.active{color:#111827}.category-pill.active{font-weight:600}.main-content{background:#fff;gap:3rem;padding-top:2rem;padding-bottom:2rem;display:grid}.shelf-head{justify-content:space-between;align-items:flex-end;margin-bottom:1rem;display:flex}.shelf-head h2{color:#111827;font-size:1.5rem;font-weight:700}.see-more-link{appearance:none;color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem}.see-more-link:hover{text-decoration:underline}.shelf-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.book-card{cursor:pointer;transition:transform .2s}.book-card:hover{transform:translateY(-4px)}.placeholder-cover{aspect-ratio:2/3;color:#9ca3af;text-align:center;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:.375rem;justify-content:center;align-items:center;width:100%;margin-bottom:.5rem;padding:1rem;font-weight:500;display:flex;box-shadow:0 1px 2px #11182712}.book-card:hover .placeholder-cover{box-shadow:0 4px 10px #1118271f}.cover-img{object-fit:cover;border-radius:.375rem;width:100%;height:100%}.cover-placeholder-text{text-align:center;font-size:.75rem}.book-card{text-decoration:none;display:block}.card-title{color:#111827;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.5rem;font-size:.875rem;font-weight:500;line-height:1.25;display:-webkit-box;overflow:hidden}.card-author{color:#6b7280;margin-top:.25rem;font-size:.75rem}.card-meta{color:#9ca3af;margin-top:.25rem;font-size:.75rem}.section-divider{border:0;border-top:1px solid var(--line);margin:0}.home-banner{text-align:center;padding-block:2rem}.home-banner h2{color:#111827;margin-bottom:.5rem;font-size:1.875rem;font-weight:700}.home-banner p{color:#6b7280;margin-bottom:1.25rem}.banner-cta{color:#fff;background:#111827;border-radius:.375rem;padding:.625rem 1.5rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-block}.banner-cta:hover{background:#1f2937}.home-footer{border-top:1px solid var(--line);background:#f9fafb;margin-top:3rem;padding-block:2rem}.footer-content{text-align:center;color:#6b7280;gap:.5rem;font-size:.875rem;display:grid}.footer-sub{font-size:.75rem}.footer-links{justify-content:center;gap:.75rem;display:flex}.footer-link{color:#4b5563;cursor:pointer;background:0 0;border:0;font-size:.8rem}.footer-link:hover{text-decoration:underline}.modal-overlay{z-index:50;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-backdrop{background:#0f172a8f;border:0;padding:0;position:fixed;inset:0}.modal-card{z-index:2;background:#fff;border:1px solid #dbe0e8;border-radius:.875rem;width:100%;position:relative;box-shadow:0 24px 80px -40px #0f172ab8}.modal-card-sm{max-width:420px}.modal-card-md{max-width:680px}.modal-card-lg{max-width:940px}.modal-head{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1rem .875rem;display:flex}.modal-head h2{font-size:1rem;font-weight:700}.modal-close{color:#475569;background:#fff;border:1px solid #d1d5db;border-radius:.5rem;padding:.45rem .65rem;font-size:.82rem}.modal-body{padding:1rem}.info-modal-content{color:#374151;gap:.75rem;font-size:.925rem;display:grid}.inline-action{width:fit-content;margin-top:.4rem}@keyframes page-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.page-skeleton{background:var(--parch);flex-direction:column;gap:1rem;max-width:640px;min-height:100dvh;margin-inline:auto;padding:4rem 1.25rem;display:flex}.skeleton-bar{background:linear-gradient(90deg,#e8e3d8 25%,#f0ece3 50%,#e8e3d8 75%) 0 0/800px 100%;border-radius:4px;animation:1.4s ease-in-out infinite shimmer}.skeleton-bar-title{width:55%;height:2rem}.skeleton-bar-md{width:80%;height:1rem}.skeleton-bar-sm{width:40%;height:1rem}.page-wrap{background:var(--parch);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;min-height:100dvh;padding:2.75rem 1.25rem 5rem;animation:.38s cubic-bezier(.22,1,.36,1) both page-in}.panel{background:var(--panel);border:1.5px solid var(--line);border-radius:12px;max-width:900px;margin-inline:auto;padding:clamp(1.5rem,3.5vw,2.5rem);box-shadow:inset 0 1px #ffffffe6,0 2px 8px #1a17140f,0 8px 32px -8px #1a171414}.dashboard-wrap .panel{max-width:1100px}.page-wrap h1,.panel h1{letter-spacing:-.01em;color:var(--text);margin-top:.4rem;font-family:Cormorant,serif;font-size:clamp(2rem,4vw,2.8rem);font-weight:600;line-height:1.1}.page-wrap h2,.panel h2{color:var(--text);font-family:Cormorant,serif;font-size:clamp(1.15rem,2vw,1.45rem);font-weight:600}.page-wrap h3,.panel h3{color:var(--text);font-family:Cormorant,serif;font-size:1.1rem;font-weight:600}.eyebrow{text-transform:uppercase;letter-spacing:.13em;color:var(--rust);align-items:center;gap:.4rem;font-family:Jost,sans-serif;font-size:.69rem;font-weight:700;display:inline-flex}.eyebrow:before{content:"";background:var(--rust);flex-shrink:0;width:18px;height:1.5px;display:inline-block}.muted{color:var(--text-2);font-size:.93rem;line-height:1.5}.progress-track{background:var(--line-2);border-radius:999px;height:3px;margin-top:1rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--rust) 0%, #e0793a 100%);border-radius:999px;height:100%;transition:width .4s cubic-bezier(.22,1,.36,1);display:block}.form-grid{gap:1rem;margin-top:1.5rem;display:grid}.form-two-col{gap:1rem;display:grid}.field-group{gap:.4rem;display:grid}.field-group>span,.field-group>legend{letter-spacing:.02em;color:var(--text);font-size:.82rem;font-weight:600}.field-group input,.field-group select,.field-group textarea,.dob-grid select{color:var(--text);border:1.5px solid var(--line);border-radius:var(--radius);appearance:none;background:#fff;width:100%;padding:.65rem .85rem;font-family:Jost,sans-serif;font-size:.95rem;font-weight:400;transition:border-color .15s,box-shadow .15s}.field-group input:focus-visible,.field-group select:focus-visible,.field-group textarea:focus-visible,.dob-grid select:focus-visible{border-color:var(--navy);box-shadow:0 0 0 3px #1d34611f, inset 3px 0 0 var(--navy);outline:none}.field-group textarea{resize:vertical;min-height:6rem}.field-group small{color:var(--text-3);font-size:.78rem;line-height:1.4}.dob-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.tier-banner{border-radius:var(--radius);color:var(--navy);background:#f0f5ff;border:1.5px solid #c8daf7;padding:.65rem .85rem;font-size:.875rem;font-weight:500}.guardian-field{max-height:0;transition:max-height .24s cubic-bezier(.4,0,.2,1);overflow:hidden}.guardian-field.visible{max-height:200px}.error-text{color:var(--danger);align-items:center;gap:.35rem;font-size:.82rem;font-weight:600;display:flex}.error-text:before{content:"!";background:var(--danger);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:.65rem;font-weight:800;display:inline-flex}.button-row{flex-wrap:wrap;gap:.625rem;margin-top:1rem;display:flex}.solid-button,.ghost-button{letter-spacing:.03em;border-radius:var(--radius);white-space:nowrap;cursor:pointer;border:1.5px solid #0000;justify-content:center;align-items:center;gap:.4rem;padding:.65rem 1.25rem;font-family:Jost,sans-serif;font-size:.875rem;font-weight:600;text-decoration:none;transition:transform .1s,box-shadow .1s,background .15s;display:inline-flex}.solid-button{background:var(--ink);border-color:var(--ink);color:#fff;box-shadow:2px 3px #1110082e}.solid-button:hover:not(:disabled){transform:translate(-1px,-1px);box-shadow:3px 4px #11100838}.solid-button:active:not(:disabled){transform:translate(1px,1px);box-shadow:1px 1px #11100826}.ghost-button{border-color:var(--line);color:var(--text-2);background:#fff;box-shadow:1px 2px #11100814}.ghost-button:hover:not(:disabled){background:var(--panel-2);color:var(--text);border-color:#c4bdb2;transform:translate(-1px,-1px);box-shadow:2px 3px #1110081f}.disabled-like,.solid-button:disabled,.ghost-button:disabled{pointer-events:none;opacity:.44}.small-button{letter-spacing:.02em;border:1.5px solid var(--line);color:var(--text-2);cursor:pointer;background:#fff;border-radius:5px;align-items:center;padding:.3rem .65rem;font-family:Jost,sans-serif;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.small-button:hover{background:var(--panel-2);border-color:#c4bdb2}.small-button.primary{background:var(--ink);border-color:var(--ink);color:#fff}.small-button.primary:hover{background:#2a2720}.actions-row{flex-wrap:wrap;gap:.35rem;display:flex}.chip{letter-spacing:.05em;text-transform:uppercase;border:1.5px solid;border-radius:4px;align-items:center;gap:.3rem;padding:.18rem .55rem;font-family:Jost,sans-serif;font-size:.7rem;font-weight:700;display:inline-flex}.chip.status-open,.chip.status-pending_moderator,.chip.status-pending_contributor{color:var(--navy);background:#1d346112;border-color:#1d346140}.chip.status-resolved,.chip.status-approved,.chip.status-active{color:var(--success);background:#1a664112;border-color:#1a664140}.chip.status-rejected,.chip.status-suspended,.chip.status-deletion_requested{color:var(--danger);background:#c0392b12;border-color:#c0392b40}.chip.status-pending_parental,.chip.status-pending_review,.chip.status-draft{color:var(--warn);background:#7c550012;border-color:#7c550040}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.875rem;margin-top:1.5rem;display:grid}.stat-card{background:var(--panel-2);border:1.5px solid var(--line);border-radius:10px;padding:1.1rem 1rem;position:relative;overflow:hidden}.stat-card:before{content:"";inset-block:0;background:linear-gradient(180deg, var(--rust), #e0793a);border-radius:3px 0 0 3px;width:3px;position:absolute;left:0}.stat-card h2{text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);margin-bottom:.5rem;font-family:Jost,sans-serif;font-size:.72rem;font-weight:700}.stat-card p{color:var(--text);font-family:Cormorant,serif;font-size:1.9rem;font-weight:600;line-height:1}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.875rem;margin-top:1.25rem;display:grid}.kpi-card{background:var(--panel-2);border:1.5px solid var(--line);border-radius:10px;padding:1rem}.kpi-card:first-child{grid-column:1/-1}.kpi-card strong{color:var(--text);margin-top:.25rem;font-family:Cormorant,serif;font-size:2.2rem;font-weight:600;line-height:1;display:block}.table-wrap{border:1.5px solid var(--line);border-radius:10px;margin-top:1.25rem;overflow:auto hidden}.table{border-collapse:collapse;width:100%;min-width:640px;font-size:.855rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--line-2);vertical-align:top;padding:.7rem .875rem}.table th{background:var(--panel-2);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;border-bottom-color:var(--line);font-family:Jost,sans-serif;font-size:.72rem;font-weight:700}.table tbody tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#f0ece380}.empty-state{color:var(--text-3);text-align:center;border:1.5px dashed var(--line);border-radius:10px;margin-top:1rem;padding:2rem 1rem;font-family:Cormorant,serif;font-size:1.05rem;font-style:italic}.case-thread{border:1.5px solid var(--line);background:var(--panel-2);border-radius:10px;gap:.625rem;max-height:52vh;padding:.875rem;display:grid;overflow-y:auto}.case-message{border:1.5px solid var(--line);background:#fff;border-radius:8px;gap:.375rem;padding:.8rem;display:grid}.case-message:has(.case-message-role:not(:empty)){border-left:3px solid var(--navy)}.case-message-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.case-message-role{text-transform:uppercase;letter-spacing:.07em;color:var(--navy);font-size:.72rem;font-weight:700}.auth-wrap{padding-top:5rem}.auth-wrap .panel{max-width:460px;position:relative}.auth-wrap .panel:before{content:"ORP";letter-spacing:.28em;color:var(--rust);white-space:nowrap;font-family:Oswald,sans-serif;font-size:.95rem;font-weight:300;position:absolute;top:-2.4rem;left:50%;transform:translate(-50%)}.auth-wrap h1{text-align:center;font-size:clamp(2rem,4vw,2.5rem)!important}.auth-wrap>.panel>.muted{text-align:center;margin-top:.3rem}.auth-wrap .form-grid{margin-top:1.75rem}.legal-wrap{gap:1rem;display:grid}.legal-wrap p{color:var(--text-2);line-height:1.65}.consent-page{background:var(--parch);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;min-height:100dvh;padding:2rem 1rem 4rem;animation:.38s cubic-bezier(.22,1,.36,1) both page-in}.consent-shell{background:var(--panel);border:1.5px solid var(--line);border-radius:12px;gap:1.25rem;width:min(100%,760px);margin-inline:auto;padding:clamp(1.5rem,4vw,2.75rem);display:grid;box-shadow:0 2px 8px #1a17140f,0 8px 32px -8px #1a171414}.consent-shell h1{font-family:Cormorant,serif;font-weight:600;line-height:1.15;font-size:clamp(1.7rem,3vw,2.4rem)!important}.consent-identity{color:var(--navy);font-family:Cormorant,serif;font-size:1.2rem;font-style:italic}.handoff-card{color:var(--navy);background:#f0f5ff;border:1.5px solid #c8daf7;border-radius:8px;gap:.3rem;padding:1rem 1.1rem;display:grid}.handoff-card strong{font-size:.95rem;font-weight:700}.consent-lead{color:var(--text-2);font-size:1rem;line-height:1.6}.consent-form{gap:.875rem;display:grid}.checkbox-row{color:var(--text);align-items:flex-start;gap:.75rem;font-size:.95rem;line-height:1.5;display:flex}.checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--navy);cursor:pointer;flex-shrink:0;margin-top:.15rem}.meta-row{flex-wrap:wrap;gap:.5rem;margin-top:.625rem;display:flex}.badge{letter-spacing:.05em;text-transform:uppercase;border-radius:4px;align-items:center;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge-type{color:var(--navy);background:#1d346114;border:1.5px solid #1d346133}.badge-license{color:var(--rust);background:#b84b1a14;border:1.5px solid #b84b1a33}.meta-author{color:var(--text-2);margin-top:.5rem;font-size:.95rem}.body-text{color:var(--text-2);margin-top:1rem;font-size:1rem;line-height:1.7}.tag-list{flex-wrap:wrap;gap:.4rem;margin-top:1rem;display:flex}.tag{background:var(--panel-2);border:1.5px solid var(--line);color:var(--text-2);border-radius:4px;padding:.15rem .55rem;font-size:.75rem;font-weight:500}.pub-stats{color:var(--text-3);border-top:1px solid var(--line-2);flex-wrap:wrap;gap:1.25rem;margin-top:1.25rem;padding-top:1.25rem;font-size:.82rem;font-weight:500;display:flex}@media (width>=768px){.desktop-nav{display:inline-flex}.menu-button,.mobile-nav{display:none}.shelf-grid,.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-card:first-child{grid-column:auto}.form-two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-wrap{padding-top:6rem}.auth-wrap .panel{max-width:460px}}@media (width>=992px){.shelf-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=1180px){.shelf-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width<=767px){.top-row{flex-wrap:wrap;gap:.75rem;padding-block:.625rem}.search-wrap{width:100%;max-width:unset;order:3;margin-inline:0}.stats-grid{grid-template-columns:1fr}.brand-text{font-size:1.6rem}}
