/* Site fonts: @font-face rules are in each page's <head> (build_site.py) so their URLs carry content hashes. */
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:root{--bg:#fffbf0;--cream:#fff5e3;--surface:#fff;--ink:#1e2733;--muted:#4d5764;--line:#e9dfd1;--purple:#0d70e9;--purple-mid:#8bbdfa;--purple-soft:#e7f2ff;--pink:#ffe5ec;--blue:#e4f2ff;--green:#e5f6e8;--yellow:#fff0c9;--radius:24px;--radius-sm:15px;--shadow:0 14px 40px rgba(49,67,88,.07);--wrap:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-size:16px;line-height:1.6}button,input,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,.brand-type{font-family:Fredoka,system-ui,sans-serif;font-weight:600;line-height:1.12}h1{font-size:clamp(2.4rem,4.6vw,4.2rem);letter-spacing:-.01em}h2{font-size:clamp(1.75rem,2.9vw,2.5rem);letter-spacing:-.005em}h3{font-size:1.34rem}p{color:var(--muted)}:focus-visible{outline:3px solid var(--purple);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.55}.skip-link{position:absolute;top:-100px;left:12px;background:white;padding:10px;z-index:100}.skip-link:focus{top:12px}.container{width:min(var(--wrap),calc(100% - 40px));margin-inline:auto}.narrow{max-width:800px}.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#4572a8;background:var(--purple-soft);padding:8px 14px;border-radius:999px;font-weight:700;font-size:.78rem;letter-spacing:.02em}.eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--purple)}.muted{color:var(--muted)}.small{font-size:.82rem}.tiny{font-size:.76rem}.lead{font-size:1.08rem;line-height:1.7;max-width:650px}.center{text-align:center}.section{padding-block:76px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:27px}.section-head p{margin:7px 0 0}.text-link{font-weight:700;color:#3476c6}.text-link:hover{text-decoration:underline}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:999px;padding:12px 21px;font-weight:700;line-height:1.2;min-height:46px;transition:transform .15s,background .15s,border-color .15s}.button:hover:not(:disabled){transform:translateY(-2px)}.button-primary{background:var(--purple);color:white;box-shadow:0 7px 18px rgba(13,112,233,.2)}.button-primary:hover{background:#0a5bbf}.button-dark{background:var(--ink);color:white}.button-soft{background:var(--purple-soft);color:#3772bb}.button-outline{background:white;border-color:var(--line);color:var(--ink)}.button-sm{min-height:38px;padding:8px 15px;font-size:.82rem}.button-block{width:100%}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,251,240,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(59,73,91,.08)}.header-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand{display:inline-flex;align-items:center;flex:none}.brand img{width:154px;height:auto;display:block}.desktop-nav{display:flex;align-items:center;gap:3px;margin-left:auto}.desktop-nav a,.mobile-nav a{padding:10px 14px;border-radius:999px;color:#454d57;font-weight:700;font-size:.88rem}.desktop-nav a:hover,.desktop-nav a[aria-current=page],.mobile-nav a[aria-current=page]{background:var(--purple-soft);color:#3d74b7}.header-actions{display:flex;gap:10px;align-items:center}.menu-button{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:14px;background:white;font-size:1.35rem}.mobile-nav{display:none;padding:9px 0 18px;border-top:1px solid var(--line)}.mobile-nav a{display:block;border-radius:12px}.site-footer{background:#f8f2e6;border-top:1px solid var(--line);margin-top:75px;padding:47px 0 23px}.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:35px}.footer-grid p{max-width:330px;font-size:.84rem}.footer-grid h3{font-size:1rem;margin-bottom:13px}.footer-links{display:grid;gap:8px;font-size:.85rem;color:#4d5660}.footer-links a:hover{text-decoration:underline}.footer-bottom{border-top:1px solid var(--line);margin-top:36px;padding-top:20px;font-size:.76rem;color:var(--muted)}
.hero{padding:69px 0 75px;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:25px}.hero h1{margin:20px 0}.hero-copy p{font-size:1.06rem;max-width:580px}.hero-visual{position:relative;min-height:450px;display:grid;place-items:center}.hero-glow{position:absolute;inset:8% 2% 2%;background:radial-gradient(circle at 50% 44%,#e6f1ff 0 38%,#fff2e1 39% 60%,transparent 61%);border-radius:50%}.hero-mascot{position:relative;width:min(86%,420px);filter:drop-shadow(0 22px 25px rgba(60,80,104,.13))}.float-paper{position:absolute;background:#fff;border:1px solid #eee3d8;border-radius:18px;box-shadow:var(--shadow);padding:15px;transform:rotate(-8deg);left:2%;top:12%;width:125px}.float-paper.two{left:auto;right:0;top:auto;bottom:11%;transform:rotate(7deg)}.mini-lines{height:5px;background:#e3ecf6;border-radius:9px;margin-bottom:8px}.mini-lines.short{width:62%}.search-wrap{display:flex;align-items:center;gap:9px;background:white;border:1px solid var(--line);border-radius:22px;padding:7px 7px 7px 18px;box-shadow:var(--shadow);max-width:600px}.search-wrap svg{width:21px;flex:none;color:#838d99}.search-wrap input{min-width:0;flex:1;border:0;outline:0;padding:11px 0;background:transparent;color:var(--ink)}.search-wrap input:focus-visible{outline:0}.search-wrap:focus-within{outline:3px solid #add2ff}.hero-suggestions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;align-items:center}.hero-suggestions span{color:var(--muted);font-size:.78rem}.hero-suggestions a{font-size:.77rem;border-radius:999px;background:white;border:1px solid var(--line);padding:6px 11px}.hero-suggestions a:hover{border-color:var(--purple-mid)}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.category-card,.tool-card,.soft-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 4px 18px rgba(45,61,80,.035)}.category-card{display:flex;gap:16px;align-items:center;min-height:132px;padding:22px;transition:transform .15s,box-shadow .15s}.category-card:hover,.tool-card.linked:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.category-icon{width:57px;height:57px;display:grid;place-items:center;flex:none;border-radius:17px;font-size:1.6rem}.lavender{background:var(--purple-soft)}.peach{background:#ffe9d7}.blue{background:var(--blue)}.green{background:var(--green)}.pink{background:var(--pink)}.yellow{background:var(--yellow)}.category-card h3{font-size:1.16rem;margin:0 0 5px}.category-card p{font-size:.78rem;margin:0}.category-card .arrow{margin-left:auto;color:#3174c6;font-weight:700}.tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tool-card{overflow:hidden;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.tool-thumb{height:192px;display:grid;place-items:center;position:relative;padding:19px;overflow:hidden}.tool-info{padding:20px 21px 22px;flex:1;display:flex;flex-direction:column}.tool-info h3{margin:7px 0 7px}.tool-info p{font-size:.82rem;margin:0 0 15px}.tool-info .card-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:9px;color:#4276b6;font-size:.8rem;font-weight:700}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.68rem;font-weight:700;line-height:1.2;background:var(--purple-soft);color:#3e70ae}.badge.soon{background:#f5f0e8;color:#726b76}.badge.demo{background:#e8f5ea;color:#286741}.preview-mini{width:132px;height:158px;background:white;border:1px solid #ddd4c8;border-radius:4px;box-shadow:0 7px 16px rgba(43,52,63,.13);padding:13px;transform:rotate(-5deg);font-size:8px;color:#333c46}.preview-mini.planner{width:171px;height:135px;transform:rotate(4deg)}.preview-mini strong{font-family:Fredoka;display:block;font-size:10px;margin-bottom:7px}.mini-rule{height:1px;background:#d2d9e1;margin:7px 0}.mini-equations{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mini-equations span{border-bottom:1px solid #d2d9e1;padding-bottom:3px}.mini-trace{font-family:Fredoka;font-size:17px;color:#b1cbeb;letter-spacing:4px;border-bottom:1px dashed #a7b3c2;margin:8px 0}.mini-week{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.mini-week span{border:1px solid #dee4eb;height:29px;padding:2px;font-size:6px}.mini-checkbox{display:flex;gap:5px;align-items:center;margin:7px 0}.mini-checkbox::before{content:'';width:7px;height:7px;border:1px solid #b5beca}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{padding:25px;background:white;border:1px solid var(--line);border-radius:var(--radius)}.step-number{display:grid;place-items:center;width:40px;height:40px;border-radius:13px;background:var(--purple-soft);color:#4075b6;font-weight:700;margin-bottom:17px}.step h3{margin-bottom:7px}.step p{margin-bottom:0;font-size:.84rem}.callout{background:#e2efff;border:1px solid #c7e0ff;border-radius:32px;padding:45px;display:flex;align-items:center;justify-content:space-between;gap:30px}.callout h2{max-width:490px;margin-bottom:9px}.callout p{margin-bottom:0;max-width:540px}
.page-hero{padding:57px 0 31px}.page-hero h1{font-size:clamp(2.5rem,4vw,3.8rem);margin:15px 0 13px}.breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#6e7680;font-size:.78rem;font-weight:600}.breadcrumbs a:hover{text-decoration:underline;color:var(--purple)}.breadcrumbs span:last-child{color:var(--ink)}.directory-toolbar{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin:17px 0 26px}.directory-toolbar .search-wrap{max-width:none;box-shadow:none;border-radius:15px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.filter{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 15px;color:#56606c;font-size:.82rem;font-weight:700}.filter:hover{border-color:var(--purple-mid)}.filter.active,.filter[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0}.results-head h2{font-size:1.55rem;margin:0}.empty-state{display:none;text-align:center;background:white;border:1px dashed #c5d4e6;border-radius:var(--radius);padding:55px 20px}.empty-state.show{display:block}.empty-state h3{margin:8px 0}.empty-state p{margin-bottom:16px}.category-intro{display:grid;grid-template-columns:1fr auto;align-items:center;gap:20px}.category-art{width:110px;height:110px;display:grid;place-items:center;border-radius:30px;font-size:3rem}.subcategory-list{display:flex;gap:9px;flex-wrap:wrap;margin:10px 0 35px}.subcategory-list span{background:white;border:1px solid var(--line);border-radius:999px;padding:8px 13px;font-size:.78rem;font-weight:700;color:#5b6470}.guidance{display:grid;grid-template-columns:1fr 1fr;gap:35px;padding:29px;background:#ecf5ff;border:1px solid #dae8fa;border-radius:var(--radius);margin-top:60px}.guidance h2{font-size:1.6rem;margin:0}.guidance p{margin:0;font-size:.88rem}
.generator-heading{padding:38px 0 27px}.generator-heading h1{font-size:clamp(2.25rem,4vw,3.5rem);margin:13px 0 8px}.generator-heading p{max-width:720px;margin:0}.workspace{display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);gap:24px;align-items:start}.config-panel,.preview-panel{background:white;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow);overflow:hidden}.panel-heading{padding:22px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:8px}.panel-heading h2{font-size:1.4rem;margin:0}.panel-body{padding:22px 24px}.field{display:block;margin-bottom:19px}.field:last-child{margin-bottom:0}.field-label,.field>label:first-child{display:block;font-size:.79rem;font-weight:700;margin-bottom:8px;color:#34404f}.field-help{font-size:.78rem;margin:6px 0 0;color:#6e7680}.control{width:100%;min-height:43px;border:1px solid #d1dae6;border-radius:12px;background:#fff;color:var(--ink);padding:9px 12px}.control:focus{border-color:var(--purple)}.range-row{display:flex;justify-content:space-between;gap:10px;align-items:center}.range-value{background:var(--purple-soft);border-radius:9px;padding:4px 9px;color:#3b6dab;font-weight:700;font-size:.78rem}.range{width:100%;accent-color:var(--purple);margin:12px 0 0}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:#f2f6fb;border:1px solid #e3eaf2;border-radius:13px;padding:4px;gap:3px}.segmented button{border:0;background:transparent;color:#626a74;border-radius:9px;padding:8px 5px;font-size:.76rem;font-weight:700}.segmented button[aria-pressed=true]{background:white;color:#3874bd;box-shadow:0 2px 7px rgba(47,61,79,.11)}.toggle-row{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:18px}.toggle-row:last-child{margin-bottom:0}.toggle-row strong{font-size:.78rem;display:block}.toggle-row small{font-size:.76rem;color:#6b7480;display:block}.switch{position:relative;display:inline-flex;flex:none}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0}.switch-ui{width:44px;height:26px;background:#cfd7e1;border-radius:999px;transition:background .15s}.switch-ui::after{content:'';position:absolute;width:18px;height:18px;left:4px;top:4px;background:white;border-radius:50%;box-shadow:0 1px 4px #0002;transition:transform .15s}.switch input:checked+.switch-ui{background:var(--purple)}.switch input:checked+.switch-ui::after{transform:translateX(18px)}.switch input:focus-visible+.switch-ui{outline:3px solid var(--purple);outline-offset:3px}.panel-section-title{border-top:1px solid var(--line);padding:17px 24px 0;font-size:.73rem;text-transform:uppercase;letter-spacing:.08em;color:#7b8490;font-weight:700}.panel-section-title:first-child{border-top:0;padding-top:0}.config-actions{border-top:1px solid var(--line);padding:20px 24px;background:#fffdfa}.config-actions p{font-size:.72rem;margin:9px 0 0;text-align:center}.preview-toolbar{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.preview-toolbar strong{font-size:.83rem}.toolbar-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.zoom-control{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:.73rem;font-weight:700}.zoom-control button{border:0;background:white;width:30px;height:30px;font-size:1rem}.zoom-control button:hover{background:var(--purple-soft)}.zoom-control span{min-width:42px;text-align:center}.preview-tabs{display:flex;gap:3px;padding:13px 18px 0;border-bottom:1px solid var(--line)}.preview-tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:0 12px 11px;color:#69717a;font-size:.79rem;font-weight:700}.preview-tabs button[aria-selected=true]{color:#3970b4;border-bottom-color:var(--purple)}.paper-stage{background:#f1ebdf;padding:30px 22px 36px;display:grid;place-items:start center;overflow:hidden;min-height:600px}.paper-frame{width:min(100%,560px);transform:scale(var(--zoom,1));transform-origin:top center;margin-bottom:calc((var(--zoom,1) - 1)*650px);transition:transform .16s}.paper{background:white;border:1px solid #e0d9d0;box-shadow:0 14px 28px rgba(43,51,60,.17);aspect-ratio:210/297;width:100%;padding:9%;color:#212830;overflow:hidden}.paper.letter{aspect-ratio:216/279}.paper.landscape{aspect-ratio:297/210;padding:6%}.paper-inner{height:100%;display:flex;flex-direction:column}.paper-header{display:flex;justify-content:space-between;align-items:start;gap:15px;border-bottom:2px solid #2a3542;padding-bottom:12px}.paper-header h2{font-family:Fredoka;font-size:clamp(18px,2.5vw,28px);margin:0 0 4px}.paper-header p{font-size:9px;color:#6c747e;margin:0}.paper-name{font-size:9px;white-space:nowrap;border-bottom:1px solid #a0a5ab;padding:8px 0 4px;min-width:100px}.worksheet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px 22px;margin-top:22px}.equation{height:53px;padding:3px 0 0 6px;font-size:clamp(11px,1.3vw,17px);font-weight:600;letter-spacing:.01em}.equation small{display:block;border-bottom:1px solid #aaa;width:40px;height:11px}.paper-footer{margin-top:auto;display:flex;justify-content:space-between;border-top:1px solid #d8dde3;padding-top:8px;color:#8a808e;font-size:8px}.answer-grid .equation{height:36px}.trace-header{border-bottom:2px solid #333b45;padding-bottom:11px}.trace-header h2{font-size:clamp(18px,2.4vw,26px);margin:0}.trace-header p{font-size:9px;margin:3px 0 0}.trace-row{margin-top:18px}.trace-letters{font-family:Fredoka,system-ui;font-size:clamp(26px,5vw,57px);line-height:1.4;letter-spacing:.14em;color:transparent;-webkit-text-stroke:1px #aab7c7;text-shadow:1px 0 #c9d3df;opacity:.82}.trace-lines{height:28px;border-top:1px solid #bfc7d1;border-bottom:1px solid #bfc7d1;position:relative}.trace-lines:after{content:'';position:absolute;top:50%;width:100%;border-top:1px dashed #ccd5df}.planner-title{border-bottom:2px solid #2f3843;padding-bottom:10px;display:flex;justify-content:space-between;align-items:end;gap:12px}.planner-title h2{font-size:clamp(18px,2.5vw,27px);margin:0}.planner-title span{font-size:9px;color:#6b737c}.planner-main{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px;flex:1}.planner-day{border:1px solid #d4dbe3;border-radius:3px;min-height:75px;padding:6px}.planner-day strong{font-size:10px;color:#516987;display:block;border-bottom:1px solid #e3e8ed;padding-bottom:3px}.planner-bottom{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:10px}.planner-box{border:1px solid #d4dbe3;min-height:80px;padding:6px}.planner-box strong{font-size:9px;color:#516987}.planner-rule{border-bottom:1px solid #e7eaed;height:16px}.demo-note{background:#fff9e9;border:1px solid #f3e8bf;border-radius:13px;padding:12px 15px;color:#655937;font-size:.76rem;margin-top:16px}.faq{padding-top:55px}.faq h2{font-size:1.7rem}.faq details{background:white;border:1px solid var(--line);border-radius:15px;margin:10px 0;padding:15px 19px}.faq summary{cursor:pointer;font-weight:700;font-size:.87rem}.faq p{margin:10px 0 0;font-size:.82rem}.status-message{display:none;background:#e9f6ec;border:1px solid #b8dec1;color:#245b34;border-radius:12px;padding:10px 14px;font-size:.8rem;margin-top:12px}.status-message.show{display:block}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr .83fr}.hero-visual{min-height:360px}.category-grid,.tool-grid{grid-template-columns:repeat(2,1fr)}.workspace{grid-template-columns:300px minmax(0,1fr);gap:16px}.paper-stage{padding:20px 14px}.worksheet-grid{gap:7px}.equation{height:44px}.footer-grid{grid-template-columns:1.3fr 1fr 1fr}}
@media(max-width:720px){.container{width:min(100% - 30px,var(--wrap))}.header-inner{height:66px}.brand img{width:132px}.desktop-nav,.header-actions .button{display:none}.menu-button{display:block}.mobile-nav.open{display:block}.hero{padding:43px 0 35px}.hero-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(2.65rem,9vw,4rem)}.hero-visual{min-height:325px;max-width:440px;width:100%;margin:auto}.hero-mascot{width:73%;max-width:330px}.float-paper{width:100px}.section{padding-block:48px}.section-head{align-items:start}.category-grid,.tool-grid,.how-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-card{padding:17px;min-height:110px}.category-icon{width:48px;height:48px}.callout{padding:28px;display:block}.callout .button{margin-top:20px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.workspace{grid-template-columns:1fr}.config-panel{position:static}.paper-stage{min-height:0}.paper-frame{max-width:530px}.equation{font-size:clamp(12px,2.3vw,17px);height:48px}.generator-heading{padding:28px 0 22px}.site-footer{margin-top:50px}}
@media(max-width:480px){.category-grid,.tool-grid,.how-grid{grid-template-columns:1fr}.category-card{min-height:93px}.tool-thumb{height:170px}.section-head{display:block}.section-head .text-link{display:inline-block;margin-top:10px}.hero-visual{min-height:295px}.hero-suggestions{display:none}.search-wrap{border-radius:17px}.search-wrap .button{padding-inline:13px}.page-hero{padding-top:35px}.category-intro{grid-template-columns:1fr}.category-art{display:none}.guidance{grid-template-columns:1fr;gap:12px;padding:23px}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}.preview-toolbar{align-items:start}.paper-stage{padding:18px 10px}.paper{padding:7%}.worksheet-grid{gap:4px 5px;margin-top:15px}.equation{font-size:10px;height:33px;padding-left:2px}.equation small{width:25px;height:6px}.paper-header h2{font-size:17px}.paper-header p,.paper-name{font-size:7px}.trace-letters{font-size:clamp(24px,10vw,40px)}.trace-row{margin-top:12px}.trace-lines{height:23px}.planner-day{min-height:56px}.planner-main{gap:5px}.planner-bottom{gap:5px}.planner-box{min-height:56px}.planner-rule{height:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.equation{white-space:nowrap;font-size:clamp(10px,1.05vw,14px)}
@media(max-width:480px){.equation{font-size:9px}}
.trace-letters{color:transparent;-webkit-text-stroke:0;text-shadow:none;background-image:radial-gradient(#92a3b8 1.2px,transparent 1.5px);background-size:4px 4px;background-clip:text;-webkit-background-clip:text}
.paper.landscape .planner-main{grid-template-columns:repeat(4,1fr)}
.paper.landscape .planner-day{min-height:48px}
.paper.landscape .planner-box{min-height:53px}
@media(max-width:480px){.paper.landscape .planner-day{min-height:31px}.paper.landscape .planner-box{min-height:34px}.paper.landscape .planner-rule{height:7px}}
.paper-stage{overflow:auto}
.paper-frame{transform:none;zoom:var(--zoom,1);margin-bottom:0}

/* Informational pages */
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.footer-bottom a{font-weight:700;color:#4272ad}
.footer-bottom a:hover{text-decoration:underline}
.info-hero{padding:54px 0 34px}
.info-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:32px;min-height:240px}
.info-hero-grid>div{max-width:760px}
.info-hero .eyebrow{margin-top:25px}
.info-hero h1{font-size:clamp(2.5rem,5vw,4rem);margin:18px 0 13px}
.info-hero .lead{margin:0}
.info-hero-grid>img{max-height:220px;width:auto;justify-self:center;filter:drop-shadow(0 14px 18px rgba(57,74,94,.11))}
.info-content{max-width:1040px;margin:0 auto}
.info-feature,.info-note,.prose-panel,.contact-panel{background:white;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.info-feature{padding:38px 42px;margin-bottom:20px}
.info-feature .eyebrow{margin-bottom:19px}
.info-feature h2{max-width:610px;margin-bottom:15px}
.info-feature p{max-width:780px;margin-bottom:14px}
.info-feature p:last-child{margin-bottom:0}
.info-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-bottom:20px}
.info-card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px;min-height:195px}
.info-card-icon{display:grid;place-items:center;width:49px;height:49px;border-radius:15px;font-weight:700;color:#3c689d;margin-bottom:18px}
.info-card h2{font-size:1.45rem;margin:0 0 10px}
.info-card h3{margin:0 0 8px}
.info-card p{font-size:.85rem;margin:0}
.info-card a,.prose-panel a{color:#4277b8;text-decoration:underline;text-underline-offset:2px;font-weight:700}
.info-note{padding:34px 40px;background:#e9f3ff;border-color:#d0e3fb}
.info-note h2{font-size:1.8rem;margin-bottom:9px}
.info-note p{max-width:700px;margin-bottom:20px}
.info-note p:last-child{margin-bottom:0}
.info-actions{display:flex;gap:10px;flex-wrap:wrap}
.contact-panel{display:grid;grid-template-columns:minmax(0,1fr) 230px;align-items:center;gap:20px;padding:38px 42px;margin-bottom:20px}
.contact-panel h2{margin:18px 0 10px}
.contact-panel p{max-width:540px}
.contact-panel img{max-height:240px;width:auto;justify-self:center}
.contact-email{display:inline-flex;align-items:center;gap:18px;color:#3872b9;font-family:Fredoka,system-ui,sans-serif;font-size:clamp(1.35rem,3vw,2rem);font-weight:600;text-decoration:underline;text-underline-offset:4px;margin:5px 0 12px}
.prose-panel{padding:38px 46px;max-width:800px;margin:0 auto}
.prose-panel h2{font-size:1.42rem;margin:30px 0 9px}
.prose-panel h2:first-of-type{margin-top:17px}
.prose-panel p{font-size:.91rem;line-height:1.75;margin-bottom:14px}
.prose-panel .info-date{font-size:.76rem;color:#6d7681;border-bottom:1px solid var(--line);padding-bottom:14px}
@media(max-width:720px){.info-hero{padding:35px 0 26px}.info-hero-grid{grid-template-columns:minmax(0,1fr) 130px;gap:12px;min-height:0}.info-hero-grid>img{max-height:155px}.info-card-grid{grid-template-columns:1fr 1fr}.info-feature,.info-note,.prose-panel{padding:27px}.contact-panel{grid-template-columns:minmax(0,1fr) 140px;padding:27px}.contact-panel img{max-height:155px}}
@media(max-width:520px){.info-hero-grid{grid-template-columns:1fr}.info-hero-grid>img{display:none}.info-card-grid,.contact-panel{grid-template-columns:1fr}.info-card{min-height:0}.contact-panel img{display:none}.prose-panel{padding:25px 22px}.footer-bottom{align-items:start;flex-direction:column}}

/* Generators: live preview and messages */
.paper-stage{display:block;overflow:auto;max-height:min(1100px,calc(100vh - 120px))}
.preview-pages{width:calc(min(560px,100%) * var(--zoom,1));margin-inline:auto;display:grid;gap:22px;transition:opacity .15s}
.preview-pages:empty{min-height:420px}
.preview-pages.is-stale{opacity:.35}
.paper-sheet{background:white;border:1px solid #e0d9d0;box-shadow:0 14px 28px rgba(43,51,60,.17);line-height:0}
.paper-sheet svg{display:block;width:100%;height:auto}
.generator-messages{display:grid;gap:8px;margin-bottom:12px}
.generator-messages:empty{display:none}
.generator-message{margin:0;border-radius:12px;padding:10px 13px;font-size:.78rem;line-height:1.45}
.generator-message.notice{background:#fff9e9;border:1px solid #f3e8bf;color:#655937}
.generator-message.error{background:#fdecec;border:1px solid #f1c3c3;color:#8a2626}
.status-message.error{background:#fdecec;border-color:#f1c3c3;color:#8a2626}
.config-actions .button+.button{margin-top:10px}
.control[aria-invalid=true]{border-color:#d55;box-shadow:0 0 0 3px rgba(221,85,85,.12)}
.is-disabled{opacity:.55}
.is-disabled input{cursor:not-allowed}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.field-pair[hidden],.field[hidden]{display:none}
.badge.ready{background:#e5f6e8;color:#25683a}
.zoom-control button:disabled{opacity:.4;cursor:not-allowed}
@media(max-width:860px){.paper-stage{max-height:none}}
.chip-field{border:0;padding:0;margin:0 0 19px;min-width:0}
.chip-field legend{padding:0;margin-bottom:8px}
.chip-group{display:flex;flex-wrap:wrap;gap:6px}
.chip{position:relative;display:inline-flex}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:36px;padding:6px 11px;border:1px solid #d8e1ec;border-radius:10px;background:#f2f6fb;color:#626a74;font-size:.78rem;font-weight:700}
.chip input:checked+span{background:white;color:#3874bd;border-color:#a7c7ee;box-shadow:0 2px 7px rgba(47,61,79,.11)}
.chip input:focus-visible+span{outline:3px solid var(--purple);outline-offset:2px}
.chip input:disabled+span{opacity:.5}
.chip-actions{display:flex;gap:14px;margin-top:8px}
.text-button{border:0;background:none;padding:0;color:#3b75bd;font-weight:700;font-size:.74rem}
.text-button:hover{text-decoration:underline}
.chip-field[aria-invalid=true] .chip span,.chip-group[aria-invalid=true] .chip span{border-color:#d55}
.reseed-help{font-size:.76rem;color:var(--muted);text-align:center;margin:6px 0 0}
