:root{--ink:#142b40;--muted:#5d7082;--navy:#153c52;--teal:#087d82;--teal2:#0e9a98;--cream:#fffdf8;--line:#dfe8e9;--light:#eff9f8;--shadow:0 12px 34px rgba(20,55,65,.065)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8faf8;color:var(--ink);font:16px/1.65 'DM Sans',system-ui,sans-serif}a{color:#06767c}a:hover{color:#05555d}header{background:rgba(255,255,255,.98);border-bottom:1px solid var(--line);position:relative;z-index:3}.nav{max-width:1180px;margin:auto;padding:15px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font:800 23px/1.2 'Outfit',system-ui,sans-serif;letter-spacing:-.7px;color:var(--navy);text-decoration:none;display:inline-flex;align-items:center;gap:9px}.brand .brand-icon{width:37px;height:37px;background:var(--teal);color:#fff;border-radius:11px;display:inline-grid;place-items:center;font-size:24px}.navlinks{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.navlinks a{color:#435d67;font-size:14px;font-weight:700;text-decoration:none;padding:9px 13px;border-radius:10px}.navlinks a:hover,.navlinks a[aria-current=page]{background:#e7f6f3;color:#006e70}.navlinks a[href$='maker.html']{background:var(--teal);color:#fff}.navlinks a[href$='maker.html']:hover{background:#06656b;color:#fff}main{max-width:1180px;margin:34px auto 0;padding:0 24px}h1,h2,h3{font-family:'Outfit',system-ui,sans-serif;line-height:1.18;letter-spacing:-.025em;color:#163b50}h1{font-size:clamp(32px,4.5vw,58px);margin:14px 0 16px}h2{font-size:clamp(23px,2.5vw,30px)}h3{font-size:20px}.muted{color:var(--muted)}.hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#e1f5f1 0%,#f5faf1 56%,#fff5e5 100%);border:1px solid #d9eae4;border-radius:26px;padding:clamp(28px,5vw,62px);margin-bottom:40px}.hero:after{content:'✦';position:absolute;right:6%;top:5%;font-size:200px;line-height:1;color:#0e9a9814;pointer-events:none}.hero>*{position:relative;z-index:1}.hero h1{max-width:720px}.hero p{max-width:630px;font-size:18px}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#087c7e}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:26px 0}.btn,.hero-actions a{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid transparent;border-radius:12px;padding:12px 20px;font-weight:800;text-decoration:none;background:var(--teal);color:#fff;transition:transform .18s,background .18s}.btn:hover,.hero-actions a:hover{background:#05656b;color:#fff;transform:translateY(-1px)}.btn.secondary,.hero-actions a.secondary{background:#fff;color:#136a6d;border-color:#c7e1dc}.hero-stats{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:24px;color:#41656a;font-size:13px;font-weight:700}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:35px 0 18px}.section-heading h2{margin:0}.section-heading p{margin:4px 0 0;color:var(--muted)}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.card,.panel{background:#fff;border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow)}.card{display:block;text-decoration:none;color:inherit;overflow:hidden;transition:transform .2s,border-color .2s,box-shadow .2s}.card:hover{transform:translateY(-4px);border-color:#8dcfc6;box-shadow:0 18px 36px rgba(18,86,83,.13);color:inherit}.card-art{height:118px;display:flex;align-items:center;justify-content:center;background:var(--card-bg,#e9f5f2);font-size:56px}.card-body{padding:19px 20px 20px}.card strong{display:block;color:#163c51;font:700 20px/1.3 'Outfit',sans-serif;margin:8px 0}.card p{margin:0 0 14px;color:#657985;font-size:14px;line-height:1.55}.card .card-link{font-size:13px;font-weight:800;color:#087b7f}.pill{display:inline-block;background:#dff4ef;color:#0a7573;border-radius:100px;padding:5px 11px;font-size:11px;font-weight:800;letter-spacing:.03em}.layout{display:grid;grid-template-columns:340px minmax(0,1fr);align-items:start;gap:22px;margin:26px 0}.panel{padding:25px}.panel h2{margin-top:0}.controls{background:#fff}.field{display:block;font-size:13px;font-weight:800;margin:17px 0 6px;color:#3d5765}input,textarea,select{width:100%;padding:11px 13px;border:1px solid #c9d8db;border-radius:10px;background:#fbfdfc;font:inherit;color:var(--ink)}textarea{min-height:170px;resize:vertical}input:focus,textarea:focus,select:focus{outline:3px solid #c7eee6;border-color:#0d9292}button{background:var(--teal);color:#fff;border:0;border-radius:10px;padding:11px 15px;font:800 13px 'DM Sans',sans-serif;cursor:pointer;margin:8px 5px 0 0;transition:background .18s}button:hover{background:#066268}button.alt{background:#e6f5f1;color:#096d70}button.alt:hover{background:#d1ede7}.controls #generate{width:100%;font-size:15px;padding:14px}.grid{display:grid;width:min(100%,520px);margin:20px auto;gap:2px;user-select:none;touch-action:none}.letter{aspect-ratio:1;min-width:0;border:1px solid #d8e5e6;border-radius:3px;display:grid;place-items:center;background:#fff;font-size:clamp(9px,1.2vw,16px);font-weight:800;line-height:1;color:#26495a}.letter.found{background:#b9ebd9;border-color:#71c9aa}.letter.selected{background:#ffe3a3;border-color:#d8aa45}.wordlist{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.wordlist span{padding:6px 10px;border-radius:7px;background:#edf5f6;color:#244d5a;font-size:13px;font-weight:700}.wordlist span.solved{text-decoration:line-through;background:#c8ebd1}.status{font-size:13px;color:#486e75;min-height:24px}.article{max-width:880px;margin:24px auto 0}.article p{color:#536d7b}.article h2:not(:first-child){margin-top:28px}.breadcrumbs{font-size:13px;color:#708390;margin-bottom:18px}.breadcrumbs a{text-decoration:none;font-weight:700}.small{font-size:13px;color:#627885}.print-title{text-align:center}.print-instructions{text-align:center}.puzzle-intro{background:#e9f6f2;border:1px solid #d5e9e4;border-radius:17px;padding:20px 24px;margin-bottom:23px}.puzzle-intro h1{font-size:clamp(29px,3.5vw,43px);margin:5px 0 9px}.puzzle-intro p{margin:0}.puzzle-panel{min-width:0}.puzzle-panel h3{text-align:center}.benefits{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:30px 0}.benefit{background:#fff;border:1px solid var(--line);padding:18px;border-radius:15px}.benefit strong{display:block;margin-bottom:3px;color:#154657}.benefit span{font-size:13px;color:#627b83}footer{margin:70px auto 0;padding:35px max(24px,calc((100vw - 1132px)/2));background:#163e4e;color:#c6d9df;font-size:13px}.footerlinks{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:10px}footer a{color:#e2f8f3;text-decoration:none;font-weight:700}footer p{max-width:800px}.skip-link{position:absolute;left:12px;top:-100px;background:#fff;color:#164b60;padding:12px;z-index:999;border:2px solid #164b60}.skip-link:focus{top:8px}button:focus-visible,a:focus-visible,.letter:focus-visible{outline:3px solid #edaa33;outline-offset:3px}@media(max-width:950px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.layout{grid-template-columns:290px minmax(0,1fr)}.nav{flex-wrap:wrap}}@media(max-width:730px){.nav{padding:12px 17px}.brand{font-size:21px}.navlinks{width:100%;overflow-x:auto;flex-wrap:nowrap}.navlinks a{white-space:nowrap;padding:8px 11px}main{padding:0 16px;margin-top:20px}.hero{padding:28px 23px;border-radius:20px}.hero:after{font-size:130px;right:-8%}.hero p{font-size:16px}.cards{gap:12px}.layout{grid-template-columns:1fr}.panel{padding:19px}.benefits{grid-template-columns:1fr}.grid{width:min(100%,490px)}.letter{font-size:clamp(8px,2.3vw,16px)}}@media(max-width:450px){.cards{grid-template-columns:1fr}.card-art{height:90px;font-size:46px}.card-body{padding:16px}.grid{width:100%;gap:1px}.letter{font-size:clamp(8px,2.6vw,13px)}.hero-actions a{width:100%}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@page{size:letter;margin:12mm}@media print{header,footer,.controls,.no-print,.hero,.breadcrumbs,.benefits,.article,.section-heading,.skip-link{display:none!important}body{background:#fff;color:#000}main{max-width:none;margin:0;padding:0}.layout{display:block;margin:0}.panel{border:0;box-shadow:none;padding:0}.puzzle-intro{display:none}.grid{width:165mm;gap:0;break-inside:avoid}.letter{font-size:13pt;border:1px solid #666;border-radius:0;break-inside:avoid}.wordlist span{background:#fff;border:1px solid #ddd}.letter.found{background:#b9e5c7!important;print-color-adjust:exact}h1{font-size:22pt}.print-title{text-align:center}.print-instructions{display:block!important}}

/* V10: tasteful, accessible, lightweight motion */
:root{--motion-ease:cubic-bezier(.22,1,.36,1)}
@keyframes riseIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
@keyframes softFloat{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-13px) rotate(2deg)}}
@keyframes subtleGlow{0%,100%{box-shadow:0 0 0 0 rgba(8,125,130,0)}50%{box-shadow:0 0 0 8px rgba(8,125,130,.08)}}
@media(prefers-reduced-motion:no-preference){
.hero .eyebrow,.hero h1,.hero p,.hero-actions,.hero-stats{animation:riseIn .7s var(--motion-ease) both}
.hero h1{animation-delay:.07s}.hero p{animation-delay:.14s}.hero-actions{animation-delay:.21s}.hero-stats{animation-delay:.28s}
.hero:after{animation:softFloat 8s ease-in-out infinite}
.hero-actions a:first-child{animation:subtleGlow 4.5s ease-in-out 1.3s 2}
.card{transition:transform .3s var(--motion-ease),box-shadow .3s,border-color .3s}
.card-art{transition:filter .3s,transform .4s var(--motion-ease)}
.card:hover .card-art{filter:saturate(1.15)}
.card:hover .card-art::first-letter{transform:scale(1.05)}
.letter{transition:background-color .12s,border-color .12s,transform .12s}
.letter.selected{transform:scale(.96)}
}
.hero{isolation:isolate}.hero:before{content:'';position:absolute;width:340px;height:340px;right:-110px;bottom:-210px;background:radial-gradient(circle,rgba(22,155,142,.14),transparent 68%);border-radius:50%;pointer-events:none}
.library-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 22px}
.library-search{max-width:450px;flex:1 1 250px;background:#fff;border:1px solid #cddedc;border-radius:14px;padding:13px 16px;font-size:15px;box-shadow:0 5px 18px rgba(18,76,74,.04)}
.library-count{font-size:13px;color:#506d73;font-weight:700}
.no-results{display:none;padding:26px;text-align:center;background:#fff;border:1px dashed #a8cbc5;border-radius:16px;color:#4e6970}
.card[hidden]{display:none!important}
.card:focus-visible{outline:3px solid #f0b348;outline-offset:4px}
@media(prefers-reduced-motion:reduce){.hero:after{animation:none}.hero *{animation:none!important}.card,.letter{transition:none!important}}
@media print{.library-tools,.no-results{display:none!important}.hero:before{display:none!important}}

/* V11: search-intent navigation and thoughtful discovery */
.quick-find{background:#fff;border:1px solid #e0ebe8;border-radius:24px;padding:30px 32px;margin:0 0 35px;box-shadow:0 12px 30px rgba(16,64,67,.04)}
.quick-find-heading h2{margin:5px 0 8px}.quick-find-heading p{margin:0 0 20px;color:var(--muted)}
.quick-tags{display:flex;flex-wrap:wrap;gap:10px}.quick-tags a{display:inline-flex;align-items:center;gap:7px;border-radius:999px;padding:10px 16px;background:#edf8f5;border:1px solid #d0eae2;color:#155d60;font-weight:800;font-size:14px;text-decoration:none;transition:transform .22s,background .22s,box-shadow .22s}
.quick-tags a:hover{background:#d9f3eb;transform:translateY(-2px);box-shadow:0 6px 15px rgba(20,91,85,.09)}
.related-puzzles{margin:35px 0 15px;padding:28px;background:linear-gradient(120deg,#eef8f6,#fff8ed);border:1px solid #dcebe7;border-radius:22px}
.related-puzzles h2{margin:7px 0 18px}.related-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.related-links a{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#fff;border:1px solid #dbe9e6;border-radius:12px;padding:13px 15px;text-decoration:none;color:#135d61;font-weight:700;transition:transform .2s,box-shadow .2s}
.related-links a:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(20,91,85,.08)}
@media(max-width:730px){.quick-find{padding:22px 18px}.related-links{grid-template-columns:1fr}.related-puzzles{padding:22px 17px}}
@media(prefers-reduced-motion:reduce){.quick-tags a,.related-links a{transition:none!important}}
@media print{.quick-find,.related-puzzles{display:none!important}}

/* V12: audience-first landing pages and lightweight polished navigation */
.audience-paths{margin:0 0 36px;padding:26px 30px;border-radius:24px;background:linear-gradient(120deg,#eaf7f3,#f8f3e9);border:1px solid #d5e8e1;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.audience-paths h2{margin:6px 0}.audience-path-links{display:flex;flex-wrap:wrap;gap:10px}.audience-path-links a,.audience-action{display:inline-flex;gap:8px;align-items:center;background:#fff;border:1px solid #cce3db;color:#155b5b;border-radius:13px;padding:13px 17px;font-weight:750;text-decoration:none;transition:transform .22s,box-shadow .22s}
.audience-path-links a:hover,.audience-action:hover{transform:translateY(-3px);box-shadow:0 12px 22px rgba(12,71,65,.10)}
.audience-hero{padding:52px 38px;border-radius:26px;background:linear-gradient(135deg,#e6f5f0,#fff7e8);border:1px solid #d9eae5;margin-bottom:36px}.audience-hero h1{max-width:760px;margin:12px 0}.audience-hero p{max-width:720px;line-height:1.75}.audience-action{margin-top:12px}.audience-section{margin:0 0 36px}.audience-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:22px}.audience-card{min-height:130px;background:#fff;border:1px solid #dae9e4;border-radius:17px;padding:21px;display:flex;flex-direction:column;gap:12px;text-decoration:none;color:#174d51;transition:transform .22s,box-shadow .22s}.audience-card strong{font-size:17px;display:flex;justify-content:space-between;gap:8px}.audience-card>span{color:#587078;line-height:1.55}.audience-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(16,75,72,.08)}.audience-card:focus-visible,.audience-path-links a:focus-visible{outline:3px solid #e9ac41;outline-offset:3px}
@media(max-width:850px){.audience-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.audience-grid{grid-template-columns:1fr}.audience-hero{padding:32px 21px}.audience-paths{padding:23px 18px}}
@media(prefers-reduced-motion:reduce){.audience-card,.audience-action,.audience-path-links a{transition:none}}
@media print{.audience-paths,.audience-hero,.audience-section{display:none!important}}

/* V13: accessible, restrained contact form */
.contact-form{display:grid;gap:12px;max-width:640px;margin:26px 0}.contact-form label{font-weight:700}.contact-form input,.contact-form textarea{width:100%;padding:14px 16px;border:1px solid #b8c8c8;border-radius:12px;background:#fff;color:#162b31;font:inherit}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:3px solid #54a89c;outline-offset:2px}.contact-form button{justify-self:start;border:0;border-radius:12px;background:#146a63;color:#fff;font:inherit;font-weight:700;padding:14px 22px;cursor:pointer}.contact-form button:hover{background:#0c4e49}.hidden-field{position:absolute;left:-9999px}
/* V15: clear, accessible progress feedback without visual distraction */
.solve-progress-wrap{margin:14px auto 16px;max-width:520px;display:flex;align-items:center;gap:14px;font-size:13px;color:#40636b;font-weight:750}
.solve-progress-wrap progress{flex:1;appearance:none;-webkit-appearance:none;height:10px;border:0;border-radius:30px;overflow:hidden;background:#e3eeeb}
.solve-progress-wrap progress::-webkit-progress-bar{background:#e3eeeb;border-radius:30px}
.solve-progress-wrap progress::-webkit-progress-value{background:#0e8b7d;border-radius:30px;transition:width .3s ease}
.solve-progress-wrap progress::-moz-progress-bar{background:#0e8b7d;border-radius:30px}
.puzzle-tips{border:1px solid #cfe5dd;background:#f0f9f5;border-radius:13px;padding:13px 17px;margin:15px 0;font-size:14px;color:#385d58}
.puzzle-tips strong{color:#17594f}
@media print{.solve-progress-wrap,.puzzle-tips{display:none!important}}
@media(prefers-reduced-motion:reduce){.solve-progress-wrap progress::-webkit-progress-value{transition:none}}

/* Ensure normal browser Print (Ctrl+P) produces a clean, unsolved worksheet. */
@media print{body:not(.printing-answer-key) .letter.found{background:#fff!important;border-color:#666!important}body:not(.printing-answer-key) .wordlist span.solved{text-decoration:none!important;background:#fff!important}}

/* V20: prioritize playing the puzzle on small screens. */
@media screen and (max-width:730px){
 .layout{display:flex;flex-direction:column;gap:16px}
 .layout>.puzzle-panel{order:1;width:100%}
 .layout>.controls{order:2;width:100%}
 .puzzle-intro{padding:16px 18px;margin-bottom:12px}
 .puzzle-intro h1{font-size:29px}
 .controls textarea{min-height:110px}
}
