:root{--pp-felt:#2a2a2c;--pp-felt-dark:#1c1c1d;--pp-accent:#c0392b;--pp-accent-ink:#ffffff;--pp-paper:#f4f1e8;--pp-card:#fffdf7;--pp-ink:#2a2a2c;--pp-muted:#55524a;--pp-line:#2a2a2c;--pp-sage:#3d7a4d;--pp-clay:#e7e1d0;--pp-max:1120px;--pp-serif:Georgia,"Iowan Old Style","Times New Roman",serif;--pp-sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:76px}
body{margin:0;font:17px/1.65 var(--pp-sans);color:var(--pp-ink);background:var(--pp-paper);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}a{color:var(--pp-accent)}
h1,h2,h3,h4{font-family:var(--pp-serif);line-height:1.2;margin:0 0 .5em}
.pp-wrap{max-width:var(--pp-max);margin:0 auto;padding:0 22px}
.pp-skip{position:absolute;left:-999px;top:8px;background:var(--pp-card);color:#000;padding:8px 14px;border-radius:8px;z-index:100}.pp-skip:focus{left:8px}
.pp-btn{display:inline-block;border:0;border-radius:12px;padding:14px 28px;font:700 16px/1.2 var(--pp-sans);text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}
.pp-btn:hover{transform:translateY(-2px)}.pp-btn[aria-disabled="true"]{opacity:.55;cursor:default;transform:none}
.pp-btn-primary{background:var(--pp-accent);color:var(--pp-accent-ink);box-shadow:0 10px 22px -12px var(--pp-accent)}
.pp-btn-ghost{background:transparent;color:var(--pp-ink);border:2px solid var(--pp-ink)}
.pp-btn-dark{background:var(--pp-felt);color:#fff}
/* header */
.pp-header{position:sticky;top:0;z-index:50;background:rgba(244,241,232,.95);backdrop-filter:blur(8px);border-bottom:1px solid var(--pp-line)}
.pp-header .pp-wrap{display:flex;align-items:center;gap:18px;min-height:66px}
.pp-logo{display:flex;align-items:center;gap:10px;font:700 21px var(--pp-serif);color:var(--pp-ink);text-decoration:none}.pp-logo .die{display:inline-flex}.pp-logo img{max-height:40px;width:auto}
.pp-nav{margin-left:auto;display:flex;align-items:center;gap:18px}.pp-nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}.pp-nav a{text-decoration:none;color:var(--pp-ink);font-weight:600;font-size:15px}.pp-nav a:hover{color:var(--pp-accent)}.pp-nav .pp-btn{padding:10px 18px;color:var(--pp-accent-ink)}
.pp-burger{display:none;margin-left:auto;background:none;border:1px solid var(--pp-line);border-radius:10px;font-size:22px;padding:4px 12px;color:var(--pp-ink)}
@media(max-width:860px){.pp-burger{display:block}.pp-nav{display:none;position:absolute;left:0;right:0;top:66px;background:var(--pp-paper);flex-direction:column;align-items:flex-start;padding:16px 22px;border-bottom:1px solid var(--pp-line)}.pp-nav.open{display:flex}.pp-nav ul{flex-direction:column;gap:10px}}
/* hero */
.pp-hero{padding:64px 0 54px;background:radial-gradient(circle at 85% 10%,rgba(181,85,47,.12),transparent 45%),var(--pp-paper);position:relative;overflow:hidden}
.pp-hero:before,.pp-section.alt:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(107,76,50,.16) 1.2px,transparent 1.6px),radial-gradient(rgba(107,76,50,.1) 1px,transparent 1.4px);background-size:34px 34px,23px 23px;background-position:0 0,11px 17px;pointer-events:none}
.pp-hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;position:relative}
@media(max-width:860px){.pp-hero-grid{grid-template-columns:1fr}}
.pp-eyebrow{font:700 13px var(--pp-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--pp-accent);margin:0 0 12px}
.pp-hero h1{font-size:clamp(34px,5.4vw,56px);margin-bottom:.4em}.lead{font-size:19px;color:#444;max-width:34em}
.pp-hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 12px}.pp-hero-hint{font-size:14px;color:var(--pp-muted);margin:0}
@keyframes pp-drip{0%{transform:translateY(-230px) scaleY(.7);opacity:.2}55%{transform:translateY(8px) scaleY(1.04);opacity:1}100%{transform:none;opacity:1}}
/* sections */
.pp-section>.pp-wrap{position:relative}
.pp-section{padding:76px 0;position:relative}.pp-section.alt{background:#e7e2d2}.pp-section.dark{background:var(--pp-felt);color:#f3e9dd}.pp-section.dark h2,.pp-section.dark h3,.pp-section.dark h4{color:#fff}
.pp-section-head{text-align:center;max-width:46em;margin:0 auto 34px}.pp-section-head h2{font-size:clamp(26px,3.6vw,38px)}.pp-section-head p{color:var(--pp-muted);margin:0}.pp-section.dark .pp-section-head p{color:#d9c8b6}
.pp-mark-row{display:flex;justify-content:center;gap:8px;margin-bottom:10px;opacity:.9}
.pp-fineprint{font-size:13.5px;color:var(--pp-muted);text-align:center;margin:12px 0 0}
.pp-presets{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 20px}
.pp-chip{display:inline-flex;align-items:center;gap:8px;background:var(--pp-card);border:1px solid var(--pp-line);border-radius:999px;padding:7px 14px;font:600 14px var(--pp-sans);color:var(--pp-ink);cursor:pointer}.pp-chip small{color:var(--pp-muted);font-weight:500}.pp-chip:hover,.pp-chip.on{border-color:var(--pp-accent);box-shadow:0 0 0 2px rgba(181,85,47,.18)}
.pp-dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.25);display:inline-block}
.pp-section .pr-calc{max-width:980px;margin:0 auto}
/* features and cards */
.pp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px}
.pp-card{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:20px;padding:26px;box-shadow:0 14px 26px -22px rgba(60,40,30,.6)}.pp-card .ico{font-size:34px;margin-bottom:8px}.pp-card h3{font-size:20px}.pp-card p{margin:0;color:#444;font-size:16px}
.pp-quote{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:20px;padding:26px}.pp-hand{font:italic 19px/1.5 var(--pp-serif);margin:0 0 14px}.pp-quote cite{display:block;font-style:normal;font-weight:700}.pp-quote small{color:var(--pp-muted)}
/* how it works */
.pp-walk{display:grid;grid-template-columns:1fr 1.1fr;gap:34px;align-items:center}@media(max-width:860px){.pp-walk{grid-template-columns:1fr}}
.pp-steps{list-style:none;margin:0;padding:0;counter-reset:s}.pp-steps li{counter-increment:s;display:flex;gap:14px;padding:14px 16px;border-radius:16px;cursor:pointer;border:1px solid transparent;margin-bottom:8px;opacity:.75}.pp-steps li:before{content:counter(s);flex:none;width:34px;height:34px;border-radius:50%;background:var(--pp-accent);color:#fff;display:grid;place-items:center;font-weight:700}.pp-steps li.on{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.25);opacity:1}.pp-steps b{display:block;font-size:18px;color:#fff}.pp-steps span{font-size:15px;color:#d9c8b6}
.pp-stage{background:var(--pp-card);color:var(--pp-ink);border-radius:24px;min-height:300px;display:grid;place-items:center;text-align:center;padding:28px;position:relative;overflow:hidden}
.pp-scene{display:none}.pp-scene.on{display:block}.pp-scene .big{font-size:64px}.pp-stage .pp-scene h4{margin:.3em 0;color:var(--pp-ink)}.pp-stage .pp-scene p{color:#444}.pp-scene p{color:#444;margin:0}.pp-fakebtn{display:inline-block;margin-top:10px;background:#ffc439;color:#222;font-weight:700;border-radius:8px;padding:8px 20px}
.pp-video{width:100%;aspect-ratio:16/9;border:0;border-radius:18px;background:#241b16 center/cover;cursor:pointer;color:#fff;font-size:44px}.pp-video iframe,.pp-video video{width:100%;height:100%;border:0;border-radius:18px}
/* compare */
.pp-scroll{overflow-x:auto}.pp-table{width:100%;max-width:820px;margin:0 auto;border-collapse:collapse;background:var(--pp-card);border-radius:16px;overflow:hidden}.pp-table th,.pp-table td{padding:13px 16px;border-bottom:1px solid var(--pp-line);text-align:left}.pp-table th{background:#ffe45c;font-size:13px;letter-spacing:.06em;text-transform:uppercase}.pp-table .c{text-align:center}.pp-yes{color:#3f7a42;font-weight:800}.pp-no{color:#b9a898}
/* pricing */
.pp-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:22px;align-items:stretch}
.pp-plan{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:22px;padding:30px 26px;position:relative;display:flex;flex-direction:column}.pp-plan.rec{border:2px solid var(--pp-accent);box-shadow:0 22px 40px -26px var(--pp-accent)}
.pp-badge{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--pp-accent);color:#fff;border-radius:999px;padding:4px 16px;font:700 12px var(--pp-sans);letter-spacing:.06em;text-transform:uppercase}
.pp-plan h3{font-size:22px;margin-bottom:.2em}.pp-price{font:700 42px var(--pp-serif);margin:.1em 0 0}.pp-per{color:var(--pp-muted);margin:0 0 14px;font-size:14px}.pp-plan ul{list-style:none;padding:0;margin:0 0 22px;flex:1}.pp-plan li{padding:6px 0 6px 24px;position:relative;font-size:15.5px}.pp-plan li:before{content:"\2713";position:absolute;left:0;color:var(--pp-sage);font-weight:800}
.pp-pay{min-height:48px}.pp-pay .pp-btn{width:100%;text-align:center}.pp-pay-note{text-align:center;color:var(--pp-muted);font-size:14px;margin:18px 0 0}
/* faq and download */
.pp-faq{max-width:780px;margin:0 auto}.pp-faq details{background:var(--pp-card);border:1px solid var(--pp-line);border-radius:14px;margin-bottom:10px;padding:2px 20px}.pp-faq summary{cursor:pointer;font-weight:700;padding:14px 0;font-size:17px}.pp-faq p{margin:0 0 16px;color:#444}
.pp-cta{background:var(--pp-felt);color:#f3e9dd;text-align:center;padding:80px 0}.pp-cta h2{color:#fff;font-size:clamp(28px,4vw,42px)}.pp-cta p{color:#d9c8b6;max-width:36em;margin:0 auto 24px}.pp-prodl summary{color:#d9c8b6}
/* footer */
.pp-footer{background:var(--pp-felt-dark);color:#cdb9a4;padding:54px 0 30px;font-size:15px}.pp-footer h4{color:#fff;font-size:16px;margin-bottom:.7em}.pp-footer a{color:#e8d6c2;text-decoration:none}.pp-footer a:hover{color:#fff;text-decoration:underline}.pp-footer ul{list-style:none;margin:0;padding:0}.pp-footer li{margin-bottom:7px}
.pp-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}@media(max-width:760px){.pp-footer-grid{grid-template-columns:1fr 1fr}}.pp-copy{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:13.5px}
/* ordinary pages */
.pp-page{max-width:820px;margin:0 auto;padding:50px 22px 70px}.pp-page h1{font-size:clamp(30px,4.5vw,44px)}.pp-page .entry>*{max-width:100%}.pp-page img{height:auto;border-radius:14px}
.pp-posts article{border-bottom:1px solid var(--pp-line);padding:18px 0}.pp-404{text-align:center;padding:90px 22px}
.pr-table,.entry table{width:100%;border-collapse:collapse}.pr-table td,.pr-table th,.entry td,.entry th{border-bottom:1px solid var(--pp-line);padding:8px 10px;text-align:left}
.pr-docs .pr-doc{margin-bottom:22px}.pr-faq details{border:1px solid var(--pp-line);border-radius:12px;padding:2px 16px;margin-bottom:8px;background:var(--pp-card)}.pr-faq summary{cursor:pointer;font-weight:700;padding:10px 0}



/* ============ Puzzle Page: newsprint grid, bold headings, colour blocks ============ */
:root{--pp-felt:#1d1d20;--pp-felt-dark:#121214;--pp-accent:#b2341f;--pp-accent-ink:#ffffff;--pp-paper:#ece9e0;--pp-card:#ffffff;--pp-ink:#1d1d20;--pp-muted:#55524a;--pp-line:#1d1d20;--pp-clay:#e0dccf;--pp-yellow:#f7d154;--pp-blue:#5fb0ee;--pp-pink:#ee7b7b;--pp-green:#6cc46c}
body{font-family:Georgia,"Times New Roman",serif;background-color:var(--pp-paper);color:var(--pp-ink);background-image:linear-gradient(rgba(29,29,32,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(29,29,32,.06) 1px,transparent 1px);background-size:30px 30px}
h1,h2,h3,h4{font-family:Georgia,"Times New Roman",serif;font-weight:800;letter-spacing:-.015em}
h1{font-size:clamp(36px,5.6vw,64px);line-height:1.04}
.pp-eyebrow{display:inline-block;font:800 13px/1 system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--pp-felt);padding:6px 10px;margin:0 0 16px}
.pp-header{background:rgba(236,233,224,.97);border-bottom:3px double var(--pp-ink)}
.pp-nav a{color:var(--pp-ink);font-size:14.5px;font-weight:700}.pp-nav a:hover{background:var(--pp-yellow)}
.pp-logo{font-weight:800;color:var(--pp-ink)}
.pp-btn{border-radius:2px;font-family:system-ui,sans-serif;font-weight:800;border:2px solid var(--pp-ink);box-shadow:4px 4px 0 var(--pp-ink)}
.pp-btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--pp-ink)}
.pp-btn-primary{background:var(--pp-accent);color:var(--pp-accent-ink);border-color:var(--pp-ink)}
.pp-btn-ghost{background:#fff;color:var(--pp-ink);border:2px solid var(--pp-ink)}
.pp-hero{padding:56px 0 64px;background:transparent;color:var(--pp-ink)}.pp-hero:before{display:none}
.pp-hero .lead{color:#33312c}.pp-hero-hint{color:var(--pp-muted)}
.pp-section{border-top:3px double var(--pp-ink)}
.pp-section.alt{background:rgba(224,220,207,.9)}.pp-section.alt:before{display:none}
.pp-section.dark{background:var(--pp-felt);color:#f4f1e8}.pp-section.dark h2,.pp-section.dark h3,.pp-section.dark h4{color:#fff}
.pp-section-head h2{display:inline-block;padding:2px 12px;background:var(--pp-yellow);border:2px solid var(--pp-ink);box-shadow:4px 4px 0 var(--pp-ink)}
.pp-section.dark .pp-section-head h2{color:var(--pp-ink)}
.pp-card,.pp-plan,.pp-quote,.pp-faq details,.pp-table{background:var(--pp-card);border:2px solid var(--pp-ink);border-radius:2px;box-shadow:5px 5px 0 rgba(29,29,32,.85)}
.pp-plan.rec{background:#fff6cf;border-color:var(--pp-ink)}
.pp-table th{background:var(--pp-clay)}.pp-table th,.pp-table td{border-bottom:1px solid var(--pp-ink)}.pp-yes{color:#2f7a47}.pp-no{color:#8a8576}
.pp-footer{background:var(--pp-felt-dark);color:#f4f1e8}
.pp-fineprint{margin:14px 0 0;font-size:13px;color:var(--pp-muted);text-align:center}
.pp-mark-row{display:flex;justify-content:center;gap:6px;margin:0 0 12px}.pp-mark-row span{width:30px;height:10px;border:2px solid var(--pp-ink);display:block}
.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pp-hand{font-family:Georgia,serif}
/* the hero word search */
.pp-demo-wrap{text-align:center}
.pp-demo{display:grid;grid-template-columns:auto minmax(110px,150px);gap:16px;align-items:start;max-width:520px;margin:0 auto;text-align:left;background:#fff;border:3px solid var(--pp-ink);box-shadow:8px 8px 0 var(--pp-ink);padding:16px;transform:rotate(1deg)}
.pp-demo-grid{display:grid;grid-template-columns:repeat(10,1fr);border:2px solid var(--pp-ink);width:min(300px,56vw)}
.pp-dc{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font:700 clamp(12px,2.2vw,17px) Consolas,"Courier New",monospace;border:1px solid #d9d5c6;transition:background .5s}
.pp-dc.hit{color:#000;border-color:rgba(0,0,0,.25)}
.pp-demo-words{list-style:none;margin:0;padding:0;font:700 13px system-ui,sans-serif;letter-spacing:.04em}.pp-demo-words li{padding:4px 0;border-bottom:1px dotted #bbb}.pp-demo-words li:before{content:"\25A1  ";color:#777}.pp-demo-words li.done{text-decoration:line-through;color:#777}.pp-demo-words li.done:before{content:"\2713  ";color:#2f7a47}
.pp-demo-note{font-size:12.5px;color:var(--pp-muted);margin:20px 0 0}
@media (max-width:520px){.pp-demo{grid-template-columns:1fr;transform:none}.pp-demo-grid{width:100%}}
@media (prefers-reduced-motion:reduce){.pp-dc{transition:none}}
/* puzzle types and classroom blocks */
.pp-types{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.pp-type{position:relative;padding-top:34px}.pp-type h3{margin-top:4px}
.pp-tag{position:absolute;top:-2px;left:-2px;font:800 11px system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;background:var(--pp-green);border:2px solid var(--pp-ink);color:var(--pp-ink)}.pp-tag.pro{background:var(--pp-yellow)}
.pp-c1{border-top:10px solid var(--pp-yellow)}.pp-c2{border-top:10px solid var(--pp-blue)}.pp-c3{border-top:10px solid var(--pp-pink)}.pp-c4{border-top:10px solid var(--pp-green)}.pp-c5{border-top:10px solid #c9a6f2}.pp-c6{border-top:10px solid #f2a15a}
.pp-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0;border:3px solid var(--pp-ink);box-shadow:8px 8px 0 var(--pp-ink)}
.pp-block{padding:24px;border-right:3px solid var(--pp-ink);color:var(--pp-ink)}.pp-block:last-child{border-right:0}.pp-block h3{font-size:20px;margin:0 0 6px}.pp-block p{margin:0;font-size:16px}
.pp-b1{background:var(--pp-yellow)}.pp-b2{background:#a9d4f5}.pp-b3{background:#f6b4b4}.pp-b4{background:#b6e3b6}
@media (max-width:700px){.pp-block{border-right:0;border-bottom:3px solid var(--pp-ink)}.pp-block:last-child{border-bottom:0}}
.pp-section .ps-tool{max-width:980px;margin:0 auto}
.pp-section.dark .pp-stage h4{color:var(--pp-ink)}
