@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=Nunito:wght@600;700;800;900&display=swap');

:root{--cream:#f8f3eb;--beige:#e8ddd0;--taupe:#b8a89a;--espresso:#3d332b;--charcoal:#4e4741;--olive:#7e8666;--moss:#66724b;--terracotta:#c9795f;--rose:#d98e8b;--red:#a1262c;--ink-blue:#315b72;--ink-blue-deep:#254a5e;--mist-blue:#e2eef4;--paper:#fffdf9;--line:rgba(61,51,43,.16);--shadow:0 18px 48px rgba(61,51,43,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--charcoal);font:16px/1.58 'DM Sans',sans-serif}a{color:inherit}.sidebar{position:fixed;z-index:10;inset:0 auto 0 0;display:flex;width:268px;min-height:100vh;flex-direction:column;padding:28px 20px;border-right:1px solid var(--line);background:rgba(255,253,249,.92);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:12px;margin:0 5px 38px;text-decoration:none}.brand img{width:62px;height:62px;object-fit:contain}.brand-copy strong{display:block;color:var(--espresso);font:600 20px/1 'Playfair Display',serif}.brand-copy span{display:block;margin-top:5px;color:var(--terracotta);font:600 9px 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase}.side-label{margin:0 10px 9px;color:var(--terracotta);font:600 10px 'DM Mono',monospace;letter-spacing:.11em;text-transform:uppercase}.side-nav{display:grid;gap:5px}.side-nav a{display:flex;align-items:center;gap:10px;padding:11px 10px;border-radius:10px;color:var(--charcoal);font-size:14px;font-weight:600;text-decoration:none}.side-nav a:hover{background:var(--beige);color:var(--espresso)}.side-nav a.active{background:var(--espresso);color:#fff}.side-icon{width:21px;text-align:center}.sidebar-footer{margin-top:auto;padding:18px 10px 4px;border-top:1px solid var(--line);font-size:13px}.sidebar-footer a{display:inline-block;margin-top:5px;color:var(--moss);font-weight:700;text-decoration:none}.page{min-height:100vh;margin-left:268px}.page-inner{width:min(1120px,calc(100% - 72px));margin:auto;padding:68px 0 44px}.eyebrow{color:var(--terracotta);font:600 11px/1.2 'DM Mono',monospace;letter-spacing:.11em;text-transform:uppercase}.display{margin:14px 0 15px;color:var(--espresso);font:600 clamp(46px,6vw,77px)/.97 'Playfair Display',serif;letter-spacing:-.06em}.display em{color:var(--olive)}.intro{max-width:760px;margin:0;font-size:19px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 17px;border:1px solid transparent;border-radius:999px;font-size:14px;font-weight:700;text-decoration:none;transition:.2s}.button.primary{background:var(--olive);color:#fff}.button.primary:hover{background:var(--moss);transform:translateY(-1px)}.button.secondary{border-color:var(--taupe);color:var(--espresso)}.button.secondary:hover{border-color:var(--moss);color:var(--moss)}.hero-image{overflow:hidden;margin:31px 0 37px;border:1px solid var(--taupe);border-radius:22px;box-shadow:var(--shadow)}.hero-image img{display:block;width:100%;height:auto}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin:54px 0 0;border:1px solid var(--taupe);border-radius:17px;overflow:hidden;background:rgba(255,253,249,.62)}.stat{padding:18px 19px;border-right:1px solid var(--taupe)}.stat:last-child{border:0}.stat strong{display:block;color:var(--espresso);font:600 25px/1.1 'Playfair Display',serif}.stat span{font-size:13px}.section{padding:80px 0}.section.alt{margin:0 -36px;padding-right:36px;padding-left:36px;background:var(--beige)}.section-heading{max-width:740px}.section-heading h2{margin:11px 0;color:var(--espresso);font:600 clamp(34px,4.3vw,55px)/1.03 'Playfair Display',serif;letter-spacing:-.045em}.section-heading p{margin:0;font-size:17px}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px;margin-top:34px}.card{position:relative;display:flex;min-height:270px;flex-direction:column;padding:24px;border:1px solid var(--taupe);border-radius:19px;background:var(--paper);text-decoration:none;transition:.2s}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.card-number{color:var(--terracotta);font:600 10px 'DM Mono',monospace;letter-spacing:.1em}.card-icon{position:absolute;right:20px;top:18px;font-size:39px}.card h3{max-width:84%;margin:46px 0 8px;color:var(--espresso);font:600 30px/1.04 'Playfair Display',serif;letter-spacing:-.035em}.card p{margin:0;font-size:15px}.card .link-label{margin-top:auto;padding-top:17px;color:var(--moss);font-size:13px;font-weight:700}.card.summer{background:linear-gradient(145deg,#fffdf9,#eee2d3)}.card.games{background:linear-gradient(145deg,#fffdf9,#dce5d8)}.card.books{background:linear-gradient(145deg,#fffdf9,#eadce3)}.card.educator{background:linear-gradient(145deg,#fffdf9,#ede0bf)}.page-header{max-width:820px;padding-bottom:15px}.page-header .display{font-size:clamp(43px,5.2vw,68px)}.lede{max-width:780px;margin:0;font-size:18px}.feature-banner{display:grid;grid-template-columns:1.1fr .9fr;gap:20px;align-items:stretch;margin-top:34px}.feature-copy,.feature-aside{padding:27px;border:1px solid var(--taupe);border-radius:19px}.feature-copy{background:var(--paper)}.feature-aside{background:var(--espresso);color:#fff}.feature-copy h2,.feature-aside h2{margin:9px 0 10px;font:600 35px/1.03 'Playfair Display',serif;letter-spacing:-.04em}.feature-copy p,.feature-aside p{margin:0}.feature-aside .eyebrow{color:var(--rose)}.feature-aside h2{color:#fff}.feature-aside p{color:#eee2d4}.pill-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.pill{padding:5px 9px;border-radius:999px;background:var(--beige);color:var(--charcoal);font-size:12px;font-weight:700}.feature-aside .pill{background:rgba(255,255,255,.12);color:#fff}.theme-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:25px}.theme{padding:15px 13px;border:1px solid var(--taupe);border-radius:14px;background:var(--paper)}.theme span{display:block;font-size:22px}.theme strong{display:block;margin-top:8px;color:var(--espresso);font-size:13px;line-height:1.22}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}.game-card{min-height:238px;padding:20px;border:1px solid var(--taupe);border-radius:17px;background:var(--paper);text-align:left;transition:.2s}.game-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.game-card:focus-visible,.card:focus-visible{outline:3px solid var(--red);outline-offset:3px}.game-card.culture{background:#eee0e5}.game-card.tech{background:#e2e5d7}.game-card.space{background:#ece1bf}.game-card.rover{background:#dce5e9}.game-card.social{background:#ebe1d2}.game-meta{display:flex;align-items:start;justify-content:space-between;gap:8px;color:var(--terracotta);font:600 10px 'DM Mono',monospace;letter-spacing:.08em}.game-meta span:last-child{font-size:36px;line-height:.8}.game-card h2{margin:25px 0 7px;color:var(--espresso);font:600 27px/1.05 'Playfair Display',serif;letter-spacing:-.035em}.game-card p{margin:0;font-size:14px}.game-card small{display:block;margin-top:17px;color:var(--moss);font-size:13px;font-weight:700}.book-grid,.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}.book,.support-card{padding:22px;border:1px solid var(--taupe);border-radius:18px;background:var(--paper)}.book-icon,.support-icon{font-size:36px}.book h2,.support-card h2{margin:21px 0 8px;color:var(--espresso);font:600 28px/1.05 'Playfair Display',serif;letter-spacing:-.04em}.book p,.support-card p{margin:0;font-size:14px}.book ul,.support-card ul{margin:17px 0 0;padding-left:17px;font-size:13px}.book li+li,.support-card li+li{margin-top:5px}.quote{max-width:820px;margin:37px 0 0;padding:27px;border-left:3px solid var(--red);background:var(--paper);font:600 clamp(23px,3vw,31px)/1.28 'Playfair Display',serif;color:var(--espresso)}.quote small{display:block;margin-top:13px;color:var(--charcoal);font:500 13px 'DM Sans',sans-serif}.contact-panel{padding:39px;border-radius:22px;background:var(--terracotta);color:#fff}.contact-panel h2{max-width:710px;margin:11px 0;color:#fff;font:600 clamp(38px,5.2vw,66px)/.99 'Playfair Display',serif;letter-spacing:-.055em}.contact-panel p{max-width:680px;margin:0;font-size:18px}.contact-panel .button.primary{margin-top:24px;background:#fff;color:var(--espresso)}.contact-panel .button.primary:hover{background:var(--cream)}.modal{position:fixed;z-index:50;inset:0;display:none;place-items:center;padding:18px}.modal.open{display:grid}.modal-backdrop{position:absolute;inset:0;background:rgba(48,39,33,.68);backdrop-filter:blur(5px)}.modal-panel{position:relative;width:min(710px,100%);max-height:calc(100vh - 36px);overflow:auto;padding:36px;border:1px solid var(--taupe);border-radius:22px;background:var(--cream);box-shadow:0 25px 80px rgba(0,0,0,.34)}.modal-close{position:absolute;right:17px;top:17px;width:36px;height:36px;border:1px solid var(--taupe);border-radius:50%;background:var(--paper);font-size:22px}.modal-panel h2{max-width:560px;margin:11px 36px 15px 0;color:var(--espresso);font:600 clamp(37px,5vw,55px)/1 'Playfair Display',serif;letter-spacing:-.05em}.modal-panel>p{margin:0;font-size:18px}.modal-columns{display:grid;grid-template-columns:1.05fr .95fr;gap:15px;margin:20px 0 26px}.modal-block{padding:17px;border-radius:14px;background:var(--beige)}.modal-block h3{margin:0 0 7px;color:var(--olive);font:600 10px 'DM Mono',monospace;letter-spacing:.09em;text-transform:uppercase}.modal-block p,.modal-block ul{margin:0;font-size:14px}.modal-block ul{padding-left:16px}.modal-block li+li{margin-top:5px}.modal-actions{display:flex;flex-wrap:wrap;gap:9px}
@media(max-width:920px){.sidebar{position:sticky;top:0;width:auto;min-height:0;height:73px;flex-direction:row;align-items:center;padding:7px 18px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0}.brand img{width:56px;height:56px}.brand-copy{display:none}.side-label,.sidebar-footer{display:none}.side-nav{display:flex;gap:3px;margin-left:auto;overflow:auto}.side-nav a{padding:9px 9px;font-size:12px;white-space:nowrap}.side-icon{display:none}.page{margin-left:0}.page-inner{width:min(100% - 44px,1120px);padding-top:50px}.section.alt{margin-right:-22px;margin-left:-22px;padding-right:22px;padding-left:22px}.theme-grid{grid-template-columns:repeat(3,1fr)}.book-grid,.support-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.sidebar{height:64px;padding:5px 12px}.brand img{width:51px;height:51px}.side-nav a{padding:8px 7px;font-size:11px}.page-inner{width:min(100% - 28px,1120px);padding-top:35px}.display{font-size:45px}.intro{font-size:17px}.stats,.card-grid,.game-grid,.book-grid,.support-grid,.feature-banner,.modal-columns{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--taupe)}.stat:last-child{border-bottom:0}.card{min-height:260px}.theme-grid{grid-template-columns:repeat(2,1fr)}.section{padding:62px 0}.section.alt{margin-right:-14px;margin-left:-14px;padding-right:14px;padding-left:14px}.contact-panel{padding:28px 22px}.modal{padding:10px}.modal-panel{padding:30px 21px}}

/* Custom SVG icon system */
/* Route 66 English uses a softly sunny, travel-inspired card. */
.theme{position:relative;display:flex;min-height:130px;flex-direction:column;justify-content:flex-end;padding:17px 14px}.theme .week-number{position:absolute;top:15px;left:14px;color:var(--terracotta);font:700 10px/1 'DM Mono',monospace;letter-spacing:.1em}.theme .theme-icon{position:absolute;top:13px;right:13px;width:25px;height:25px;color:var(--olive)}.theme strong{margin-top:0}
.bloom-lab.is-sunny .bloom-leaf{animation:bloom-leaf-turn .7s ease-out}
.bloom-action:before{display:none}.bloom-action-icon{width:19px;height:19px;flex:0 0 19px;object-fit:contain}
@keyframes bloom-leaf-turn{0%,100%{filter:brightness(1);rotate:0deg}50%{filter:brightness(1.17);rotate:4deg}}
.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}.bloom-lab{margin:52px 0 10px;padding:34px 30px 29px;border:1px solid var(--taupe);border-radius:23px;background:linear-gradient(145deg,#fffdf9,#edf0df);text-align:center}.bloom-heading{max-width:650px;margin:0 auto}.bloom-heading h2{margin:9px 0 8px;color:var(--espresso);font:800 clamp(34px,4.4vw,54px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}.bloom-heading>p{margin:0;font-size:17px}.bloom-progress{display:flex;justify-content:center;gap:22px;margin:22px 0 5px}.bloom-step{display:inline-flex;align-items:center;gap:7px;color:var(--charcoal);font-size:12px;font-weight:800}.bloom-step i{width:10px;height:10px;border:1.5px solid var(--taupe);border-radius:50%;background:var(--paper);transition:background .3s,border-color .3s,box-shadow .3s}.bloom-step.is-complete i{border-color:var(--moss);background:var(--moss);box-shadow:0 0 0 4px rgba(102,114,75,.12)}.bloom-scene{position:relative;max-width:510px;height:284px;margin:23px auto 18px;overflow:hidden;border:1px solid rgba(184,168,154,.72);border-radius:18px;background:linear-gradient(#edf4f0 0 63%,#f4e8d5 63%)}.bloom-sun{position:absolute;top:28px;right:58px;width:34px;height:34px;border-radius:50%;background:#dfa948;box-shadow:0 0 0 5px rgba(223,169,72,.12);opacity:.28;transition:opacity .35s,box-shadow .35s}.bloom-lab[data-sunshine="true"] .bloom-sun{opacity:1;box-shadow:0 0 0 13px rgba(223,169,72,.13)}.bloom-pot{position:absolute;z-index:4;bottom:15px;left:50%;width:126px;height:83px;border-radius:12px 12px 25px 25px;background:#c9795f;transform:translateX(-50%);box-shadow:inset 0 -10px rgba(109,67,53,.1),0 9px 13px rgba(61,51,43,.12)}.bloom-pot:before{position:absolute;top:-10px;left:-8px;width:142px;height:22px;border-radius:12px;background:#d98e8b;box-shadow:inset 0 -5px rgba(109,67,53,.1);content:""}.bloom-pot span{position:absolute;top:8px;right:18px;left:18px;height:18px;border-radius:50%;background:#674a39}.bloom-pot span:after{position:absolute;top:7px;right:16px;left:16px;height:8px;border-radius:50%;background:#806145;content:""}.bloom-plant{position:absolute;z-index:3;bottom:79px;left:50%;width:162px;height:170px;transform:translateX(-50%);transform-origin:bottom}.bloom-seed{position:absolute;bottom:0;left:72px;width:17px;height:12px;border-radius:55% 45% 56% 44%;background:#73533c;transition:opacity .25s,scale .35s}.bloom-stem{position:absolute;bottom:0;left:78px;width:7px;height:133px;border-radius:99px;background:var(--moss);transform:scaleY(.02);transform-origin:bottom;transition:transform .48s cubic-bezier(.22,1,.36,1)}.bloom-leaf{position:absolute;width:48px;height:24px;opacity:0;background:var(--olive);transition:opacity .32s,transform .45s}.leaf-a{bottom:50px;left:33px;border-radius:100% 8% 100% 8%;transform:rotate(-39deg) scale(.4)}.leaf-b{right:29px;bottom:78px;border-radius:8% 100% 8% 100%;transform:rotate(39deg) scale(.4)}.bloom-bud{position:absolute;top:14px;left:64px;width:35px;height:35px;opacity:0;border-radius:50% 50% 42% 42%;background:#cf9140;transform:scale(.2);transition:opacity .3s,transform .46s cubic-bezier(.22,1,.36,1)}.bloom-flower{position:absolute;top:0;left:48px;width:68px;height:68px;opacity:0;scale:.15;transition:opacity .32s,scale .55s cubic-bezier(.22,1,.36,1)}.bloom-flower .petal{position:absolute;top:20px;left:23px;width:22px;height:34px;border-radius:50% 50% 45% 45%;background:#e0ae43;transform-origin:11px 14px}.petal-a{transform:rotate(0deg) translateY(-20px)}.petal-b{transform:rotate(60deg) translateY(-20px)}.petal-c{transform:rotate(120deg) translateY(-20px)}.petal-d{transform:rotate(180deg) translateY(-20px)}.petal-e{transform:rotate(240deg) translateY(-20px)}.petal-f{transform:rotate(300deg) translateY(-20px)}.flower-center{position:absolute;top:23px;left:23px;width:23px;height:23px;border-radius:50%;background:#76562e;box-shadow:inset 0 0 0 4px #a37532}.bloom-lab[data-stage="2"] .bloom-seed,.bloom-lab[data-stage="3"] .bloom-seed,.bloom-lab[data-stage="4"] .bloom-seed,.bloom-lab[data-stage="5"] .bloom-seed{opacity:0;scale:.4}.bloom-lab[data-stage="2"] .bloom-stem{transform:scaleY(.28)}.bloom-lab[data-stage="3"] .bloom-stem{transform:scaleY(.58)}.bloom-lab[data-stage="4"] .bloom-stem,.bloom-lab[data-stage="5"] .bloom-stem{transform:scaleY(1)}.bloom-lab[data-stage="3"] .bloom-leaf,.bloom-lab[data-stage="4"] .bloom-leaf,.bloom-lab[data-stage="5"] .bloom-leaf{opacity:1;transform:rotate(-31deg) scale(1)}.bloom-lab[data-stage="3"] .leaf-b,.bloom-lab[data-stage="4"] .leaf-b,.bloom-lab[data-stage="5"] .leaf-b{transform:rotate(31deg) scale(1)}.bloom-lab[data-stage="4"] .bloom-bud{opacity:1;transform:scale(1)}.bloom-lab[data-stage="5"] .bloom-bud{opacity:0;transform:scale(1.5)}.bloom-lab[data-stage="5"] .bloom-flower{opacity:1;scale:1}.bloom-water-drops{position:absolute;z-index:6;top:-24px;right:36%;width:62px;height:210px;opacity:0;background:repeating-linear-gradient(110deg,transparent 0 18px,rgba(84,145,190,.72) 19px 22px,transparent 23px 35px);pointer-events:none}.bloom-lab.is-watering .bloom-water-drops{animation:bloom-water .75s ease-out}.bloom-lab.is-watering .bloom-pot span:after{background:#624434}.bloom-lab.is-watering .bloom-plant{animation:bloom-wiggle .55s ease-in-out}.bloom-sparkle{position:absolute;z-index:5;width:10px;height:10px;opacity:0;background:#e5b452;clip-path:polygon(50% 0,63% 36%,100% 50%,63% 64%,50% 100%,37% 64%,0 50%,37% 36%)}.sparkle-one{top:72px;left:33%}.sparkle-two{top:99px;right:31%;scale:.65}.bloom-lab.is-sunny .bloom-sparkle{animation:bloom-sparkle .7s ease-out}.bloom-lab[data-sunshine="true"] .bloom-leaf{filter:saturate(1.1)}.bloom-speech{position:absolute;z-index:7;top:52px;left:50%;max-width:160px;padding:8px 10px;border:1px solid rgba(184,168,154,.8);border-radius:13px;background:var(--paper);color:var(--espresso);font-size:12px;font-weight:800;opacity:0;transform:translateX(-50%) translateY(7px);transition:opacity .25s,transform .25s}.bloom-speech:after{position:absolute;bottom:-6px;left:50%;width:10px;height:10px;border-right:1px solid rgba(184,168,154,.8);border-bottom:1px solid rgba(184,168,154,.8);background:var(--paper);content:"";transform:translateX(-50%) rotate(45deg)}.bloom-lab[data-encouraged="true"] .bloom-speech{opacity:1;transform:translateX(-50%) translateY(0)}.bloom-heart{position:absolute;z-index:7;top:111px;right:34%;width:11px;height:11px;opacity:0;border-radius:2px;background:var(--red);transform:rotate(45deg)}.bloom-heart:before,.bloom-heart:after{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--red);content:""}.bloom-heart:before{top:-5px;left:0}.bloom-heart:after{top:0;left:-5px}.bloom-lab.is-encouraged .bloom-heart{animation:bloom-heart .75s ease-out}.bloom-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:9px}.bloom-action{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid var(--taupe);border-radius:999px;background:var(--paper);color:var(--espresso);font:800 13px 'DM Sans',sans-serif;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.bloom-action:before{width:12px;height:12px;content:""}.water-action:before{border-radius:100% 0 100% 100%;background:#6f9fc8;transform:rotate(45deg)}.sunshine-action:before{border-radius:50%;background:#e2a840;box-shadow:0 -6px 0 -4px #e2a840,0 6px 0 -4px #e2a840,6px 0 0 -4px #e2a840,-6px 0 0 -4px #e2a840}.encourage-action:before{width:10px;height:10px;border-radius:2px;background:var(--rose);transform:rotate(45deg)}.bloom-action:hover:not([disabled]){border-color:var(--moss);box-shadow:0 7px 14px rgba(61,51,43,.1);transform:translateY(-2px)}.bloom-action:focus-visible,.encouragement-choices button:focus-visible,.bloom-final button:focus-visible{outline:3px solid var(--red);outline-offset:3px}.bloom-action[disabled]{border-color:rgba(102,114,75,.35);background:#e5ebdc;color:var(--moss);cursor:default}.encouragement-choices{margin-top:14px}.encouragement-choices p{margin:0 0 8px;font-size:13px;font-weight:700}.encouragement-choices div{display:flex;flex-wrap:wrap;justify-content:center;gap:7px}.encouragement-choices button{padding:8px 10px;border:1px solid var(--taupe);border-radius:999px;background:var(--paper);color:var(--espresso);font:700 12px 'DM Sans',sans-serif;cursor:pointer}.encouragement-choices button:hover{border-color:var(--moss);color:var(--moss)}.bloom-message{min-height:24px;margin:15px 0 0;color:var(--moss);font-size:14px;font-weight:800}.bloom-final{display:flex;flex-wrap:wrap;justify-content:center;gap:9px;margin-top:11px}.bloom-final[hidden],.encouragement-choices[hidden]{display:none}
@keyframes bloom-water{0%{opacity:0;transform:translateY(-18px)}30%{opacity:1}100%{opacity:0;transform:translateY(96px)}}@keyframes bloom-wiggle{0%,100%{transform:translateX(-50%) rotate(0)}30%{transform:translateX(-50%) rotate(2deg)}65%{transform:translateX(-50%) rotate(-2deg)}}@keyframes bloom-sparkle{0%{opacity:0;scale:.2}45%{opacity:1;scale:1}100%{opacity:0;scale:.5}}@keyframes bloom-heart{0%{opacity:0;translate:0 8px;scale:.4}45%{opacity:1;scale:1}100%{opacity:0;translate:0 -13px;scale:.7}}
@media(max-width:620px){.bloom-lab{margin-top:36px;padding:25px 18px}.bloom-progress{gap:11px}.bloom-step{gap:5px;font-size:10px}.bloom-scene{height:255px;margin-top:19px}.bloom-sun{right:33px}.bloom-controls{align-items:stretch;flex-direction:column}.bloom-action{justify-content:center}.encouragement-choices div{flex-direction:column}.encouragement-choices button{width:100%}}
@media(prefers-reduced-motion:reduce){.bloom-stem,.bloom-leaf,.bloom-bud,.bloom-flower,.bloom-speech,.bloom-sun,.bloom-step i{transition:none}.bloom-lab.is-watering .bloom-water-drops,.bloom-lab.is-watering .bloom-plant,.bloom-lab.is-sunny .bloom-sparkle,.bloom-lab.is-encouraged .bloom-heart{animation:none}}
/* Final sunflower reward */
.bloom-final-sunflower{position:absolute;z-index:9;bottom:-12px;left:50%;width:auto;height:calc(100% - 8px);max-height:276px;max-width:92%;opacity:0;pointer-events:none;transform:translateX(-50%) scale(.72);transform-origin:50% 100%;transition:opacity .28s ease,transform .62s cubic-bezier(.22,1,.36,1)}
.bloom-lab[data-stage="5"] .bloom-final-sunflower{opacity:1;transform:translateX(-50%) scale(1);animation:bloom-sunflower-arrive .72s cubic-bezier(.22,1,.36,1)}
.bloom-plant,.bloom-pot{transition:opacity .32s ease}.bloom-lab[data-stage="5"] .bloom-plant,.bloom-lab[data-stage="5"] .bloom-pot{opacity:0;pointer-events:none}
.bloom-final{display:grid;justify-items:center;gap:12px}.bloom-encouragement{max-width:440px;margin:0;color:var(--espresso);font:800 15px/1.45 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif}.bloom-final-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:9px}
@keyframes bloom-sunflower-arrive{0%{opacity:0;transform:translateX(-50%) scale(.52)}72%{opacity:1;transform:translateX(-50%) scale(1.055)}100%{opacity:1;transform:translateX(-50%) scale(1)}}
@media(max-width:620px){.bloom-final-sunflower{bottom:-8px}.bloom-final-actions{width:100%;flex-direction:column}.bloom-final-actions .button{width:100%;justify-content:center}}
@media(prefers-reduced-motion:reduce){.bloom-final-sunflower{transition:none;animation:none!important}}
.app-spotlight{display:grid;grid-template-columns:1.08fr .92fr;gap:24px;align-items:center;margin:42px 0 12px;padding:28px;border:1px solid var(--taupe);border-radius:22px;background:linear-gradient(130deg,#f9eff2,#f2e8d5)}.app-spotlight-copy h2{margin:9px 0;color:var(--espresso);font:800 clamp(33px,4vw,51px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.app-spotlight-copy p{max-width:620px;margin:0 0 12px;font-size:16px}.app-spotlight-copy .button{margin-top:8px}.corner-preview{position:relative;min-height:247px;overflow:hidden;border:1px solid rgba(184,168,154,.72);border-radius:18px;background:linear-gradient(145deg,#e0edf0,#f9dfd8)}.corner-orb{position:absolute;border-radius:50%;opacity:.82}.orb-one{top:22px;right:25px;width:52px;height:52px;background:#d9988b}.orb-two{bottom:23px;left:27px;width:35px;height:35px;background:#9caa7c}.corner-window{position:absolute;top:31px;left:37px;width:min(61%,244px);min-height:167px;padding:17px;border:1px solid rgba(61,51,43,.13);border-radius:15px;background:rgba(255,253,249,.86);box-shadow:0 12px 25px rgba(61,51,43,.11)}.corner-window-label{display:block;margin-bottom:14px;color:var(--espresso);font:800 14px/1 'Nunito','Avenir Next Rounded',sans-serif;letter-spacing:-.02em}.corner-task{display:block;height:11px;margin-top:12px;border-radius:999px;background:#e8ddd0}.corner-task:before{display:inline-block;width:11px;height:11px;margin-right:7px;border:1.5px solid var(--olive);border-radius:4px;content:"";vertical-align:top}.corner-task.complete{width:74%;background:#cfd9bd}.corner-task.complete:before{border-color:var(--moss);background:var(--moss);box-shadow:inset 0 0 0 3px #cfd9bd}.corner-task.short{width:59%}.corner-mood{display:block;width:31px;height:8px;margin-top:18px;border-radius:99px;background:#d98e8b;box-shadow:40px 0 0 #e2ad4e,80px 0 0 #7e8666}.corner-character{position:absolute;right:38px;bottom:31px;width:77px;height:113px;animation:corner-bounce 3s ease-in-out infinite}.corner-character i{position:absolute;display:block}.corner-head{z-index:2;top:17px;left:22px;width:34px;height:34px;border-radius:50%;background:#efb08d}.corner-hair{z-index:3;top:12px;left:18px;width:42px;height:23px;border-radius:25px 25px 14px 14px;background:#4a352c}.corner-body{top:47px;left:16px;width:46px;height:54px;border-radius:22px 22px 9px 9px;background:#b97369}.corner-character:after{position:absolute;bottom:0;left:9px;width:58px;height:10px;border-radius:50%;background:rgba(61,51,43,.12);content:""}
@keyframes corner-bounce{0%,100%{translate:0 0}50%{translate:0 -6px}}
@media(max-width:920px){.app-spotlight{grid-template-columns:1fr}.corner-preview{min-height:222px}.corner-window{left:14%;width:58%}.corner-character{right:15%}}
@media(max-width:620px){.app-spotlight{margin-top:33px;padding:21px}.corner-preview{min-height:207px}.corner-window{top:22px;min-height:145px;padding:14px}.corner-character{right:12%;bottom:20px;scale:.88}}
@media(prefers-reduced-motion:reduce){.corner-character{animation:none}}
/* Real My Little Corner dashboard preview */
.corner-preview{display:block;min-height:0;aspect-ratio:16/9;margin:0;background:var(--mist-blue,#e2eef4);box-shadow:0 12px 26px rgba(61,51,43,.1)}
.corner-preview img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
/* Mississippi science museum book card */
.book-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.book{display:flex;flex-direction:column}
.book-stem-parent{grid-column:1/-1;order:1;background:linear-gradient(135deg,#fffdf9,#edf4f7)}.book-stem-parent .book-icon{color:var(--ink-blue)}.book-grid>.stem-series-inline{grid-column:1/-1;order:2;margin:-2px 0 38px}.book-grid>.book:not(.book-stem-parent){order:3}
.book-mississippi{background:linear-gradient(145deg,var(--mist-blue,#e2eef4),#fffdf9)}
.book-mississippi .book-icon{color:var(--ink-blue,#315b72)}
.book-link{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;margin-top:auto;padding:9px 12px;border:1px solid rgba(49,91,114,.38);border-radius:999px;background:var(--paper);color:var(--ink-blue,#315b72);font-size:13px;font-weight:800;text-decoration:none;transition:transform .2s,background .2s,border-color .2s}
.book-link:hover{border-color:var(--ink-blue,#315b72);background:var(--mist-blue,#e2eef4);transform:translateY(-2px)}
.book-link:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.reveal{opacity:0;translate:0 18px;transition:opacity .58s ease,translate .58s ease}.reveal.is-visible{opacity:1;translate:0 0}
.sprout-lab{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:center;margin:50px 0 10px;padding:27px;border:1px solid var(--taupe);border-radius:22px;background:linear-gradient(130deg,#fffdf9,#e2eadc)}.sprout-copy h2,.summer-game-link h3{margin:9px 0;color:var(--espresso);font-family:'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;font-weight:800;letter-spacing:-.045em}.sprout-copy h2{font-size:clamp(30px,3.7vw,46px);line-height:1}.sprout-copy p{max-width:580px;margin:0;font-size:16px}.sprout-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.grow-button{display:inline-flex;align-items:center;gap:8px;padding:11px 15px;border:1px solid var(--taupe);border-radius:999px;background:var(--paper);color:var(--espresso);font:800 13px 'DM Sans',sans-serif;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s}.grow-button:hover{transform:translateY(-2px);box-shadow:0 7px 14px rgba(61,51,43,.12)}.grow-button:focus-visible{outline:3px solid var(--red);outline-offset:3px}.grow-button:before{width:12px;height:12px;content:""}.grow-button.water:before{border-radius:100% 0 100% 100%;background:#6f9fc8;transform:rotate(45deg)}.grow-button.sunshine:before{border-radius:50%;background:#e2a840;box-shadow:0 -6px 0 -4px #e2a840,0 6px 0 -4px #e2a840,6px 0 0 -4px #e2a840,-6px 0 0 -4px #e2a840}.sprout-status{margin-top:14px!important;color:var(--moss);font-size:13px!important;font-weight:700}.sprout-scene{position:relative;min-height:238px;overflow:hidden;border:1px solid rgba(184,168,154,.75);border-radius:17px;background:linear-gradient(#dce9ee 0 57%,#f2e5ce 57%)}.scene-sun{position:absolute;top:25px;right:31px;width:33px;height:33px;border-radius:50%;background:#e4b04d;box-shadow:0 0 0 7px rgba(228,176,77,.16)}.scene-soil{position:absolute;right:-10px;bottom:-17px;left:-10px;height:67px;border-radius:50% 50% 0 0;background:#806145}.sprout-plant{--plant-scale:.54;position:absolute;z-index:2;bottom:39px;left:50%;width:84px;height:145px;transform:translateX(-50%) scale(var(--plant-scale));transform-origin:bottom;transition:transform .62s cubic-bezier(.22,1,.36,1)}.plant-stem{position:absolute;bottom:0;left:39px;width:7px;height:96px;border-radius:8px;background:var(--moss)}.plant-leaf{position:absolute;width:50px;height:27px;background:var(--olive);transition:background .4s}.leaf-left{bottom:50px;left:0;border-radius:100% 8% 100% 8%;transform:rotate(-30deg)}.leaf-right{right:0;bottom:72px;border-radius:8% 100% 8% 100%;transform:rotate(30deg)}.leaf-top{bottom:102px;left:28px;width:30px;height:21px;border-radius:100% 8% 100% 8%;transform:rotate(-57deg)}.scene-rain{position:absolute;z-index:3;inset:0;pointer-events:none}.scene-rain:after{position:absolute;top:-28px;right:27px;bottom:57px;left:27px;background:repeating-linear-gradient(107deg,transparent 0 20px,rgba(82,139,187,.72) 21px 23px,transparent 24px 39px);content:"";opacity:0}.sprout-scene.is-watered .scene-rain:after{animation:rain-fall .72s ease-out}.sprout-scene.is-sunny .scene-sun{animation:sunshine-pulse .8s ease-out}.summer-game-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:31px}.summer-game-link{position:relative;display:flex;min-height:214px;flex-direction:column;padding:21px;border:1px solid var(--taupe);border-radius:18px;background:var(--paper);color:inherit;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s}.summer-game-link:hover{border-color:var(--olive);box-shadow:var(--shadow);transform:translateY(-3px)}.summer-game-link:focus-visible{outline:3px solid var(--red);outline-offset:3px}.summer-game-link h3{max-width:80%;font-size:27px;line-height:1.03}.summer-game-link p{max-width:88%;margin:0;font-size:14px}.week-label{color:var(--terracotta);font:600 10px/1.2 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.summer-game-icon{position:absolute;top:18px;right:18px;width:36px;height:36px;color:var(--olive)}.summer-game-cta{margin-top:auto;padding-top:17px;color:var(--moss);font-size:13px;font-weight:800}.summer-game-link.culture{background:#f0e2e7}.summer-game-link.culture .summer-game-icon{color:var(--terracotta)}.summer-game-link.tech{background:#e1e6d8}.summer-game-link.tech .summer-game-icon{color:var(--moss)}.summer-game-link.space{background:#f1e5c5}.summer-game-link.space .summer-game-icon{color:#a77237}.summer-game-link.rover{background:#dfe9eb}.summer-game-link.rover .summer-game-icon{color:#587a8b}.summer-game-link.future{border-style:dashed;background:linear-gradient(135deg,#fffdf9,#efe8db)}.summer-game-link.future .summer-game-icon{color:var(--terracotta)}
@keyframes rain-fall{0%{opacity:0;transform:translateY(-16px)}30%{opacity:1}100%{opacity:0;transform:translateY(78px)}}@keyframes sunshine-pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.22);box-shadow:0 0 0 15px rgba(228,176,77,.13)}}
@media(max-width:920px){.sidebar{min-height:84px;height:84px}.side-nav a{display:flex;min-height:58px;flex-direction:column;justify-content:center;gap:3px;padding:4px}.side-icon{width:25px;height:25px;flex-basis:25px;padding:5px;border-radius:9px}.nav-label{position:static;display:block;width:auto;height:auto;overflow:visible;clip:auto;white-space:nowrap;color:inherit;font:800 9px/1 'DM Sans',sans-serif;letter-spacing:-.02em}.side-nav a:nth-child(2) .nav-label,.side-nav a:nth-child(3) .nav-label,.side-nav a:nth-child(4) .nav-label,.side-nav a:nth-child(5) .nav-label{font-size:0}.side-nav a:nth-child(2) .nav-label:after{content:"Camp"}.side-nav a:nth-child(3) .nav-label:after{content:"Games"}.side-nav a:nth-child(4) .nav-label:after{content:"Books"}.side-nav a:nth-child(5) .nav-label:after{content:"Teach"}.side-nav a:nth-child(n+2) .nav-label:after{font:800 9px/1 'DM Sans',sans-serif;letter-spacing:-.02em}.summer-game-grid{grid-template-columns:1fr}.sprout-lab{grid-template-columns:1fr}.sprout-scene{min-height:210px}}
@media(max-width:620px){.sidebar{min-height:76px;height:76px}.side-nav a{min-height:57px;gap:2px}.side-icon{width:24px;height:24px;flex-basis:24px;padding:4px}.nav-label,.side-nav a:nth-child(n+2) .nav-label:after{font-size:8px}.sprout-lab{margin-top:36px;padding:21px}.summer-game-link{min-height:200px}}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;translate:0 0;transition:none}.sprout-plant,.sprout-scene.is-watered .scene-rain:after,.sprout-scene.is-sunny .scene-sun{animation:none;transition:none}}
.game-card.english{background:#f1e6c7}.game-card.english .game-icon{color:#b57a36}
.camp-recap{padding-top:18px}.recap-spotlight{display:grid;grid-template-columns:190px minmax(0,1fr);gap:30px;align-items:center;margin-top:31px;padding:24px;border:1px solid var(--taupe);border-radius:22px;background:linear-gradient(135deg,#fffdf9,#e8f0f1)}.recap-cover{display:block;justify-self:center;width:170px;padding:0;border:0;border-radius:9px;background:transparent;cursor:pointer;transition:transform .22s ease}.recap-cover:hover{transform:translateY(-5px) rotate(-1.5deg)}.recap-cover:focus-visible,.recap-open:focus-visible{outline:3px solid var(--ink-blue);outline-offset:4px}.recap-cover img{display:block;width:100%;border:1px solid rgba(61,51,43,.17);border-radius:5px;box-shadow:6px 8px 0 rgba(61,51,43,.1),0 14px 24px rgba(61,51,43,.14)}.recap-copy h3{max-width:680px;margin:8px 0 10px;color:var(--espresso);font:800 clamp(26px,3.4vw,39px)/1.02 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.recap-copy p{max-width:690px;margin:0;font-size:16px}.recap-open{display:inline-flex;align-items:center;gap:8px;margin-top:20px;padding:11px 16px;border:1px solid var(--ink-blue);border-radius:999px;background:var(--ink-blue);color:#fff;font:800 13px 'DM Sans',sans-serif;cursor:pointer;transition:background .2s,transform .2s}.recap-open:hover{background:var(--ink-blue-deep);transform:translateY(-2px)}.camp-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}.camp-photo{margin:0;overflow:hidden;border:1px solid var(--taupe);border-radius:17px;background:var(--paper);box-shadow:0 10px 23px rgba(61,51,43,.07)}.camp-photo img{display:block;width:100%;aspect-ratio:1.3/1;object-fit:cover}.camp-photo figcaption{padding:11px 13px;color:var(--espresso);font-size:12px;font-weight:800;line-height:1.3}@media(max-width:700px){.recap-spotlight{grid-template-columns:1fr;gap:20px;padding:21px}.recap-cover{width:145px}.camp-photo-grid{grid-template-columns:1fr;gap:13px}.camp-photo img{aspect-ratio:1.6/1}}

/* Friendly rounded typography for portfolio titles. */
.brand-copy strong,.trail-heading strong,.display,.stat strong,.section-heading h2,.card h3,.feature-copy h2,.feature-aside h2,.game-card h2,.book h2,.support-card h2,.quote,.contact-panel h2,.modal-panel h2{font-family:'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;font-weight:800;letter-spacing:-.045em}.display em{font-style:normal}.quote{font-weight:700}

/* Learning trail navigation */
.sidebar{width:286px;padding:28px 20px 20px;border-right-color:rgba(184,168,154,.72);background:linear-gradient(160deg,rgba(255,253,249,.98),rgba(248,243,235,.96));box-shadow:inset -1px 0 rgba(255,255,255,.7)}
.brand{gap:10px;margin:0 4px 29px}.brand img{width:58px;height:58px;filter:drop-shadow(0 4px 6px rgba(61,51,43,.08))}.trail-heading{position:relative;margin:0 10px 16px;padding-left:15px}.trail-heading:before{position:absolute;top:2px;bottom:2px;left:0;width:4px;border-radius:99px;background:var(--terracotta);content:""}.trail-heading span{display:block;color:var(--terracotta);font:600 10px/1.1 'DM Mono',monospace;letter-spacing:.12em;text-transform:uppercase}.trail-heading strong{display:block;margin-top:4px;color:var(--espresso);font:600 21px/1 'Playfair Display',serif;letter-spacing:-.035em}.side-label{display:none}.side-nav{position:relative;display:grid;gap:7px;padding:0 0 0 1px}.side-nav:before{position:absolute;top:22px;bottom:22px;left:17px;border-left:1px dashed rgba(126,134,102,.55);content:""}.side-nav a{position:relative;z-index:1;display:flex;min-height:50px;align-items:center;gap:11px;padding:8px 10px;border:1px solid transparent;border-radius:15px;color:var(--charcoal);font-size:13px;font-weight:700;line-height:1.15;transition:transform .2s,background .2s,border-color .2s,box-shadow .2s}.side-nav a:hover{border-color:rgba(184,168,154,.72);background:rgba(255,253,249,.82);color:var(--espresso);transform:translateX(3px)}.side-nav a.active{border-color:rgba(126,134,102,.18);background:linear-gradient(105deg,var(--olive),var(--moss));box-shadow:0 7px 15px rgba(80,83,56,.15);color:#fff}.side-nav a:focus-visible{outline:3px solid var(--red);outline-offset:3px}.side-icon{z-index:1;display:block;flex:0 0 32px;width:32px;height:32px;padding:7px;border-radius:11px;background:var(--beige);color:var(--terracotta);text-align:initial}.side-nav a.active .side-icon{background:rgba(255,255,255,.17);color:#fff}.nav-label{display:block}.trail-guide{position:relative;height:103px;margin:16px 9px 0;overflow:hidden;border:1px dashed rgba(184,168,154,.9);border-radius:17px;background:linear-gradient(135deg,#f2e4d3,#e2e8d6)}.trail-guide:after{position:absolute;right:25px;bottom:15px;width:9px;height:9px;border-radius:50%;background:var(--terracotta);box-shadow:22px -13px 0 -2px var(--olive),42px 4px 0 -1px var(--rose);content:""}.guide-sun{position:absolute;top:16px;right:27px;width:13px;height:13px;border-radius:50%;background:#e4ae48;box-shadow:0 0 0 5px rgba(228,174,72,.12)}.guide-ground{position:absolute;right:14px;bottom:20px;left:14px;border-top:2px dashed rgba(102,114,75,.54)}.walker{position:absolute;bottom:21px;left:20px;width:42px;height:59px;z-index:2;animation:walk-trail 5.5s ease-in-out infinite}.walker i{position:absolute;display:block}.walker-head{z-index:2;top:5px;left:13px;width:17px;height:17px;border-radius:50%;background:#efb08d}.walker-hair{z-index:3;top:3px;left:11px;width:20px;height:11px;border-radius:12px 13px 7px 7px;background:#3d332b}.walker-body{z-index:1;top:20px;left:11px;width:20px;height:24px;border-radius:10px 10px 6px 6px;background:var(--olive)}.walker-arm{z-index:0;top:24px;width:4px;height:17px;border-radius:9px;background:#efb08d;transform-origin:top}.walker-arm.arm-left{left:10px;transform:rotate(36deg);animation:arm-swing 1.1s ease-in-out infinite}.walker-arm.arm-right{right:10px;transform:rotate(-39deg);animation:arm-swing-reverse 1.1s ease-in-out infinite}.walker-leg{top:41px;width:5px;height:20px;border-radius:8px;background:#40516a;transform-origin:top}.walker-leg.leg-left{left:14px;animation:leg-swing 1.1s ease-in-out infinite}.walker-leg.leg-right{right:14px;animation:leg-swing-reverse 1.1s ease-in-out infinite}.sidebar-footer{margin-top:auto;padding:16px 10px 3px;border-top:1px dashed rgba(184,168,154,.8);font-size:12px}.sidebar-footer a{color:var(--moss)}
@keyframes walk-trail{0%,100%{transform:translateX(0)}50%{transform:translateX(156px)}}@keyframes arm-swing{0%,100%{transform:rotate(35deg)}50%{transform:rotate(-17deg)}}@keyframes arm-swing-reverse{0%,100%{transform:rotate(-39deg)}50%{transform:rotate(15deg)}}@keyframes leg-swing{0%,100%{transform:rotate(18deg)}50%{transform:rotate(-18deg)}}@keyframes leg-swing-reverse{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}
@media(max-width:920px){.sidebar{position:sticky;top:0;z-index:30;display:flex;width:auto;min-height:74px;height:74px;align-items:center;padding:7px 12px;border-right:0;border-bottom:1px solid rgba(184,168,154,.7);box-shadow:0 3px 14px rgba(61,51,43,.06)}.brand{flex:0 0 50px;margin:0 8px 0 0}.brand img{width:50px;height:50px}.brand-copy,.trail-heading,.trail-guide,.sidebar-footer{display:none}.side-nav{display:grid;width:min(360px,calc(100vw - 94px));grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin-left:auto;padding:0;overflow:visible}.side-nav:before{display:none}.side-nav a{display:grid;min-height:46px;place-items:center;padding:5px;border-radius:14px;background:transparent}.side-nav a:hover{background:var(--beige);transform:translateY(-1px)}.side-nav a.active{background:linear-gradient(135deg,var(--olive),var(--moss));box-shadow:0 5px 12px rgba(80,83,56,.15)}.side-icon{width:30px;height:30px;flex:0 0 30px;padding:6px;border-radius:10px}.side-nav a:not(.active) .side-icon{background:rgba(232,221,208,.72)}.nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.page-inner{padding-top:50px}}
@media(max-width:620px){.sidebar{min-height:66px;height:66px;padding:5px 12px}.brand{flex-basis:43px;margin-right:7px}.brand img{width:43px;height:43px}.side-nav{width:calc(100vw - 86px);gap:3px}.side-nav a{min-height:42px;border-radius:12px}.side-icon{width:28px;height:28px;flex-basis:28px;padding:5px;border-radius:9px}}
@media(prefers-reduced-motion:reduce){.walker,.walker-arm,.walker-leg{animation:none!important}.side-nav a{transition:none}}
/* Keep the navigation topics readable on smaller screens. */
@media(max-width:920px){.sidebar{min-height:88px;height:88px}.side-nav a{grid-template-rows:30px minmax(12px,auto);align-content:center;gap:4px}.nav-label{position:static;display:block;width:100%;height:auto;overflow:visible;clip:auto;white-space:normal;text-align:center}.side-nav a:nth-child(n) .nav-label{font-size:0}.side-nav a:nth-child(1) .nav-label:after{content:"Home"}.side-nav a:nth-child(2) .nav-label:after{content:"Programs"}.side-nav a:nth-child(3) .nav-label:after{content:"Games"}.side-nav a:nth-child(4) .nav-label:after{content:"Books"}.side-nav a:nth-child(5) .nav-label:after{content:"Educator"}.side-nav a:nth-child(n) .nav-label:after{display:block;color:inherit;font:800 8.5px/1.05 'DM Sans',sans-serif;letter-spacing:-.03em}}
@media(max-width:620px){.sidebar{min-height:84px;height:84px}.side-nav a{min-height:58px;gap:3px}.side-nav a:nth-child(n) .nav-label:after{font-size:7.6px;letter-spacing:-.045em}}
.side-icon{object-fit:contain}.side-nav a.active img.side-icon{filter:brightness(0) invert(1)}
.button.blue{background:var(--ink-blue);color:#fff}.button.blue:hover{background:var(--ink-blue-deep);color:#fff;transform:translateY(-1px)}.hero-greeting em{color:var(--ink-blue)}.bloom-action.water-action{border-color:rgba(49,91,114,.4);background:var(--mist-blue)}.bloom-action.water-action:hover:not([disabled]){border-color:var(--ink-blue);box-shadow:0 7px 14px rgba(49,91,114,.13)}
/* Unified blue actions */
.button.primary,.button.secondary,.book-link,.grow-button,.bloom-action,.encouragement-choices button{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff}
.button.primary:hover,.button.secondary:hover,.book-link:hover,.grow-button:hover,.bloom-action:hover:not([disabled]),.encouragement-choices button:hover{border-color:var(--ink-blue-deep);background:var(--ink-blue-deep);color:#fff;box-shadow:0 7px 14px rgba(49,91,114,.18);transform:translateY(-2px)}
.bloom-action.water-action{border-color:var(--ink-blue);background:var(--ink-blue)}
.bloom-action[disabled]{border-color:rgba(49,91,114,.28);background:var(--mist-blue);color:var(--ink-blue)}
/* Keep the nurture choices light and make the current trail stop blue. */
.bloom-action,.encouragement-choices button{border-color:var(--taupe);background:var(--paper);color:var(--espresso)}
.bloom-action:hover:not([disabled]),.encouragement-choices button:hover{border-color:var(--ink-blue);background:var(--mist-blue);color:var(--ink-blue);box-shadow:0 7px 14px rgba(49,91,114,.13);transform:translateY(-2px)}
.bloom-action.water-action{border-color:var(--taupe);background:var(--paper)}
.side-nav a.active{border-color:rgba(49,91,114,.25);background:linear-gradient(135deg,var(--ink-blue),var(--ink-blue-deep));box-shadow:0 7px 15px rgba(49,91,114,.2);color:#fff}
/* Softer closing panel using Kitty's cream and blue palette. */
.contact-panel{border:1px solid rgba(49,91,114,.22);background:linear-gradient(135deg,var(--mist-blue),#f6fafb);color:var(--charcoal);box-shadow:0 14px 30px rgba(49,91,114,.1)}
.contact-panel .eyebrow{color:var(--ink-blue)}
.contact-panel h2{color:var(--ink-blue)}
.contact-panel p{color:var(--charcoal)}
.contact-panel .button.primary{background:var(--ink-blue);color:#fff}
.contact-panel .button.primary:hover{background:var(--ink-blue-deep);color:#fff}
/* Let the new cream-backed sunflower blend naturally into its final reward scene. */
.bloom-lab[data-stage="5"] .bloom-scene{background:var(--cream)}
/* Four illustrated plant stages from Kitty's growth visual. */
.bloom-scene{height:348px;background:var(--cream);isolation:isolate}
.bloom-stage-visuals{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden}
.bloom-stage-visuals img{position:absolute;top:50%;left:50%;width:auto;height:calc(100% - 10px);max-width:94%;object-fit:contain;opacity:0;filter:drop-shadow(0 10px 9px rgba(61,51,43,.1));mask-image:linear-gradient(90deg,transparent 0,black 9%,black 91%,transparent 100%);transform:translate(-50%,-50%) scale(.94);transition:opacity .32s ease,transform .5s cubic-bezier(.22,1,.36,1)}
.bloom-lab[data-stage="1"] [data-bloom-visual="seed"],.bloom-lab[data-stage="2"] [data-bloom-visual="sprout"],.bloom-lab[data-stage="3"] [data-bloom-visual="grow"],.bloom-lab[data-stage="4"] [data-bloom-visual="grow"],.bloom-lab[data-stage="5"] [data-bloom-visual="bloom"]{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media(max-width:620px){.bloom-scene{height:304px}.bloom-stage-visuals img{height:calc(100% - 8px)}}
@media(prefers-reduced-motion:reduce){.bloom-stage-visuals img{transition:none}}
/* STEM Storybook Series */
.stem-series{margin:0 0 38px;padding:32px;border:1px solid rgba(49,91,114,.24);border-radius:22px;background:linear-gradient(135deg,var(--mist-blue),#fffdf9)}
.stem-series-heading{max-width:720px}.stem-series-heading h2{margin:9px 0;color:var(--ink-blue);font:800 clamp(31px,4vw,48px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.stem-series-heading p{margin:0;font-size:16px}
.stem-series-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:15px;margin-top:25px}.stem-series-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:15px;align-items:start;padding:22px;border:1px solid rgba(49,91,114,.19);border-radius:18px;background:rgba(255,253,249,.82)}
.stem-series-icon{width:42px;height:42px;color:var(--ink-blue)}.stem-series-copy .eyebrow{color:var(--terracotta)}.stem-series-copy h3{margin:7px 0;color:var(--espresso);font:800 29px/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.stem-series-copy p{max-width:670px;margin:0;font-size:15px}.stem-series-copy ul{display:flex;flex-wrap:wrap;gap:7px 17px;margin:16px 0 0;padding-left:17px;font-size:13px}.stem-series-card .book-link{margin:0;align-self:end;white-space:nowrap}
.stem-series-card .book-link{grid-column:1/-1;justify-self:start;margin-top:3px}.stem-series-water{background:linear-gradient(145deg,#f8fbfd,#e2eef4)}.stem-series-sunflower{background:linear-gradient(145deg,#fffdf9,#f2e5c5)}.stem-series-watercycle{background:linear-gradient(145deg,#f4fbfd,#dcecf3)}
@media(max-width:820px){.stem-series-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.stem-series{margin-bottom:30px;padding:24px 20px}.stem-series-list{grid-template-columns:1fr}.stem-series-card{grid-template-columns:40px 1fr;gap:13px;padding:18px}.stem-series-icon{width:36px;height:36px}.stem-series-copy h3{font-size:26px}.stem-series-copy ul{display:block}.stem-series-copy li+li{margin-top:5px}.stem-series-card .book-link{grid-column:1/-1;justify-self:start;margin-top:3px}}
/* Classroom care is a related STEM project, intentionally separate from the storybook series. */
.animal-care{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:18px;align-items:start;margin:0 0 38px;padding:29px 32px;border:1px solid rgba(126,134,102,.35);border-radius:22px;background:linear-gradient(135deg,#f5f1e6,#edf0df)}.animal-care-icon{width:48px;height:48px;color:var(--moss)}.animal-care-copy h2{margin:7px 0 9px;color:var(--espresso);font:800 clamp(29px,4vw,43px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.animal-care-copy p{max-width:720px;margin:0;font-size:16px}.animal-care-copy ul{display:flex;flex-wrap:wrap;gap:7px 17px;margin:16px 0 0;padding-left:17px;font-size:13px}.animal-care .book-link{align-self:center;margin:0;white-space:nowrap}@media(max-width:760px){.animal-care{grid-template-columns:42px minmax(0,1fr);padding:24px 20px}.animal-care-icon{width:38px;height:38px}.animal-care .book-link{grid-column:1/-1;justify-self:start;margin-top:1px}}@media(max-width:500px){.animal-care-copy ul{display:block}.animal-care-copy li+li{margin-top:5px}}
/* STEM Vanguards pairs a digital story with an in-person discovery game. */
.vanguards-feature{display:grid;grid-template-columns:48px minmax(0,1.2fr) minmax(245px,.8fr);gap:18px;align-items:start;margin:0 0 38px;padding:30px 32px;border:1px solid rgba(201,121,95,.36);border-radius:22px;background:linear-gradient(135deg,#fff8f1,#f5e6df)}.vanguards-icon{width:48px;height:48px;color:var(--terracotta)}.vanguards-copy h2{margin:7px 0 9px;color:var(--espresso);font:800 clamp(30px,4vw,44px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.vanguards-copy p{margin:0;font-size:16px}.vanguards-copy ul{display:flex;flex-wrap:wrap;gap:7px 17px;margin:16px 0 0;padding-left:17px;font-size:13px}.vanguards-activity{padding:19px;border:1px solid rgba(201,121,95,.32);border-radius:16px;background:rgba(255,253,249,.7)}.vanguards-activity h3{margin:8px 0 11px;color:var(--espresso);font:800 23px/1.04 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.04em}.vanguards-activity ol{margin:0;padding-left:19px;font-size:13px}.vanguards-activity li+li{margin-top:7px}.vanguards-feature .book-link{grid-column:2/-1;justify-self:start;margin:0}@media(max-width:820px){.vanguards-feature{grid-template-columns:42px minmax(0,1fr);padding:24px 20px}.vanguards-icon{width:38px;height:38px}.vanguards-activity{grid-column:1/-1}.vanguards-feature .book-link{grid-column:1/-1}}@media(max-width:500px){.vanguards-copy ul{display:block}.vanguards-copy li+li{margin-top:5px}}
/* Cover-first library: project detail is revealed only after a learner selects a title. */
.books-page .feature-banner,.books-page .legacy-library,.books-page .animal-care,.books-page .vanguards-feature,.books-page .section.alt{display:none}
.books-page .page-header{max-width:690px}.books-page .page-header .lede{max-width:470px;font-size:17px}.library-section{padding:32px 0 48px}.library-toolbar{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin-bottom:21px}.library-toolbar h2{margin:0;color:var(--espresso);font:800 24px/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:25px 19px;align-items:start}
.library-book{display:block;padding:0;border:0;border-radius:14px;background:transparent;cursor:pointer;transition:transform .24s ease}.library-cover{position:relative;display:flex;min-height:252px;aspect-ratio:3/4;overflow:hidden;flex-direction:column;justify-content:space-between;padding:17px 15px;border:1px solid rgba(61,51,43,.22);border-radius:7px 8px 10px 7px;color:#fff;box-shadow:5px 7px 0 rgba(61,51,43,.12),0 13px 23px rgba(61,51,43,.13);isolation:isolate}.library-cover:before,.library-cover:after{position:absolute;z-index:-1;content:""}.library-cover strong{position:relative;z-index:2;font:900 clamp(19px,2vw,29px)/.93 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.065em;text-align:center}.cover-kicker{position:relative;z-index:2;font:700 8px/1.15 'DM Mono',monospace;letter-spacing:.1em;text-align:center;text-transform:uppercase}.library-book:hover{transform:translateY(-7px) rotate(-1.5deg)}.library-book:focus-visible{outline:3px solid var(--ink-blue);outline-offset:5px}.library-book:hover .library-cover{box-shadow:7px 11px 0 rgba(61,51,43,.13),0 20px 29px rgba(61,51,43,.19)}
.cover-popcorn{background:linear-gradient(145deg,#1d3e67,#203c70)}.cover-popcorn:before{right:-45px;bottom:-28px;width:170px;height:170px;border:20px solid #fef9df;border-radius:46% 46% 42% 42%;background:repeating-linear-gradient(90deg,#eb5963 0 14px,#fff7df 14px 28px);transform:rotate(12deg)}.cover-popcorn:after{right:31px;bottom:77px;width:78px;height:59px;border-radius:50% 50% 43% 43%;background:#ffd865;box-shadow:-28px 12px 0 #ffd865,22px 19px 0 #ffd865,0 29px 0 #ffd865}.cover-ice{background:linear-gradient(155deg,#eefafe,#82c5e3);color:#275a74}.cover-ice:before{left:-25px;bottom:-38px;width:150px;height:151px;border:1px solid rgba(255,255,255,.8);border-radius:32px;background:linear-gradient(135deg,rgba(255,255,255,.84),rgba(158,222,241,.46));transform:rotate(18deg)}.cover-ice:after{right:17px;bottom:23px;width:61px;height:61px;border:3px solid #fff;border-radius:19px;background:rgba(255,255,255,.28);transform:rotate(14deg)}.cover-sunflower{background:linear-gradient(155deg,#f6e3a4,#eeb766);color:#5a4223}.cover-sunflower:before{right:18px;bottom:20px;width:91px;height:91px;border-radius:50%;background:radial-gradient(circle,#76523a 0 30%,#e7a940 31% 36%,transparent 37%),repeating-conic-gradient(#f8c448 0 16deg,#f0aa31 16deg 30deg)}.cover-sunflower:after{right:56px;bottom:-44px;width:12px;height:99px;border-radius:999px;background:#63754b;transform:rotate(8deg)}
.cover-watercycle{background:linear-gradient(145deg,#4a97d1,#d8eff7)}.cover-watercycle:before{left:-35px;bottom:-30px;width:180px;height:130px;border-radius:50% 50% 0 0;background:linear-gradient(150deg,#416eaa,#7dbde0);transform:rotate(-9deg)}.cover-watercycle:after{right:24px;bottom:32px;width:32px;height:47px;border-radius:56% 44% 56% 44%;background:#eaf8ff;box-shadow:-52px 68px 0 -3px rgba(234,248,255,.8),38px 50px 0 -6px rgba(234,248,255,.76);transform:rotate(42deg)}.cover-spark{background:radial-gradient(circle at 65% 78%,#6c789d 0 2%,transparent 2.6%),radial-gradient(circle at 18% 24%,#fff 0 1.1%,transparent 1.7%),radial-gradient(circle at 84% 26%,#fff 0 1%,transparent 1.7%),linear-gradient(160deg,#11172e,#262c52)}.cover-spark:before{left:50%;bottom:27px;width:71px;height:71px;background:#f7c552;clip-path:polygon(50% 0,61% 34%,98% 37%,68% 57%,79% 94%,50% 72%,21% 94%,32% 57%,2% 37%,39% 34%);transform:translateX(-50%)}.cover-spark:after{left:28px;bottom:20px;width:112px;height:54px;border-radius:50%;border:2px solid rgba(255,255,255,.45);transform:rotate(-15deg)}.cover-computer-science{background:linear-gradient(145deg,#426b86,#7396ac);color:#fffdf7}.cover-computer-science:before{left:50%;bottom:27px;width:106px;height:71px;border:3px solid rgba(255,253,247,.78);border-radius:11px;background:linear-gradient(145deg,rgba(255,255,255,.24),rgba(255,255,255,.04));box-shadow:inset 0 -14px 0 rgba(31,57,76,.22);transform:translateX(-50%)}.cover-computer-science:after{left:50%;bottom:50px;width:9px;height:9px;border-radius:50%;background:#f3c869;box-shadow:-29px 0 0 #d8a7a2,29px 0 0 #9db789,-14px -18px 0 #f3c869,14px -18px 0 #d8a7a2;transform:translateX(-50%)}
.cover-recap{background:linear-gradient(145deg,#8ac4dc,#f8d48d);color:#315b72}.cover-recap:before{left:50%;bottom:30px;width:112px;height:72px;border:5px solid #fff9e9;border-radius:8px 8px 0 0;background:linear-gradient(#f5e8cd 0 29%,#fffdf9 29%);box-shadow:0 -22px 0 -12px #eb815e;transform:translateX(-50%)}.cover-recap:after{left:25px;bottom:20px;width:38px;height:38px;border-radius:50%;background:#9d654a;box-shadow:53px 12px 0 #c67a5d,105px -1px 0 #563a31}.cover-mississippi{background:linear-gradient(150deg,#d2e4de,#7da39c);color:#284c4d}.cover-mississippi:before{left:50%;bottom:31px;width:107px;height:98px;border:2px solid rgba(255,255,255,.8);border-radius:45% 55% 48% 52%/52% 43% 57% 48%;background:rgba(255,253,249,.56);transform:translateX(-50%) rotate(-8deg)}.cover-mississippi:after{left:57px;bottom:57px;width:68px;height:5px;border-radius:999px;background:#d8815f;box-shadow:17px -22px 0 #315b72,-16px 22px 0 #66724b}.cover-dragon{background:linear-gradient(155deg,#fcf4e2,#e2c274);color:#483929}.cover-dragon:before{left:50%;bottom:30px;width:108px;height:62px;border-radius:54% 42% 48% 50%;background:#d88932;box-shadow:-37px 8px 0 -14px #bb702e,40px 18px 0 -19px #bf742e;transform:translateX(-50%) rotate(-6deg)}.cover-dragon:after{left:59px;bottom:72px;width:30px;height:20px;border-radius:50% 47% 48% 45%;background:#f0b145;box-shadow:30px -1px 0 #f0b145}.cover-vanguards{background:linear-gradient(155deg,#126276,#2e9c9a)}.cover-vanguards:before{right:-40px;bottom:-24px;width:147px;height:147px;border:15px solid rgba(248,243,235,.88);border-radius:50%;background:conic-gradient(from 35deg,#cc6d5e 0 21%,#e4b656 21% 44%,#315b72 44% 67%,#66724b 67% 100%)}.cover-vanguards:after{left:26px;bottom:24px;width:78px;height:82px;border-radius:48% 48% 16px 16px;background:linear-gradient(#66483f 0 36%,#d18a68 36% 100%);box-shadow:59px 13px 0 -5px #6b4a41}
@media(max-width:620px){.library-section{padding:25px 0 34px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.library-cover{min-height:220px;padding:14px 11px}.library-cover strong{font-size:clamp(19px,6vw,27px)}}
.library-section{padding:30px 0 10px}.library-section+.library-section{padding-top:38px}.library-grid{grid-template-columns:repeat(auto-fit,minmax(155px,1fr));align-items:end;gap:28px 20px}.library-book{display:flex;align-items:flex-end;justify-content:center;width:100%;min-height:0}.library-cover-image{display:block;width:100%;height:auto;max-height:315px;border:1px solid rgba(61,51,43,.16);border-radius:3px;box-shadow:5px 7px 0 rgba(61,51,43,.1),0 13px 23px rgba(61,51,43,.14);transition:box-shadow .24s ease}.library-cover-image.landscape-cover{height:auto;aspect-ratio:auto;object-fit:initial;padding:0;background:transparent}.library-book:hover .library-cover-image{box-shadow:7px 11px 0 rgba(61,51,43,.13),0 20px 29px rgba(61,51,43,.2)}@media(max-width:620px){.library-section{padding-top:26px}.library-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 16px}.library-cover-image{max-height:none}}
.books-page .library-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px 14px}.books-page .library-actions span{color:var(--moss);font:700 11px 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.books-page .library-actions a{color:var(--ink-blue);font-size:13px;font-weight:800;text-decoration:none}.books-page .library-actions a:hover{color:var(--ink-blue-deep);text-decoration:underline}@media(max-width:620px){.library-toolbar{align-items:flex-start;flex-direction:column;gap:9px}.books-page .library-actions{justify-content:flex-start}}
.library-initiative{margin:6px 0 13px;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fcfaf7}.library-initiative summary{display:block;padding:20px 22px;cursor:pointer;list-style:none}.library-initiative summary::-webkit-details-marker{display:none}.library-initiative summary:focus-visible{outline:3px solid rgba(104,131,154,.35);outline-offset:-3px}.library-initiative-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:8px}.library-initiative-summary span{display:grid;gap:5px}.library-initiative-summary strong{color:var(--espresso);font:800 clamp(21px,2.8vw,29px)/1.06 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.library-initiative-summary small{color:var(--charcoal);font-size:14px;line-height:1.45}.library-initiative-summary b{display:grid;width:28px;height:28px;flex:0 0 auto;place-items:center;border:1px solid rgba(104,131,154,.4);border-radius:50%;color:var(--ink-blue);font-size:20px;font-weight:500;line-height:1;transition:transform .22s ease,background .22s ease,color .22s ease}.library-initiative[open]{box-shadow:0 12px 25px rgba(79,67,60,.07)}.library-initiative[open] .library-initiative-summary b{background:var(--ink-blue);color:#fff;transform:rotate(45deg)}.library-initiative-detail{padding:19px 22px 22px;border-top:1px solid var(--line);background:#f8f5f0;animation:case-study-open .32s ease-out both}.library-initiative-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 26px}.library-initiative-grid article{padding-top:9px;border-top:1px solid rgba(79,67,60,.12)}.library-initiative-grid span{display:block;margin-bottom:5px;color:var(--olive);font:800 9px/1.2 'DM Mono',monospace;letter-spacing:.09em;text-transform:uppercase}.library-initiative-grid p{margin:0;color:var(--charcoal);font-size:13px;line-height:1.48}.library-initiative-link{display:inline-flex;margin-top:19px;color:var(--ink-blue);font-size:13px;font-weight:800;text-decoration:none}.library-initiative-link:hover{text-decoration:underline}@media(max-width:620px){.library-initiative summary{padding:18px}.library-initiative-summary small{font-size:13px}.library-initiative-detail{padding:18px}.library-initiative-grid{grid-template-columns:1fr;gap:12px}}
.library-section-taiwan .library-grid{grid-template-columns:repeat(auto-fill,minmax(155px,1fr))}@media(max-width:620px){.library-section-taiwan .library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.reader-modal{z-index:60;padding:20px}.reader-panel{position:relative;z-index:1;display:flex;width:min(1220px,100%);height:min(860px,calc(100vh - 40px));flex-direction:column;overflow:hidden;border:1px solid var(--taupe);border-radius:22px;background:var(--paper);box-shadow:0 25px 80px rgba(0,0,0,.34)}.reader-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px 15px 22px;border-bottom:1px solid var(--line);background:linear-gradient(110deg,#fffdf9,#f1e9dd)}.reader-header h2{margin:5px 0 0;color:var(--espresso);font:800 22px/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.04em}.reader-actions{display:flex;align-items:center;gap:12px}.reader-actions a{color:var(--ink-blue);font-size:13px;font-weight:800;text-decoration:none;white-space:nowrap}.reader-actions a:hover{text-decoration:underline}.reader-close{display:grid;width:36px;height:36px;place-items:center;border:1px solid var(--taupe);border-radius:50%;background:var(--paper);color:var(--espresso);font-size:23px;line-height:1;cursor:pointer}.reader-close:hover{background:var(--beige)}#book-reader-frame{display:block;width:100%;min-height:0;flex:1;border:0;background:#fff}@media(max-width:620px){.reader-modal{padding:9px}.reader-panel{height:calc(100vh - 18px);border-radius:16px}.reader-header{align-items:flex-start;padding:14px 13px 13px 16px}.reader-header h2{font-size:18px}.reader-actions{gap:8px}.reader-actions a{font-size:11px}.reader-close{width:32px;height:32px;font-size:20px}}
.card-icon{width:42px;height:42px;color:var(--olive)}.card.books .card-icon{color:var(--terracotta)}.card.educator .card-icon{color:var(--moss)}.theme-icon{display:block;width:28px;height:28px;color:var(--olive)}.support-icon,.book-icon{display:block;width:38px;height:38px;color:var(--terracotta)}.game-icon{width:40px;height:40px;color:var(--olive)}.game-card.culture .game-icon{color:var(--terracotta)}.game-card.tech .game-icon{color:var(--moss)}.game-card.space .game-icon{color:#a77237}.game-card.rover .game-icon{color:#587a8b}.game-card.social .game-icon{color:var(--red)}.game-card.relationship{background:#eee0e2}.game-card.relationship .game-icon{color:var(--red)}.game-card.wealth{background:#e5e8d3}.game-card.wealth .game-icon{color:var(--moss)}

/* Summer Camp journey: reveal the detail only after a visitor chooses a week. */
.week-detail-card{width:100%;appearance:none;text-align:left;font-family:'DM Sans',sans-serif;cursor:pointer}.week-detail-card strong{display:block}.week-detail-card .week-more{display:block;margin-top:11px;color:var(--ink-blue);font:800 11px/1.2 'DM Sans',sans-serif;letter-spacing:0}.week-detail-card:hover,.week-detail-card:focus-visible{border-color:var(--ink-blue);background:#f8fbfc;box-shadow:0 10px 23px rgba(49,91,114,.12);transform:translateY(-3px)}.week-detail-card:focus-visible{outline:3px solid rgba(49,91,114,.35);outline-offset:3px}.summer-game-link{font-family:'DM Sans',sans-serif;text-align:left;cursor:pointer}.week-game-actions{display:flex;flex-wrap:wrap;gap:9px}.week-game-button{border:1px solid var(--ink-blue);border-radius:999px;background:var(--ink-blue);color:#fff;padding:10px 13px;font:800 12px/1.2 'DM Sans',sans-serif;cursor:pointer;transition:background .2s,transform .2s}.week-game-button:hover,.week-game-button:focus-visible{background:var(--ink-blue-deep);transform:translateY(-2px)}.week-game-button:focus-visible{outline:3px solid rgba(49,91,114,.3);outline-offset:3px}.game-player-modal{z-index:70}.game-player-modal #game-player-frame{display:block;width:100%;min-height:0;flex:1;border:0;background:#fff}

/* The three teaching-philosophy choices share one clear selected state. */
.bloom-action{transition:background .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .2s ease}.bloom-action.is-complete,.bloom-action.is-complete[disabled]{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff;box-shadow:0 7px 14px rgba(49,91,114,.2);opacity:1}.bloom-action.is-complete .bloom-action-icon{filter:brightness(0) invert(1)}.bloom-action.is-complete:hover{transform:none}

@media(max-width:620px){.week-detail-card .week-more{margin-top:8px;font-size:10px}.week-game-button{width:100%;justify-content:center}.game-player-modal .reader-header{align-items:center}}

/* A personal, photographic side of Kitty's work. */
.personal-life{padding-top:10px}.personal-lens{display:grid;grid-template-columns:106px minmax(0,1fr) auto;gap:24px;align-items:center;padding:23px 27px;border:1px solid rgba(49,91,114,.28);border-radius:22px;background:linear-gradient(120deg,#edf5f6,#f9f2e9);color:var(--espresso);text-decoration:none;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.personal-lens:hover{border-color:var(--ink-blue);box-shadow:0 15px 31px rgba(49,91,114,.14);transform:translateY(-3px)}.personal-lens:focus-visible{outline:3px solid var(--ink-blue);outline-offset:4px}.lens-visual{position:relative;display:block;width:94px;height:78px;border:5px solid var(--ink-blue);border-radius:17px;background:linear-gradient(145deg,#fffdf9,#dcebed);box-shadow:inset 0 0 0 7px rgba(255,255,255,.65)}.lens-visual:before{position:absolute;top:-16px;left:23px;width:37px;height:16px;border-radius:9px 9px 2px 2px;background:var(--ink-blue);content:""}.lens-visual:after{position:absolute;top:50%;left:50%;width:42px;height:42px;border:5px solid var(--terracotta);border-radius:50%;background:radial-gradient(circle at 40% 35%,#bcd8df 0 11%,#63899a 12% 50%,#315b72 51% 100%);box-shadow:0 0 0 5px #f8f3eb;content:"";transform:translate(-50%,-50%)}.lens-visual i{position:absolute;right:10px;bottom:10px;width:8px;height:8px;border-radius:50%;background:var(--red)}.personal-lens-copy{display:grid;gap:6px}.personal-lens-copy strong{color:var(--ink-blue);font:800 clamp(27px,3vw,42px)/.98 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.personal-lens-copy>span:last-child{max-width:540px;font-size:15px;line-height:1.45}.personal-lens-link{color:var(--ink-blue);font-size:13px;font-weight:800;white-space:nowrap}.personal-lens-link b{font-size:17px}@media(max-width:700px){.personal-lens{grid-template-columns:75px minmax(0,1fr);gap:18px;padding:22px}.lens-visual{width:70px;height:58px;border-width:4px;border-radius:13px}.lens-visual:before{top:-12px;left:17px;width:29px;height:12px}.lens-visual:after{width:31px;height:31px;border-width:4px;box-shadow:0 0 0 4px #f8f3eb}.lens-visual i{right:7px;bottom:7px;width:6px;height:6px}.personal-lens-link{grid-column:2;white-space:normal}.personal-lens-copy strong{font-size:30px}}

/* Five full-row stops make the Summer Camp journey easy to scan and explore. */
.camp-journey .section-heading{max-width:800px}.week-row-list{display:grid;gap:12px;margin-top:29px}.week-row{display:grid;width:100%;grid-template-columns:68px 54px minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 21px;border:1px solid rgba(184,168,154,.92);border-radius:18px;background:var(--paper);color:var(--charcoal);font-family:'DM Sans',sans-serif;text-align:left;cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background .22s ease}.week-row:hover{border-color:var(--ink-blue);box-shadow:0 13px 29px rgba(49,91,114,.13);transform:translateY(-3px)}.week-row:focus-visible{outline:3px solid rgba(49,91,114,.4);outline-offset:3px}.week-row-number{color:var(--terracotta);font:700 12px/1 'DM Mono',monospace;letter-spacing:.09em}.week-row-icon{display:block;width:48px;height:48px;padding:10px;border-radius:15px;background:var(--beige);color:var(--olive)}.week-row-copy{display:grid;gap:4px}.week-row-copy strong{color:var(--espresso);font:800 clamp(21px,2.5vw,29px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.week-row-copy>span{font-size:14px;line-height:1.35}.week-row-cta{display:inline-flex;align-items:center;gap:7px;white-space:nowrap;color:var(--ink-blue);font-size:12px;font-weight:800}.week-row-cta b{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--mist-blue);font-size:15px}.week-row.health{background:linear-gradient(108deg,#fffdf9,#edf5f6)}.week-row.college{background:linear-gradient(108deg,#fffdf9,#f3ece3)}.week-row.culture{background:linear-gradient(108deg,#fffdf9,#f4e7ec)}.week-row.technology{background:linear-gradient(108deg,#fffdf9,#e8eedf)}.week-row.capstone{background:linear-gradient(108deg,#fffdf9,#f4e7ca)}.week-row.culture .week-row-icon{color:var(--terracotta)}.week-row.technology .week-row-icon{color:var(--moss)}.week-row.capstone .week-row-icon{color:#a77237}.week-photo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:21px 0 0}.week-gallery-photo{display:flex;flex-direction:column;min-width:0;margin:0;overflow:hidden;border:1px solid rgba(61,51,43,.17);border-radius:16px;background:#fffdf9;box-shadow:0 9px 20px rgba(61,51,43,.07)}.week-gallery-photo.is-primary{grid-column:span 2}.week-gallery-photo img{display:block;width:100%;height:auto;max-height:300px;object-fit:contain;background:#fffdf9}.week-gallery-photo figcaption{padding:9px 11px 10px;color:var(--espresso);font-size:12px;font-weight:750;line-height:1.3}
@media(max-width:700px){.week-row{grid-template-columns:44px 44px minmax(0,1fr);gap:12px;padding:16px}.week-row-icon{width:42px;height:42px;padding:8px;border-radius:13px}.week-row-copy strong{font-size:22px}.week-row-copy>span{font-size:13px}.week-row-cta{grid-column:3;justify-self:start;margin-top:-4px}.week-photo-gallery{gap:9px}.week-gallery-photo{border-radius:13px}.week-gallery-photo img{max-height:210px}.week-gallery-photo figcaption{padding:8px 9px 9px;font-size:11px}}

/* Dusty pink connection accents. */
.connect-button{border-color:#e69498;background:#e69498;color:#fff}.connect-button:hover{border-color:#c96f78;background:#c96f78;color:#fff;transform:translateY(-1px)}.contact-panel{border-color:#bd6e78;background:#d98e8b;color:var(--espresso);box-shadow:0 16px 30px rgba(169,73,85,.19)}.contact-panel .eyebrow{color:#803d48}.contact-panel h2{color:#743440}.contact-panel p{color:var(--espresso)}.contact-email{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin-top:25px!important;font-size:16px!important;font-weight:800}.contact-email span{color:#803d48;font:700 10px/1 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase}.contact-email a{color:var(--espresso);text-decoration-color:rgba(61,51,43,.45);text-decoration-thickness:1.5px;text-underline-offset:4px}.contact-email a:hover{color:#743440;text-decoration-color:#743440}@media(max-width:620px){.contact-email{font-size:14px!important;overflow-wrap:anywhere}}

/* Studio system: one calm, tactile workspace across every portfolio page. */
:root{--cream:#f6f1eb;--beige:#f0e9df;--taupe:#ddd2c3;--espresso:#4f433c;--charcoal:#74685f;--olive:#8b9773;--moss:#75815f;--terracotta:#d8a7a2;--rose:#d8a7a2;--red:#b97772;--ink-blue:#68839a;--ink-blue-deep:#536e84;--mist-blue:#eef2f3;--paper:#fcfaf7;--line:#ddd2c3;--shadow:0 12px 28px rgba(79,67,60,.07)}
body{background:var(--cream);color:var(--charcoal)}
.sidebar{border-right-color:var(--line);background:rgba(252,250,247,.94);box-shadow:inset -1px 0 rgba(255,255,255,.78)}
.trail-heading:before{background:var(--terracotta)}.trail-heading span,.eyebrow,.card-number,.game-meta,.week-row-number{color:var(--terracotta)}
.side-nav a{border-radius:14px;color:var(--charcoal)}.side-nav a:hover{border-color:var(--line);background:#f6f1eb;color:var(--espresso);box-shadow:none}.side-nav a.active{border-color:rgba(104,131,154,.2);background:var(--ink-blue);box-shadow:0 6px 15px rgba(104,131,154,.15)}.side-icon{background:#f0e9df;color:var(--ink-blue)}.trail-guide{border-color:var(--line);background:#f4eee6}.sidebar-footer{border-top-color:var(--line)}.sidebar-footer a{color:var(--ink-blue)}
.page-inner{width:min(1140px,calc(100% - 80px));padding-top:78px;padding-bottom:72px}.section{padding:104px 0}.section.alt{margin-right:-40px;margin-left:-40px;padding-right:40px;padding-left:40px;background:#f1ebe3;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.display,.page-header .display,.section-heading h2,.card h3,.game-card h2,.support-card h2,.book h2,.feature-copy h2,.feature-aside h2,.contact-panel h2,.modal-panel h2,.recap-copy h3,.animal-care-copy h2,.vanguards-copy h2{color:var(--espresso)}
.display em,.hero-greeting em{color:var(--olive)}.intro,.lede,.section-heading p,.feature-copy p,.feature-aside p,.card p,.game-card p,.support-card p,.recap-copy p,.modal-panel>p{color:var(--charcoal)}
.button{padding:12px 18px;border-radius:999px}.button.primary,.book-link,.week-game-button,.recap-open{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff}.button.primary:hover,.book-link:hover,.week-game-button:hover,.recap-open:hover{border-color:var(--ink-blue-deep);background:var(--ink-blue-deep);color:#fff;box-shadow:0 7px 14px rgba(104,131,154,.16);transform:translateY(-2px)}.button.blue{background:var(--ink-blue)}.connect-button{border-color:var(--terracotta);background:var(--terracotta);color:var(--espresso)}.connect-button:hover{border-color:#c98e89;background:#c98e89;color:var(--espresso);box-shadow:0 7px 14px rgba(216,167,162,.2)}
.hero-image{border-color:var(--line);border-radius:28px;box-shadow:0 14px 30px rgba(79,67,60,.07)}.stats{border-color:var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)}.stat{padding:22px;border-right-color:var(--line)}.stat strong{color:var(--espresso)}
.card,.game-card,.support-card,.book,.theme,.week-row,.recap-spotlight,.personal-lens,.app-spotlight,.stem-series-card,.animal-care,.vanguards-feature,.feature-copy,.feature-aside,.modal-block,.week-gallery-photo,.reader-panel,.reader-header,.bloom-lab,.summer-game-link{border-color:var(--line)!important;border-radius:24px!important;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)!important;box-shadow:none!important;color:var(--charcoal)}
.card.summer,.card.games,.card.books,.card.educator,.game-card.culture,.game-card.tech,.game-card.space,.game-card.rover,.game-card.social,.game-card.relationship,.game-card.wealth,.game-card.english,.week-row.health,.week-row.college,.week-row.culture,.week-row.technology,.week-row.capstone,.stem-series-water,.stem-series-sunflower,.stem-series-watercycle{background:linear-gradient(135deg,#fcfaf7,#f8f5f0)!important}
.card{min-height:290px;padding:30px}.card h3{margin-top:52px}.card .link-label,.game-card small,.week-detail-card .week-more{color:var(--ink-blue)}.card-icon,.support-icon,.book-icon{color:var(--olive)}.card.books .card-icon,.game-card.culture .game-icon{color:var(--terracotta)}.card.educator .card-icon,.game-card.tech .game-icon{color:var(--moss)}.game-card.space .game-icon{color:var(--terracotta)}.game-card.rover .game-icon{color:var(--ink-blue)}.game-card.social .game-icon,.game-card.relationship .game-icon{color:var(--red)}
.card:hover,.game-card:hover,.support-card:hover,.week-row:hover,.personal-lens:hover,.library-book:hover,.summer-game-link:hover{border-color:#cbbbab!important;box-shadow:0 10px 24px rgba(79,67,60,.08)!important;transform:translateY(-2px)}
.feature-banner{gap:18px;margin-top:42px}.feature-copy,.feature-aside{padding:32px}.feature-aside{color:var(--charcoal)}.feature-aside h2{color:var(--espresso)}.feature-aside p{color:var(--charcoal)}.feature-aside .eyebrow{color:var(--terracotta)}.pill{border:1px solid var(--line);background:#f4eee6;color:var(--charcoal)}.feature-aside .pill{background:#f4eee6;color:var(--charcoal)}
.game-grid,.card-grid,.support-grid{gap:20px;margin-top:40px}.game-card{min-height:260px;padding:26px}.game-card h2{margin-top:30px}.game-meta{color:var(--terracotta)}
.support-grid--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.support-grid--wide .support-card{display:flex;min-height:400px;flex-direction:column;padding:32px}.support-grid--wide .support-card .eyebrow{margin-top:18px}.support-grid--wide .support-card ul{margin-top:20px;font-size:14px;line-height:1.52}.support-grid--wide .support-card li+li{margin-top:9px}.support-outcome,.support-credential{margin-top:auto!important;padding-top:20px;border-top:1px solid var(--line);color:var(--ink-blue)!important;font-size:13px!important;font-weight:700}.support-credential{display:grid;gap:3px}.support-credential strong{color:var(--espresso);font-size:14px}.support-credential span{color:var(--ink-blue);font:600 11px/1.35 'DM Mono',monospace;letter-spacing:.04em;text-transform:uppercase}
.week-row{gap:20px;padding:22px 24px}.week-row:hover{border-color:#cbbbab;box-shadow:0 10px 24px rgba(79,67,60,.08)}.week-row-icon{background:#f0e9df;color:var(--olive)}.week-row-cta{color:var(--ink-blue)}.week-row-cta b{background:var(--mist-blue)}.quote{border-left-color:var(--terracotta);background:var(--paper);color:var(--espresso)}
.recap-spotlight{padding:30px}.recap-cover img{border-color:var(--line);box-shadow:4px 6px 0 rgba(79,67,60,.08),0 12px 22px rgba(79,67,60,.08)}.recap-open{margin-top:20px}
.personal-lens{border-color:var(--line)!important}.personal-lens-copy strong,.personal-lens-link{color:var(--espresso)}.lens-visual{border-color:var(--ink-blue);background:#f7f2eb}.lens-visual:after{box-shadow:0 0 0 5px #f7f2eb}.personal-lens:hover{border-color:#cbbbab!important}
.bloom-lab{margin-top:58px;padding:38px 34px}.bloom-scene{border-color:var(--line);background:var(--cream)}
.contact-panel{border-color:#c8908d;background:var(--terracotta);box-shadow:0 12px 26px rgba(185,119,114,.14)}.contact-panel .eyebrow{color:#774944}.contact-panel h2{color:var(--espresso)}.contact-panel p,.contact-email a{color:var(--espresso)}.contact-email span{color:#774944}
.contact-links{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:25px}.contact-links .contact-email,.contact-linkedin{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 12px;margin:0!important;font-size:16px!important;font-weight:800}.contact-linkedin span{color:#774944;font:700 10px/1 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase}.contact-linkedin a{color:var(--espresso);text-decoration-color:rgba(61,51,43,.45);text-decoration-thickness:1.5px;text-underline-offset:4px}.contact-linkedin a:hover{color:#743440;text-decoration-color:#743440}@media(max-width:620px){.contact-links .contact-email,.contact-linkedin{font-size:14px!important;overflow-wrap:anywhere}}
.modal-panel,.reader-panel{border-color:var(--line);border-radius:26px;background:var(--paper);box-shadow:0 18px 44px rgba(79,67,60,.16)}.modal-close,.reader-close{border-color:var(--line);background:var(--paper);color:var(--espresso)}.modal-block{padding:20px}.reader-header{border-bottom-color:var(--line)}
.library-toolbar h2{color:var(--espresso)}.library-cover-image{border-color:var(--line);box-shadow:4px 6px 0 rgba(79,67,60,.08),0 11px 20px rgba(79,67,60,.09)}.library-book:hover .library-cover-image{box-shadow:5px 8px 0 rgba(79,67,60,.08),0 15px 24px rgba(79,67,60,.12)}
@media(max-width:920px){.page-inner{width:min(100% - 48px,1140px);padding-top:62px}.section.alt{margin-right:-24px;margin-left:-24px;padding-right:24px;padding-left:24px}}
@media(max-width:620px){.page-inner{width:min(100% - 32px,1140px);padding-top:44px;padding-bottom:48px}.section{padding:72px 0}.section.alt{margin-right:-16px;margin-left:-16px;padding-right:16px;padding-left:16px}.feature-copy,.feature-aside,.card,.game-card,.support-card,.recap-spotlight{padding:24px}.card{min-height:252px}.stats{border-radius:20px}.stat{padding:18px}.week-row{padding:18px}.bloom-lab{padding:27px 18px}}

/* A closer portrait of Kitty's studio: less empty wall, more of the workbench. */
.feature-banner--single{grid-template-columns:minmax(0,1fr)}
.hero-image{aspect-ratio:3/1}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center center}@media(max-width:620px){.hero-image{aspect-ratio:1.72/1}.hero-image img{object-position:center center}}

/* Homepage actions share one clear interaction language. */
.button.blue,.connect-button{color:#fff}.button.blue:hover,.connect-button:hover{color:var(--espresso)}

/* A compact puzzle strip: user-provided visual, with each portfolio area written directly on its piece. */
.studio-puzzle{position:relative;width:min(100%,790px);margin:42px auto 0;aspect-ratio:4.8/1;overflow:hidden}.studio-puzzle>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 50%}.puzzle-strip-links{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;padding:0 5%;margin:0}.puzzle-strip-links a{display:grid;align-content:center;gap:5px;height:100%;padding:0 10px;color:var(--espresso);text-align:center;text-decoration:none;text-shadow:0 1px 0 rgba(255,255,255,.72);transition:color .2s ease,transform .2s ease}.puzzle-strip-links strong{display:block;font:800 clamp(14px,2vw,23px)/1.05 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.puzzle-strip-links small{display:block;color:var(--charcoal);font:700 clamp(8px,1.15vw,12px)/1.22 'DM Sans',ui-sans-serif,sans-serif;letter-spacing:-.01em}.puzzle-strip-links a:hover{color:var(--ink-blue);transform:translateY(-2px)}.puzzle-strip-links a:hover small{color:var(--ink-blue)}.puzzle-strip-links a:focus-visible{outline:2px solid var(--ink-blue);outline-offset:-7px;border-radius:12px}@media(max-width:620px){.studio-puzzle{width:calc(100% + 4px);margin-top:34px;margin-left:-2px;aspect-ratio:4.35/1}.puzzle-strip-links{padding:0 4.5%}.puzzle-strip-links a{gap:3px;padding:0 4px}.puzzle-strip-links strong{font-size:clamp(10px,3.2vw,15px)}.puzzle-strip-links small{font-size:clamp(6.5px,1.82vw,9px);line-height:1.18}}

/* Teaching philosophy is a small sunflower surprise, not a homepage section. */
.philosophy-sunflower{position:fixed;right:24px;bottom:22px;z-index:60;width:70px;height:78px;padding:0;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 7px 10px rgba(90,74,66,.14));isolation:isolate;transition:transform .55s cubic-bezier(.22,1,.36,1),filter .55s ease}.philosophy-sunflower img{display:block;width:100%;height:100%;object-fit:contain;animation:philosophy-sway 4.8s ease-in-out infinite;transform-origin:50% 88%}.philosophy-sunflower:hover img{animation:philosophy-petal-wiggle .7s ease-in-out}.philosophy-sunflower:hover{filter:drop-shadow(0 10px 14px rgba(90,74,66,.18));transform:scale(1.11)}.philosophy-sunflower:active{transform:scale(.96)}.philosophy-sunflower:focus-visible{outline:3px solid var(--ink-blue);outline-offset:5px;border-radius:18px}.philosophy-face{position:absolute;top:23px;left:21px;z-index:2;width:28px;height:20px}.philosophy-face i{position:absolute;top:3px;width:4px;height:5px;border-radius:50%;background:#5a4a42;animation:philosophy-blink 5.4s ease-in-out infinite}.philosophy-face i:first-child{left:4px}.philosophy-face i:nth-child(2){right:4px;animation-delay:.05s}.philosophy-face b{position:absolute;top:10px;left:10px;width:8px;height:4px;border-bottom:1.5px solid #5a4a42;border-radius:0 0 8px 8px}.philosophy-tooltip{position:absolute;right:7px;bottom:82px;min-width:max-content;padding:8px 11px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--espresso);font:800 12px/1 'DM Sans',sans-serif;opacity:0;pointer-events:none;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease;box-shadow:0 8px 18px rgba(79,67,60,.09)}.philosophy-sunflower:hover .philosophy-tooltip,.philosophy-sunflower:focus-visible .philosophy-tooltip{opacity:1;transform:translateY(0)}.philosophy-sparkle,.philosophy-celebration{position:absolute;width:8px;height:8px;background:var(--warm-sand,#dcc5a1);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);animation:philosophy-twinkle 2.8s ease-in-out infinite}.philosophy-sunflower .sparkle-a{top:16px;left:3px}.philosophy-sunflower .sparkle-b{right:2px;top:28px;animation-delay:1.2s}.philosophy-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:rgba(79,67,60,.28);opacity:0;pointer-events:none;transition:opacity .65s ease}.philosophy-modal.is-open{opacity:1;pointer-events:auto}.philosophy-panel{position:relative;width:min(100%,760px);max-height:min(800px,calc(100vh - 48px));overflow:auto;padding:45px 48px 40px;border:1px solid var(--line);border-radius:30px;background:#f7f3ed;color:var(--charcoal);box-shadow:0 24px 65px rgba(79,67,60,.22);opacity:0;transform:translateY(16px) scale(.97);transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.philosophy-modal.is-open .philosophy-panel{opacity:1;transform:translateY(0) scale(1)}.philosophy-close{position:absolute;top:17px;right:17px;display:grid;width:36px;height:36px;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--espresso);font:400 26px/1 Arial,sans-serif;cursor:pointer;transition:background .2s ease,transform .2s ease}.philosophy-close:hover{background:#efe5dc;transform:rotate(5deg)}.philosophy-close:focus-visible,.philosophy-actions button:focus-visible{outline:3px solid var(--ink-blue);outline-offset:3px}.philosophy-header{max-width:590px;margin:0 auto;text-align:center}.philosophy-header h2{margin:9px 0 11px;color:var(--espresso);font:800 clamp(34px,5vw,54px)/.98 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.06em}.philosophy-header p{margin:0;color:var(--charcoal);font-size:16px;line-height:1.55}.philosophy-growth{max-width:540px;margin:22px auto 0;text-align:center}.philosophy-plant{position:relative;height:286px;overflow:hidden;border:1px solid var(--line);border-radius:22px;background:linear-gradient(145deg,#fcfaf7,#f2eee7);isolation:isolate}.philosophy-plant>img{position:absolute;top:50%;left:50%;width:auto;height:calc(100% - 8px);max-width:94%;object-fit:contain;opacity:0;mix-blend-mode:multiply;transform:translate(-50%,-50%) scale(.9);transition:opacity .7s ease,transform .75s cubic-bezier(.22,1,.36,1)}.philosophy-growth[data-stage="1"] [data-philosophy-visual="seed"],.philosophy-growth[data-stage="2"] [data-philosophy-visual="sprout"],.philosophy-growth[data-stage="3"] [data-philosophy-visual="grow"],.philosophy-growth[data-stage="4"] [data-philosophy-visual="grow"],.philosophy-growth[data-stage="5"] [data-philosophy-visual="bloom"]{opacity:1;transform:translate(-50%,-50%) scale(1)}.philosophy-growth[data-stage="1"] [data-philosophy-visual="seed"]{animation:philosophy-seed-wiggle 3s ease-in-out infinite}.philosophy-growth[data-stage="4"] [data-philosophy-visual="grow"]{transform:translate(-50%,-50%) scale(1.04)}.philosophy-bud{position:absolute;z-index:3;top:32px;left:50%;width:28px;height:31px;opacity:0;border-radius:50% 50% 45% 45%;background:linear-gradient(145deg,#dcc5a1,#d8a5a0);transform:translateX(-50%) scale(.2);transition:opacity .6s ease,transform .7s cubic-bezier(.22,1,.36,1)}.philosophy-growth[data-stage="4"] .philosophy-bud{opacity:1;transform:translateX(-50%) scale(1)}.philosophy-growth[data-stage="5"] [data-philosophy-visual="bloom"]{animation:philosophy-bloom .85s cubic-bezier(.22,1,.36,1) both}.philosophy-butterfly{position:absolute;z-index:4;top:36%;left:-12%;width:12px;height:12px;opacity:0;border-radius:75% 20% 75% 20%;background:var(--blush,#d8a5a0);transform:rotate(34deg)}.philosophy-butterfly:after{position:absolute;top:5px;left:8px;width:12px;height:12px;border-radius:20% 75% 20% 75%;background:var(--dusty-blue,#6f8faf);content:""}.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:philosophy-butterfly 4.4s ease-in-out .35s infinite}.philosophy-celebration{z-index:3;top:32%;left:25%;opacity:0}.philosophy-celebration.sparkle-b{top:46%;left:auto;right:23%;animation-delay:.55s}.philosophy-growth[data-stage="5"] .philosophy-celebration{animation:philosophy-celebrate 1.5s ease-out .25s infinite}.philosophy-message{min-height:24px;margin:15px 0;color:var(--moss);font-size:14px;font-weight:800}.philosophy-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.philosophy-actions button{display:inline-flex;align-items:center;gap:7px;padding:10px 13px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--espresso);font:800 12px/1.1 'DM Sans',sans-serif;cursor:pointer;transition:background .3s ease,border-color .3s ease,color .3s ease,transform .3s ease}.philosophy-actions button:hover{border-color:var(--sage,#9aa27c);background:#edf0e7;color:var(--espresso);transform:translateY(-2px)}.philosophy-actions img{width:16px;height:16px;object-fit:contain}.philosophy-final{max-width:460px;margin:18px auto 0;color:var(--charcoal);font-size:14px;line-height:1.5}.philosophy-final[hidden]{display:none}.philosophy-final p{margin:0 0 7px;color:var(--espresso);font:800 21px/1.1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.04em}.philosophy-final span{display:block}.philosophy-final a{display:inline-flex;margin-top:17px}body.philosophy-open{overflow:hidden}@keyframes philosophy-sway{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}@keyframes philosophy-petal-wiggle{0%,100%{transform:rotate(0)}35%{transform:rotate(-4deg)}70%{transform:rotate(4deg)}}@keyframes philosophy-blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.15)}}@keyframes philosophy-twinkle{0%,100%{opacity:.2;transform:scale(.55)}50%{opacity:.9;transform:scale(1)}}@keyframes philosophy-seed-wiggle{0%,100%{transform:translate(-50%,-50%) scale(1) rotate(0)}35%{transform:translate(-50%,-50%) scale(1) rotate(-1deg)}70%{transform:translate(-50%,-50%) scale(1) rotate(1deg)}}@keyframes philosophy-bloom{0%{opacity:0;transform:translate(-50%,-50%) scale(.65) rotate(-2deg)}100%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes philosophy-celebrate{0%,100%{opacity:0;transform:scale(.3)}40%{opacity:1;transform:scale(1)}70%{opacity:.4;transform:scale(.7)}}@keyframes philosophy-butterfly{0%{opacity:0;transform:translate(0,0) rotate(25deg)}12%{opacity:1}55%{opacity:1;transform:translate(370px,-30px) rotate(65deg)}100%{opacity:0;transform:translate(495px,16px) rotate(20deg)}}@media(max-width:620px){.philosophy-sunflower{right:14px;bottom:15px;width:62px;height:70px}.philosophy-face{top:20px;left:18px}.philosophy-panel{max-height:calc(100vh - 24px);padding:38px 18px 25px;border-radius:25px}.philosophy-header h2{font-size:36px}.philosophy-header p{font-size:14px}.philosophy-plant{height:244px}.philosophy-actions{gap:6px}.philosophy-actions button{padding:9px 10px;font-size:11px}.philosophy-actions img{width:14px;height:14px}}@media(prefers-reduced-motion:reduce){.philosophy-sunflower img,.philosophy-sparkle,.philosophy-celebration,.philosophy-face i,.philosophy-growth[data-stage="1"] [data-philosophy-visual="seed"],.philosophy-growth[data-stage="5"] [data-philosophy-visual="bloom"],.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:none!important}.philosophy-modal,.philosophy-panel,.philosophy-plant>img{transition:none!important}}

/* The teaching-philosophy stages sit directly on the modal: clean, clear, and background-free. */
.philosophy-plant{overflow:visible;border:0;border-radius:0;background:transparent}
.philosophy-plant>img{mix-blend-mode:normal}
.philosophy-bud{display:none}

/* Small, clean wayfinding illustrations sit directly beside each week's label. */
.week-row{grid-template-columns:40px 92px minmax(0,1fr) auto;gap:10px;min-height:142px}.camp-journey .week-row:hover{transform:none!important}.week-row-visual{display:block;width:92px;height:78px;margin-left:-20px;background-image:url('assets/summer-camp-week-illustrations.png');background-repeat:no-repeat;background-size:600px auto;filter:none;mix-blend-mode:darken;transform:none!important;transition:none!important}.week-visual-health{background-position:-80px -13px}.week-visual-college{background-position:-80px -116px}.week-visual-culture{background-position:-82px -214px}.week-visual-technology{background-position:-80px -307px}.week-visual-capstone{background-position:-80px -396px}
@media(max-width:700px){.week-row{grid-template-columns:32px 92px minmax(0,1fr);gap:8px;min-height:136px;padding:16px}.week-row-visual{width:92px;height:78px;margin-left:-20px;background-size:600px auto}.week-visual-health{background-position:-80px -13px}.week-visual-college{background-position:-80px -116px}.week-visual-culture{background-position:-82px -214px}.week-visual-technology{background-position:-80px -307px}.week-visual-capstone{background-position:-80px -396px}.week-row-cta{grid-column:3}.week-row-icon{display:none}}

/* Compact game shelf: screenshots support the work instead of taking over the page. */
.game-showcase-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.showcase-game-media{aspect-ratio:16/9}.showcase-game-content{min-height:150px;padding:15px 16px 17px}.showcase-game-category{margin-bottom:8px;font-size:9px}.showcase-game-content h3{font-size:clamp(20px,2vw,24px)}.showcase-game-content p{margin-top:7px;font-size:13px;line-height:1.38}.showcase-game-link{padding-top:12px;font-size:12px}.showcase-game-badge{top:9px;left:9px;padding:4px 7px;font-size:8px}.game-archive-grid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:920px){.game-showcase-grid,.game-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.game-showcase-grid,.game-archive-grid{grid-template-columns:1fr}.showcase-game-content{min-height:156px;padding:17px}.showcase-game-media{aspect-ratio:16/10}}

/* A compact rail keeps the studio navigation available while giving the work more room. */
@media(min-width:921px){.sidebar,.page{transition:width .32s cubic-bezier(.22,1,.36,1),margin-left .32s cubic-bezier(.22,1,.36,1),padding .32s cubic-bezier(.22,1,.36,1)}.sidebar-toggle{position:absolute;top:50%;right:-17px;z-index:20;display:grid;width:34px;height:34px;place-items:center;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--espresso);box-shadow:0 7px 16px rgba(79,67,60,.1);cursor:pointer;transform:translateY(-50%);transition:background .2s ease,box-shadow .2s ease,transform .2s ease}.sidebar-toggle:hover{background:#f6f1eb;box-shadow:0 9px 20px rgba(79,67,60,.14);transform:translateY(-50%) scale(1.06)}.sidebar-toggle:focus-visible{outline:3px solid var(--ink-blue);outline-offset:3px}.sidebar-toggle span{display:block;width:8px;height:8px;border-bottom:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg);transition:transform .28s ease}.sidebar.is-collapsed{width:84px;padding:22px 11px 16px}.sidebar.is-collapsed .sidebar-toggle span{transform:rotate(225deg)}.sidebar.is-collapsed .brand{justify-content:center;margin:0 0 18px}.sidebar.is-collapsed .brand img{width:46px;height:46px}.sidebar.is-collapsed .brand-copy,.sidebar.is-collapsed .trail-heading{display:none}.sidebar.is-collapsed .side-nav{gap:10px;padding:0}.sidebar.is-collapsed .side-nav:before{display:none}.sidebar.is-collapsed .side-nav a{min-height:48px;justify-content:center;padding:8px;border-radius:14px}.sidebar.is-collapsed .side-icon{flex-basis:30px;width:30px;height:30px;padding:6px}.sidebar.is-collapsed .nav-label{display:none}.sidebar.is-collapsed .sidebar-footer{display:none}body.sidebar-collapsed .page{margin-left:84px}}
@media(max-width:920px){.sidebar-toggle{display:none}body.sidebar-collapsed .page{margin-left:0}}

/* The puzzle reads as one connected system: every label shares the same type baseline. */
.studio-puzzle{width:min(100%,790px)}
.puzzle-strip-links{align-items:stretch;padding:0 5.4%}
.puzzle-strip-links a{display:grid;grid-template-rows:2.18em 2.65em;align-content:center;align-items:start;gap:5px;min-width:0;padding:0 10px;overflow:hidden}
.puzzle-strip-links strong{display:block;align-self:start;max-width:100%;margin:0;color:inherit;font-size:clamp(14px,1.75vw,21px);line-height:1.02;overflow-wrap:normal;word-break:normal}
.puzzle-strip-links small{display:block;align-self:start;max-width:100%;margin:0;font-size:clamp(8px,1.05vw,11px);line-height:1.16;overflow-wrap:normal;word-break:normal}
@media(max-width:620px){.studio-puzzle{aspect-ratio:4.35/1}.puzzle-strip-links{padding:0 5.3%}.puzzle-strip-links a{grid-template-rows:2.18em 2.6em;gap:3px;padding:0 5px}.puzzle-strip-links strong{font-size:clamp(10px,2.25vw,14px);line-height:1.03}.puzzle-strip-links small{font-size:clamp(6.5px,1.55vw,9px);line-height:1.16}}

/* The four pieces are the main way to enter Kitty's practice, not a decorative strip. */
.studio-puzzle-grid{width:min(100%,880px);margin:38px auto 0;aspect-ratio:1;overflow:visible}.studio-puzzle-grid>img{width:100%;height:100%;object-fit:contain}.puzzle-grid-links{position:absolute;inset:4.5%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));margin:0}.puzzle-grid-links a{display:grid;grid-template-rows:2.12em minmax(2.8em,auto) auto;align-content:center;align-items:start;gap:11px;min-width:0;padding:17% 16%;color:var(--espresso);text-align:left;text-decoration:none;text-shadow:0 1px 0 rgba(255,255,255,.68);transition:color .24s ease,transform .24s ease}.puzzle-grid-links strong{display:block;max-width:100%;font:800 clamp(24px,3vw,34px)/1.06 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}.puzzle-grid-links small{display:block;max-width:20ch;color:var(--charcoal);font:600 clamp(13px,1.65vw,17px)/1.38 'DM Sans',ui-sans-serif,sans-serif}.puzzle-grid-links span{display:inline-flex;align-items:center;gap:5px;align-self:start;color:var(--ink-blue);font:800 clamp(11px,1.35vw,14px)/1.1 'DM Sans',ui-sans-serif,sans-serif}.puzzle-grid-links b{font-size:1.15em;transition:transform .24s ease}.puzzle-grid-links a:hover{color:var(--ink-blue);transform:translateY(-3px)}.puzzle-grid-links a:hover small{color:var(--espresso)}.puzzle-grid-links a:hover b{transform:translateX(3px)}.puzzle-grid-links a:focus-visible{outline:3px solid var(--ink-blue);outline-offset:-10px;border-radius:26px}.trail-heading strong{font:800 21px/1.04 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}
@media(max-width:620px){.studio-puzzle-grid{width:calc(100% + 6px);margin:30px -3px 0;aspect-ratio:1}.puzzle-grid-links{inset:4.6%}.puzzle-grid-links a{grid-template-rows:2.15em minmax(3.15em,auto) auto;gap:6px;padding:15% 14%}.puzzle-grid-links strong{font-size:clamp(15px,4.25vw,23px);line-height:1.04}.puzzle-grid-links small{font-size:clamp(9px,2.35vw,12px);line-height:1.3}.puzzle-grid-links span{font-size:clamp(8px,2vw,10px)}}
@media(prefers-reduced-motion:reduce){.puzzle-grid-links a,.puzzle-grid-links b{transition:none!important}.puzzle-grid-links a:hover,.puzzle-grid-links a:hover b{transform:none!important}}

/* Keep the practice navigation close to Kitty's studio banner and safely within each piece. */
body.home-page .hero-image{margin-bottom:0}body.home-page #featured{padding:28px 0 36px}body.home-page .personal-life{padding:0 0 36px}body.home-page #contact{padding:0}.puzzle-grid-links a{grid-template-rows:minmax(3.1em,auto) minmax(3.3em,auto) auto;gap:10px;padding:13% 15%;overflow:hidden}.puzzle-grid-links strong{line-height:1.08}.puzzle-grid-links small{max-width:18ch;line-height:1.32}.puzzle-grid-links a:nth-child(4) strong{font-size:clamp(22px,2.72vw,31px)}
@media(max-width:620px){body.home-page #featured{padding:25px 0 28px}body.home-page .personal-life{padding:0 0 28px}body.home-page #contact{padding:0}.puzzle-grid-links a{grid-template-rows:minmax(3.12em,auto) minmax(3.18em,auto) auto;gap:6px;padding:12% 13%}.puzzle-grid-links small{max-width:17ch;line-height:1.25}.puzzle-grid-links a:nth-child(4) strong{font-size:clamp(14px,3.8vw,20px)}}

/* The right-hand pieces have a connector on their left edge, so their copy starts farther inward. */
.puzzle-grid-links a:nth-child(2),.puzzle-grid-links a:nth-child(4){padding-left:26%;padding-right:12%}.puzzle-grid-links a:nth-child(2) small,.puzzle-grid-links a:nth-child(4) small{max-width:16ch}
@media(max-width:620px){.puzzle-grid-links a:nth-child(2),.puzzle-grid-links a:nth-child(4){padding-left:25%;padding-right:11%}.puzzle-grid-links a:nth-child(2) small,.puzzle-grid-links a:nth-child(4) small{max-width:15ch}}

/* A slightly smaller version keeps the navigation inviting without overpowering the page. */
.studio-puzzle-grid{width:min(92%,820px)}.puzzle-grid-links strong{font-size:clamp(22px,2.6vw,30px)}.puzzle-grid-links small{font-size:clamp(12px,1.45vw,16px)}.puzzle-grid-links span{font-size:clamp(10px,1.2vw,13px)}.puzzle-grid-links a:nth-child(4) strong{font-size:clamp(20px,2.38vw,28px)}
@media(max-width:620px){.studio-puzzle-grid{width:92%;margin:30px auto 0}.puzzle-grid-links strong{font-size:clamp(14px,3.9vw,21px)}.puzzle-grid-links small{font-size:clamp(8.5px,2.15vw,11px)}.puzzle-grid-links span{font-size:clamp(7.5px,1.8vw,9.5px)}.puzzle-grid-links a:nth-child(4) strong{font-size:clamp(13px,3.45vw,19px)}}

/* Every game cover reaches the card edge; the artwork, not a pale frame, leads the gallery. */
body .showcase-game-media{background-color:#101827;background-position:center;background-repeat:no-repeat;background-size:cover}body .showcase-game-media img{display:none}@media(prefers-reduced-motion:reduce){body .showcase-game-card:hover .showcase-game-media img{transform:none!important}}
/* Each cover file is pre-trimmed to its artwork, so all cards use one consistent full-bleed treatment. */

/* The sidebar makes Kitty's actual address visible while keeping it one click from a new email. */
.sidebar-footer a{max-width:100%;overflow-wrap:anywhere;font-size:12px;line-height:1.35}

/* Botley case study: survey evidence shown as a calm, readable teaching-impact snapshot. */
.botley-case-study{margin:38px 0 0;padding:32px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)}.botley-impact-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px}.botley-impact-heading>div{max-width:790px}.botley-impact-heading h2{margin:8px 0 11px;color:var(--espresso);font:800 clamp(31px,3.3vw,42px)/1.03 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}.botley-title-line,.botley-title-nowrap{display:block;white-space:nowrap}.botley-topic-pills{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 16px}.botley-topic-pills .pill{margin:0;padding:6px 10px;border-color:var(--line);background:#f8f2eb;color:var(--espresso);font-size:11px}.botley-impact-heading p{margin:0;color:var(--charcoal);font-size:16px;line-height:1.52}.botley-source{flex:0 0 auto;padding:10px 0 10px 16px;border-left:2px solid var(--dusty-pink,var(--terracotta));color:var(--secondary-text,var(--charcoal));font:700 10px/1.45 'DM Mono',monospace;letter-spacing:.07em;text-transform:uppercase}.botley-source strong{display:block;color:var(--espresso);font-size:11px;letter-spacing:.03em}.botley-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.botley-stat-grid article{min-width:0;padding:20px 17px 21px;border-right:1px solid var(--line)}.botley-stat-grid article:first-child{padding-left:0}.botley-stat-grid article:last-child{padding-right:0;border-right:0}.botley-stat-grid strong{display:block;margin-bottom:7px;color:var(--ink-blue);font:800 clamp(26px,3vw,38px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.06em}.botley-stat-grid span{display:block;color:var(--charcoal);font-size:13px;line-height:1.35}.botley-findings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.botley-findings article{padding:20px;border:1px solid var(--line);border-radius:18px;background:rgba(252,250,247,.7)}.botley-findings h3{margin:8px 0;color:var(--espresso);font:800 21px/1.08 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.botley-findings p{margin:0;color:var(--charcoal);font-size:14px;line-height:1.52}@media(max-width:820px){.botley-case-study{margin-top:28px;padding:24px}.botley-impact-heading{align-items:flex-start;flex-direction:column;gap:12px}.botley-source{padding:8px 0 8px 13px}.botley-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.botley-stat-grid article{padding:17px;border-bottom:1px solid var(--line)}.botley-stat-grid article:nth-child(2){border-right:0}.botley-stat-grid article:nth-child(3),.botley-stat-grid article:nth-child(4){border-bottom:0}.botley-stat-grid article:nth-child(3){padding-left:0}.botley-findings{grid-template-columns:1fr;gap:12px}}@media(max-width:430px){.botley-case-study{padding:21px 18px}.botley-title-line,.botley-title-nowrap{white-space:normal}.botley-stat-grid{grid-template-columns:1fr}.botley-stat-grid article,.botley-stat-grid article:nth-child(2){padding:16px 0;border-right:0;border-bottom:1px solid var(--line)}.botley-stat-grid article:last-child{border-bottom:0}.botley-stat-grid strong{font-size:32px}}

.botley-impact-heading>div{max-width:850px}.botley-impact-heading h2{font:800 clamp(31px,3.1vw,38px)/1.03 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif}

/* The curriculum story reads as one continuous journey, with less empty space between its connected parts. */
.botley-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.botley-gallery figure{min-width:0;overflow:hidden;margin:0;border:1px solid var(--line);border-radius:18px;background:#fcfaf7}.botley-gallery img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--beige)}.botley-gallery figcaption{min-height:58px;padding:11px 13px;color:var(--charcoal);font-size:12px;font-weight:700;line-height:1.38}.botley-image-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 13px}.botley-image-tags .pill{margin:0;padding:5px 8px;font-size:10px;line-height:1.2}.gallery-label{display:block;margin-bottom:5px;color:var(--terracotta);font:700 9px/1.2 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase}.botley-gallery figure:nth-child(2) img{object-position:center 38%}.botley-gallery figure:nth-child(3) img{object-position:center 43%}@media(max-width:760px){.botley-gallery{grid-template-columns:1fr;gap:12px}.botley-gallery figcaption{min-height:0}}

/* The curriculum story reads as one continuous journey, with less empty space between its connected parts. */
.curriculum-page .section{padding:64px 0}.curriculum-page .camp-journey{padding-top:70px;padding-bottom:54px}.curriculum-page .camp-recap{padding-top:54px;padding-bottom:58px}.curriculum-page .camp-recap .recap-spotlight{margin-top:24px}.curriculum-page .section.alt{margin-right:0;margin-left:0;padding:64px 0}@media(max-width:620px){.curriculum-page .section{padding:50px 0}.curriculum-page .camp-journey{padding-top:54px;padding-bottom:42px}.curriculum-page .camp-recap{padding-top:42px;padding-bottom:48px}.curriculum-page .section.alt{margin-right:0;margin-left:0;padding:52px 0}}

/* Instructional videos have their own quiet feature so the book shelves remain cover-first. */
.video-series{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:center;gap:34px;margin:55px 0 24px;padding:30px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)}.video-series-copy h2{margin:9px 0 12px;color:var(--espresso);font:800 clamp(27px,3.4vw,40px)/1.04 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.052em}.video-series-copy p{max-width:520px;margin:0;color:var(--charcoal);font-size:15px;line-height:1.55}.video-series-copy .button{margin-top:20px}.video-series-preview{position:relative;display:block;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:#f3eee7;box-shadow:0 8px 18px rgba(79,67,60,.08);transition:transform .24s ease,box-shadow .24s ease}.video-series-preview img{display:block;width:100%;height:auto}.video-play-mark{position:absolute;top:50%;left:50%;display:grid;width:48px;height:48px;place-items:center;border:1px solid rgba(252,250,247,.82);border-radius:50%;background:rgba(79,67,60,.86);box-shadow:0 5px 12px rgba(79,67,60,.18);transform:translate(-50%,-50%);transition:transform .24s ease,background .24s ease}.video-play-mark svg{width:22px;height:22px;fill:#fff;transform:translateX(1px)}.video-series-preview:hover{box-shadow:0 12px 24px rgba(79,67,60,.13);transform:translateY(-2px)}.video-series-preview:hover .video-play-mark{background:var(--ink-blue);transform:translate(-50%,-50%) scale(1.06)}.video-series-preview:focus-visible{outline:3px solid var(--ink-blue);outline-offset:4px}@media(max-width:720px){.video-series{grid-template-columns:1fr;gap:23px;margin-top:42px;padding:24px}.video-series-copy p{font-size:14px}.video-series-preview{max-width:620px}}

/* The fourth nurturing action uses a quiet clock mark drawn in the same visual language as the other controls. */
.philosophy-time-icon{position:relative;display:inline-block;width:16px;height:16px;flex:0 0 16px;border:2px solid var(--sage,#9aa27c);border-radius:50%}.philosophy-time-icon:before,.philosophy-time-icon:after{position:absolute;left:50%;width:2px;border-radius:99px;background:var(--sage,#9aa27c);content:"";transform-origin:50% 100%}.philosophy-time-icon:before{top:3px;height:5px;transform:translateX(-50%)}.philosophy-time-icon:after{top:7px;height:4px;transform:translateX(-50%) rotate(125deg)}@media(max-width:620px){.philosophy-time-icon{width:14px;height:14px;flex-basis:14px}.philosophy-time-icon:before{top:2px;height:4px}.philosophy-time-icon:after{top:6px;height:3px}}

/* Figure It Sprout receives a fuller, award-aware design story when selected. */
.modal-case-study{margin:-3px 0 26px;padding:20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)}.modal-case-study-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:14px}.modal-case-study-grid h3{margin:0 0 7px;color:var(--espresso);font:800 12px/1.15 'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.06em}.modal-case-study-grid p{margin:0;color:var(--charcoal);font-size:14px;line-height:1.48}.modal-case-study-awards{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.modal-case-study-awards span{padding:7px 9px;border:1px solid rgba(216,167,162,.58);border-radius:999px;background:#f6e8e5;color:var(--espresso);font:800 11px/1.15 'DM Sans',sans-serif}@media(max-width:620px){.modal-case-study{padding:17px}.modal-case-study-grid{grid-template-columns:1fr;gap:15px}.modal-case-study-awards{display:grid}.modal-case-study-awards span{width:100%;text-align:center}}

/* The bloom moment gets Kitty's supplied butterfly artwork, with a quiet, natural flutter instead of an abstract dot. */
.philosophy-butterfly{position:absolute;z-index:4;top:35%;left:60%;width:30px;height:30px;object-fit:contain;opacity:0;border-radius:0;background:transparent;pointer-events:none;filter:drop-shadow(0 2px 2px rgba(90,74,66,.14));transform-origin:50% 50%}.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:philosophy-butterfly-flight 5.4s ease-in-out .3s infinite}@keyframes philosophy-butterfly-flight{0%{top:35%;left:60%;opacity:0;transform:rotate(-13deg) scale(.7,.8)}10%{opacity:1;transform:rotate(-5deg) scale(.8,1)}25%{top:23%;left:68%;transform:rotate(9deg) scale(.88,.74)}41%{top:18%;left:77%;transform:rotate(16deg) scale(.94,1)}57%{top:27%;left:82%;transform:rotate(5deg) scale(.9,.75)}72%{top:35%;left:75%;transform:rotate(-9deg) scale(.84,1)}88%{top:31%;left:65%;opacity:1;transform:rotate(-16deg) scale(.78,.76)}100%{top:35%;left:60%;opacity:0;transform:rotate(-13deg) scale(.7,1)}}@media(max-width:620px){.philosophy-butterfly{width:26px;height:26px}}@media(prefers-reduced-motion:reduce){.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:none;top:22%;left:74%;opacity:1;transform:rotate(9deg)}}

/* A compact, quiet bloom moment: the butterfly finishes its flight on the flower. */
.philosophy-panel{width:min(calc(100% - 32px),560px);max-height:none;overflow:hidden;padding:25px 28px 24px;border-radius:24px}
.philosophy-header h2{margin:6px 0 7px;font-size:clamp(29px,4vw,40px)}
.philosophy-header p{font-size:13px;line-height:1.4}
.philosophy-growth{max-width:420px;margin-top:11px}
.philosophy-plant{height:180px}
.philosophy-message{min-height:19px;margin:8px 0;font-size:12px}
.philosophy-actions button{padding:9px 11px;font-size:11px}
.philosophy-actions button.is-selected{border-color:var(--ink-blue);background:var(--ink-blue);color:#fff;box-shadow:0 0 0 3px rgba(104,131,154,.16)}
.philosophy-actions button.is-selected:hover{border-color:var(--ink-blue-deep);background:var(--ink-blue-deep);color:#fff}
.philosophy-final{margin-top:13px;font-size:13px}
.philosophy-final p{font-size:19px}
.philosophy-final a{margin-top:12px}
.philosophy-butterfly{top:17%;left:55%;width:8px;height:8px;filter:drop-shadow(0 1px 1px rgba(90,74,66,.14))}
.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:philosophy-butterfly-lands 4.8s ease-in-out .2s infinite}
@keyframes philosophy-butterfly-lands{0%{top:8%;left:65%;opacity:0;transform:rotate(-18deg) scale(.55,.75)}15%{opacity:1;transform:rotate(8deg) scale(.88,.7)}36%{top:11%;left:60%;transform:rotate(-10deg) scale(.72,1)}58%{top:15%;left:57%;opacity:1;transform:rotate(7deg) scale(.9,.72)}78%{top:18%;left:54%;opacity:1;transform:rotate(-3deg) scale(.76,1)}100%{top:17%;left:55%;opacity:1;transform:rotate(3deg) scale(.82,.86)}}
@media(max-height:680px) and (min-width:621px){.philosophy-panel{padding:22px 26px}.philosophy-plant{height:164px}.philosophy-growth{margin-top:8px}.philosophy-header p{font-size:12px}.philosophy-actions button{padding:8px 10px}}
@media(max-width:620px){.philosophy-panel{width:calc(100% - 28px);max-height:none;overflow:hidden;padding:24px 14px 19px;border-radius:21px}.philosophy-header h2{font-size:29px}.philosophy-header p{font-size:11px}.philosophy-growth{margin-top:9px}.philosophy-plant{height:164px}.philosophy-message{margin:7px 0;font-size:11px}.philosophy-actions button{padding:8px 9px;font-size:10px}.philosophy-butterfly{width:7px;height:7px;top:17%;left:55%}}
@media(prefers-reduced-motion:reduce){.philosophy-growth[data-stage="5"] .philosophy-butterfly{animation:none!important;top:17%;left:55%;opacity:1;transform:rotate(3deg) scale(.82,.86)}}

/* Beyond Summer Camp: solid category blocks hold compact, expandable project stories. */
.curriculum-practice{margin:0 0 64px}.curriculum-practice-heading{max-width:760px}.curriculum-practice-heading h2{margin:8px 0 10px;color:var(--espresso);font:800 clamp(31px,4vw,47px)/1.03 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}.curriculum-practice-heading p{margin:0;color:var(--charcoal);font-size:16px;line-height:1.55}.curriculum-collections{display:grid;gap:22px;margin-top:30px}.curriculum-collection{padding:25px;border:1px solid var(--line);border-radius:24px}.curriculum-collection--completed{background:#66724b;border-color:#66724b}.curriculum-collection--building{background:#d8a7a2;border-color:#d8a7a2}.curriculum-collection--systems{background:#68839a;border-color:#68839a}.curriculum-collection-heading{display:flex;align-items:end;justify-content:space-between;gap:22px;padding:0 2px 20px}.curriculum-collection-label{display:inline-flex;align-items:center;padding:6px 9px;border:1px solid rgba(246,241,235,.45);border-radius:999px;background:rgba(246,241,235,.13);color:#f6f1eb;font:800 10px/1 'DM Sans',sans-serif;letter-spacing:.08em;text-transform:uppercase}.curriculum-collection--building .curriculum-collection-label{border-color:rgba(79,67,60,.2);background:rgba(252,250,247,.42);color:#6e4f4b}.curriculum-collection-heading h3{margin:9px 0 0;color:#f6f1eb;font:800 clamp(23px,2.6vw,31px)/1.06 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}.curriculum-collection--building .curriculum-collection-heading h3{color:var(--espresso)}.curriculum-collection-heading p{max-width:270px;margin:0;color:rgba(246,241,235,.87);font-size:13px;line-height:1.42;text-align:right}.curriculum-collection--building .curriculum-collection-heading p{color:#5e4f49}.curriculum-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.curriculum-project-grid--two{grid-template-columns:repeat(2,minmax(0,1fr))}.curriculum-project-grid--one{grid-template-columns:1fr}.curriculum-project-card{min-width:0;overflow:hidden;border:1px solid rgba(79,67,60,.15);border-radius:18px;background:#fcfaf7;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}.curriculum-project-card summary{display:block;min-height:181px;padding:21px;cursor:pointer;list-style:none;outline:none}.curriculum-project-card summary::-webkit-details-marker{display:none}.curriculum-project-card summary:focus-visible{outline:3px solid #f6f1eb;outline-offset:-3px}.curriculum-project-card:hover{border-color:rgba(79,67,60,.32);box-shadow:0 10px 19px rgba(63,51,43,.14);transform:translateY(-2px)}.curriculum-project-card h4{margin:12px 0 8px;color:var(--espresso);font:800 clamp(20px,2.2vw,25px)/1.08 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.04em}.curriculum-project-card p{margin:0;color:var(--charcoal);font-size:14px;line-height:1.48}.curriculum-project-toggle{display:inline-flex;align-items:center;gap:7px;margin-top:16px;color:var(--ink-blue);font-size:11px;font-weight:800;line-height:1.3}.curriculum-project-toggle b{display:grid;width:19px;height:19px;place-items:center;border:1px solid rgba(104,131,154,.38);border-radius:50%;font-size:16px;font-weight:500;line-height:1;transition:transform .24s ease,background .24s ease,color .24s ease}.curriculum-project-close-label{display:none}.curriculum-project-card[open]{grid-column:1/-1}.curriculum-project-card[open] .curriculum-project-open-label{display:none}.curriculum-project-card[open] .curriculum-project-close-label{display:inline}.curriculum-project-card[open] .curriculum-project-toggle b{background:var(--ink-blue);color:#fff;transform:rotate(45deg)}.curriculum-project-expansion{padding:20px 21px 22px;border-top:1px solid var(--line);background:#f8f5f0;animation:case-study-open .32s ease-out both}.curriculum-project-expansion dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;margin:0}.curriculum-project-expansion div{padding-top:10px;border-top:1px solid rgba(79,67,60,.11)}.curriculum-project-expansion dt{margin:0 0 4px;color:var(--olive);font:800 9px/1.2 'DM Mono',monospace;letter-spacing:.095em;text-transform:uppercase}.curriculum-project-expansion dd{margin:0;color:var(--charcoal);font-size:13px;line-height:1.48}@media(max-width:620px){.curriculum-practice{margin-bottom:48px}.curriculum-practice-heading p{font-size:15px}.curriculum-collections{gap:17px;margin-top:24px}.curriculum-collection{padding:19px}.curriculum-collection-heading{display:grid;gap:12px;padding-bottom:17px}.curriculum-collection-heading p{max-width:none;text-align:left}.curriculum-project-grid,.curriculum-project-grid--two{grid-template-columns:1fr;gap:11px}.curriculum-project-card summary{min-height:0;padding:19px}.curriculum-project-card h4{font-size:22px}.curriculum-project-expansion{padding:19px}.curriculum-project-expansion dl{grid-template-columns:1fr;gap:12px}}

/* Lighter collection colors echo the home-page puzzle while preserving clear type. */
.curriculum-collection--completed{background:#dce2cf;border-color:#b7c19e}
.curriculum-collection--building{background:#f1cfcb;border-color:#e2b3ae}
.curriculum-collection--systems{background:#cedae5;border-color:#a9bfd0}
.curriculum-collection-label,.curriculum-collection--building .curriculum-collection-label{border-color:rgba(79,67,60,.16);background:rgba(252,250,247,.58);color:var(--espresso)}
.curriculum-collection-heading h3,.curriculum-collection--building .curriculum-collection-heading h3{color:var(--espresso)}
.curriculum-collection-heading p,.curriculum-collection--building .curriculum-collection-heading p{color:var(--charcoal)}
.curriculum-project-photo-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:20px}.curriculum-project-photo-strip figure{min-width:0;margin:0;overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#fcfaf7}.curriculum-project-photo-strip img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--beige)}.curriculum-project-photo-strip figure:first-child img{object-position:center 43%}.curriculum-project-photo-strip figure:last-child img{object-position:center 45%}.curriculum-project-photo-strip figcaption{padding:10px 12px;color:var(--charcoal);font-size:12px;font-weight:700;line-height:1.4}@media(max-width:620px){.curriculum-project-photo-strip{grid-template-columns:1fr;gap:11px}}
.curriculum-learning-path{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.curriculum-learning-path article{min-width:0;padding:14px;border:1px solid rgba(79,67,60,.12);border-radius:14px;background:#fcfaf7}.curriculum-learning-path span{display:block;margin-bottom:8px;color:var(--dusty-rose);font:800 9px/1.2 'DM Mono',monospace;letter-spacing:.09em;text-transform:uppercase}.curriculum-learning-path strong{display:block;color:var(--espresso);font:800 14px/1.15 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.02em}.curriculum-learning-path p{margin:6px 0 0;color:var(--charcoal);font-size:12px;line-height:1.45}@media(max-width:620px){.curriculum-learning-path{grid-template-columns:1fr;gap:9px}}

/* Career pathways stay easy to scan while the fuller list remains inside the case study. */
.career-pathway-list{margin-top:20px;padding-top:18px;border-top:1px solid rgba(79,67,60,.12)}
.career-pathway-list h5{margin:0 0 11px;color:var(--olive);font:800 10px/1.2 'DM Mono',monospace;letter-spacing:.095em;text-transform:uppercase}
.career-pathway-list ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none}
.career-pathway-list li{min-width:0;padding:10px 11px 10px 27px;border:1px solid rgba(79,67,60,.11);border-radius:12px;background:#fcfaf7;color:var(--charcoal);font-size:12px;font-weight:700;line-height:1.36;position:relative}
.career-pathway-list li::before{position:absolute;top:15px;left:11px;width:7px;height:7px;border-radius:50%;background:var(--ink-blue);content:""}
@media(max-width:620px){.career-pathway-list ul{grid-template-columns:1fr}.career-pathway-list li{font-size:12px}}
.curriculum-showcase-note{margin-top:13px;padding:13px 15px;border:1px solid rgba(104,131,154,.27);border-radius:14px;background:#eaf0f4}.curriculum-showcase-note span{display:block;margin-bottom:4px;color:var(--ink-blue);font:800 9px/1.2 'DM Mono',monospace;letter-spacing:.09em;text-transform:uppercase}.curriculum-showcase-note p{margin:0;color:var(--charcoal);font-size:12px;line-height:1.45}

/* Curriculum becomes a concise case-study page: Summer Camp leads, then the rest of the practice follows. */
.curriculum-page .page-header{max-width:770px;margin-bottom:34px}
.curriculum-page .page-header .lede{max-width:700px;font-size:17px;line-height:1.58}
.summer-camp-case-study{display:block;margin:0 0 62px}
.summer-camp-summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:end;padding:31px 34px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0);color:var(--charcoal);cursor:pointer;list-style:none;transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.summer-camp-summary::-webkit-details-marker{display:none}
.summer-camp-summary:hover{border-color:#cbbbab;box-shadow:0 12px 26px rgba(79,67,60,.08);transform:translateY(-2px)}
.summer-camp-summary:focus-visible{outline:3px solid var(--ink-blue);outline-offset:4px}
.summer-camp-summary-copy{display:grid;gap:9px;max-width:760px}
.summer-camp-summary-copy strong{color:var(--espresso);font:800 clamp(30px,4vw,48px)/1.02 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}
.summer-camp-summary-copy>span:last-child{max-width:730px;font-size:16px;line-height:1.52}
.summer-camp-summary-action{display:inline-flex;align-items:center;gap:8px;align-self:center;white-space:nowrap;color:var(--ink-blue);font:800 13px/1 'DM Sans',sans-serif}
.summer-camp-close-label{display:none}
.summer-camp-summary-action b{display:grid;width:27px;height:27px;place-items:center;border-radius:50%;background:var(--mist-blue);font-size:16px;transition:transform .28s ease}
.summer-camp-case-study[open] .summer-camp-summary{margin-bottom:26px}
.summer-camp-case-study[open] .summer-camp-open-label{display:none}
.summer-camp-case-study[open] .summer-camp-close-label{display:inline}
.summer-camp-case-study[open] .summer-camp-summary-action b{transform:rotate(180deg)}
.summer-camp-details{animation:curriculum-reveal .42s ease both}
@keyframes curriculum-reveal{from{opacity:0;transform:translateY(-7px)}to{opacity:1;transform:translateY(0)}}
.curriculum-page .summer-camp-details .feature-banner{margin-top:0}
.curriculum-page .summer-camp-details .feature-copy{padding:34px}
.curriculum-page .summer-camp-details .camp-journey{padding-top:58px}
.curriculum-page .summer-camp-details .camp-recap{padding-top:48px}
.curriculum-page .summer-camp-details .section.alt{padding-top:52px;padding-bottom:60px}
.summer-camp-close-wrap{display:flex;justify-content:center;padding:4px 0 28px}
.summer-camp-close-button{display:inline-flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid var(--line);border-radius:999px;background:var(--paper);color:var(--espresso);font:800 13px/1 'DM Sans',sans-serif;cursor:pointer;transition:border-color .22s ease,background .22s ease,color .22s ease,transform .22s ease}
.summer-camp-close-button span{display:grid;width:23px;height:23px;place-items:center;border-radius:50%;background:var(--mist-blue);color:var(--ink-blue);font-size:15px;transition:transform .22s ease}
.summer-camp-close-button:hover{border-color:var(--ink-blue);background:#f8fbfc;color:var(--ink-blue);transform:translateY(-2px)}
.summer-camp-close-button:hover span{transform:translateY(-2px)}
.summer-camp-close-button:focus-visible{outline:3px solid var(--ink-blue);outline-offset:3px}
@media(max-width:820px){.summer-camp-summary{grid-template-columns:1fr;gap:18px}.summer-camp-summary-action{justify-self:start}}
@media(max-width:620px){.curriculum-page .page-header{margin-bottom:27px}.curriculum-page .page-header .lede{font-size:16px}.summer-camp-case-study{margin-bottom:46px}.summer-camp-summary{gap:15px;padding:24px 21px;border-radius:21px}.summer-camp-summary-copy strong{font-size:32px}.summer-camp-summary-copy>span:last-child{font-size:14px}.summer-camp-summary-action{font-size:12px}.summer-camp-case-study[open] .summer-camp-summary{margin-bottom:19px}.curriculum-page .summer-camp-details .camp-journey{padding-top:46px}.curriculum-page .summer-camp-details .camp-recap{padding-top:39px}.curriculum-page .summer-camp-details .section.alt{padding-top:42px;padding-bottom:48px}.summer-camp-close-wrap{padding:0 0 21px}.summer-camp-close-button{font-size:12px}}
@media(prefers-reduced-motion:reduce){.summer-camp-summary,.summer-camp-summary-action b{transition:none}.summer-camp-details{animation:none}}

/* Homepage case studies open only when a visitor asks for the fuller story. */
.resume-button{border-color:var(--line);background:var(--paper);color:var(--espresso)}
.resume-button:hover{border-color:var(--ink-blue);background:var(--mist-blue);color:var(--espresso);box-shadow:0 7px 14px rgba(104,131,154,.13);transform:translateY(-2px)}
.featured-work{padding:52px 0 58px}
.featured-work-heading{max-width:700px}
.featured-work-heading h2,.currently-building-heading h2{margin:9px 0 11px;color:var(--espresso);font:800 clamp(34px,4.4vw,54px)/1.04 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.06em}
.featured-work-heading>p,.currently-building-heading>p{max-width:660px;margin:0;color:var(--charcoal);font-size:16px;line-height:1.58}
.featured-work-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:30px}
.featured-case{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0);transition:border-color .24s ease,box-shadow .24s ease,transform .24s ease}
.featured-case summary{display:block;min-height:232px;padding:23px 24px 22px;cursor:pointer;list-style:none;outline:none}
.featured-case summary::-webkit-details-marker{display:none}
.featured-case summary:focus-visible{outline:3px solid var(--ink-blue);outline-offset:-3px}
.featured-case-mark{display:flex;align-items:center;gap:10px;margin-bottom:32px;color:var(--case-accent);font:800 10px/1 'DM Mono',monospace;letter-spacing:.08em}
.featured-case-mark b{display:grid;width:31px;height:31px;place-items:center;border:1px solid var(--case-accent);border-radius:50%;font-weight:800}
.featured-case-mark i{display:block;width:45px;height:1px;background:currentColor;opacity:.7}
.featured-case-card-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;color:var(--charcoal);font-size:14px;line-height:1.45}
.featured-case-type{margin-bottom:10px;color:var(--rose);font:800 9px/1.25 'DM Mono',monospace;letter-spacing:.095em;text-transform:uppercase}
.featured-case--summer{--case-accent:#8b9773}.featured-case--summer .featured-case-type{color:#78845f}
.featured-case--sprout{--case-accent:#c47f78}.featured-case--sprout .featured-case-type{color:#bd7770}
.featured-case--botley{--case-accent:#68839a}.featured-case--botley .featured-case-type{color:#58758c}
.featured-case--corner{--case-accent:#a98362}.featured-case--corner .featured-case-type{color:#a37a58}
.featured-case-card-copy strong{display:block;margin-bottom:8px;color:var(--espresso);font:800 clamp(22px,2.45vw,30px)/1.03 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.052em}
.featured-case-open{display:inline-flex;align-items:center;gap:8px;margin-top:17px;color:var(--ink-blue);font-size:12px;font-weight:800}
.featured-close-label{display:none}
.featured-case-open b{display:grid;width:19px;height:19px;place-items:center;border:1px solid rgba(104,131,154,.35);border-radius:50%;font-size:16px;font-weight:500;line-height:1;transition:transform .24s ease,background .24s ease,color .24s ease}
.featured-case[open]{grid-column:1/-1}
.featured-case[open] summary{min-height:232px}
.featured-case[open] .featured-open-label{display:none}
.featured-case[open] .featured-close-label{display:inline}
.featured-case[open] .featured-case-open b{background:var(--ink-blue);color:#fff;transform:rotate(45deg)}
.featured-case-expansion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:22px;align-items:end;padding:22px 27px 25px;border-top:1px solid var(--line);animation:case-study-open .32s ease-out both}
.featured-case-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 26px;margin:0}
.featured-case-details div{min-width:0;padding-top:11px;border-top:1px solid rgba(79,67,60,.11)}
.featured-case-details dt{margin:0 0 4px;color:var(--olive);font:800 9px/1.2 'DM Mono',monospace;letter-spacing:.095em;text-transform:uppercase}
.featured-case-details dd{margin:0;color:var(--charcoal);font-size:13px;line-height:1.48}
.featured-case-link,.currently-building-link{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;color:var(--ink-blue);font-size:13px;font-weight:800;text-decoration:none;transition:transform .22s ease,color .22s ease}
.featured-case-link{margin-bottom:2px;white-space:nowrap}
.featured-case-link:hover,.currently-building-link:hover{color:var(--ink-blue-deep);transform:translateX(3px)}
.currently-building{margin-top:26px;padding:29px 31px 30px;border:1px solid var(--line);border-radius:24px;background:var(--paper)}
.currently-building-heading h2{font-size:clamp(27px,3.5vw,41px)}
.currently-building-heading>p{font-size:15px}
.currently-building-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:22px}
.building-card{min-width:0;padding:21px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0)}
.building-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:var(--mist-blue);color:var(--ink-blue);font:800 9px/1 'DM Mono',monospace;letter-spacing:.08em;text-transform:uppercase}
.building-card h3{margin:13px 0 7px;color:var(--espresso);font:800 clamp(21px,2.2vw,27px)/1.08 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.045em}
.building-card p{margin:0;color:var(--charcoal);font-size:14px;line-height:1.52}
.currently-building-link{margin-top:21px}
@keyframes case-study-open{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover){.featured-case:hover{border-color:#cbbbab;box-shadow:0 13px 25px rgba(79,67,60,.08);transform:translateY(-3px)}.featured-case:hover .featured-case-open b{background:var(--mist-blue)}}
@media(max-width:760px){.featured-work{padding:45px 0 50px}.featured-work-gallery,.currently-building-grid{grid-template-columns:1fr}.featured-case[open]{grid-column:auto}.featured-case-expansion{grid-template-columns:1fr;gap:18px;padding:21px 22px 23px}.currently-building{padding:25px 22px}.featured-work-heading>p{font-size:16px}}
@media(max-width:500px){.resume-button{width:100%}.featured-work-gallery{gap:15px}.featured-case summary,.featured-case[open] summary{min-height:0;padding:21px 21px 20px}.featured-case-mark{margin-bottom:27px}.featured-case-card-copy strong{font-size:27px}.featured-case-details{grid-template-columns:1fr;gap:11px}.featured-case-link{white-space:normal}.currently-building{margin-top:20px}}
@media(prefers-reduced-motion:reduce){.resume-button,.featured-case,.featured-case-open b,.featured-case-link,.currently-building-link{transition:none!important}.featured-case-expansion{animation:none}.resume-button:hover,.featured-case:hover,.featured-case-link:hover,.currently-building-link:hover{transform:none!important}}

/* A simple palette arrow quietly signals when something can be opened. */
.portfolio-cursor{display:none}
@media(hover:hover) and (pointer:fine){
  html.portfolio-cursor-active,html.portfolio-cursor-active *{cursor:none!important}
  .portfolio-cursor{position:fixed;z-index:10000;top:0;left:0;display:block;width:27px;height:31px;opacity:0;pointer-events:none;transform:translate3d(calc(var(--cursor-x,0px) - 1px),calc(var(--cursor-y,0px) - 1px),0);transition:opacity .16s ease;will-change:transform}
  .portfolio-cursor:before,.portfolio-cursor:after{position:absolute;content:"";clip-path:polygon(0 0,0 100%,29% 72%,45% 100%,60% 91%,44% 65%,76% 63%)}
  .portfolio-cursor:before{inset:0;background:#fcfaf7;filter:drop-shadow(0 2px 2px rgba(79,67,60,.2));transition:background .18s ease}
  .portfolio-cursor:after{top:2px;left:2px;width:22px;height:26px;background:#68839a;transition:background .18s ease}
  .portfolio-cursor.is-visible{opacity:1}
  .portfolio-cursor.is-interactive:before{background:#f6f1eb}
  .portfolio-cursor.is-interactive:after{background:#d8a7a2}
}
@media(prefers-reduced-motion:reduce){.portfolio-cursor,.portfolio-cursor:before,.portfolio-cursor:after{transition:none!important}}

/* Games become a calm, cover-first gallery: the real work leads and the design story follows. */
body .game-archive-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:920px){body .game-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){body .game-archive-grid{grid-template-columns:1fr}}
.sprout-hero{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(310px,.86fr);overflow:hidden;margin-top:35px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0);box-shadow:0 12px 30px rgba(79,67,60,.07)}.sprout-hero-visual{position:relative;min-height:360px;margin:0;background:#704535}.sprout-hero-visual img{display:block;width:100%;height:100%;min-height:360px;object-fit:cover}.sprout-hero-visual figcaption{position:absolute;left:17px;bottom:17px;padding:7px 10px;border:1px solid rgba(79,67,60,.15);border-radius:999px;background:rgba(252,250,247,.94);color:var(--espresso);font:800 10px/1.2 'DM Sans',sans-serif;letter-spacing:.015em;box-shadow:0 4px 10px rgba(79,67,60,.12)}.sprout-hero-copy{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:flex-start;padding:clamp(30px,5vw,56px)}.sprout-hero-copy h2{margin:11px 0 12px;color:var(--espresso);font:800 clamp(42px,5vw,66px)/.95 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.07em}.sprout-hero-copy p{max-width:390px;margin:0;color:var(--charcoal);font-size:16px;line-height:1.55}.sprout-hero-copy .button{margin-top:25px;background:var(--ink-blue)}.sprout-hero-copy .button:hover{background:var(--ink-blue-deep)}@media(max-width:780px){.sprout-hero{grid-template-columns:1fr}.sprout-hero-visual,.sprout-hero-visual img{min-height:0;aspect-ratio:16/9}.sprout-hero-copy{padding:30px 24px}.sprout-hero-copy h2{font-size:46px}}
.feature-case-study{margin-top:21px}.game-showcase{margin-top:54px}.game-showcase-heading{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:23px}.game-showcase-heading>div{max-width:570px}.game-showcase-heading h2{margin:8px 0 0;color:var(--espresso);font:800 clamp(30px,3.8vw,47px)/1 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.055em}.game-showcase-heading p{max-width:360px;margin:0;color:var(--secondary-text,var(--charcoal));font-size:14px;line-height:1.48}.game-showcase-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.showcase-game-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#fcfaf7,#f8f5f0);box-shadow:0 4px 12px rgba(79,67,60,.04);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}.showcase-game-card-button{display:block;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.showcase-game-media{position:relative;z-index:0;display:block;width:calc(100% + 2px);margin:-1px -1px 0;overflow:hidden;aspect-ratio:16/10;border:0;border-bottom:1px solid var(--line);border-radius:19px 19px 0 0;background:#101827 center/cover no-repeat;background-clip:border-box}.showcase-game-media.cover-taiwan,.showcase-game-media.cover-brain{background-position:center 52%;background-size:108% auto}.showcase-game-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.showcase-game-badge{position:absolute;top:12px;left:12px;padding:5px 8px;border:1px solid rgba(79,67,60,.14);border-radius:999px;background:rgba(252,250,247,.94);color:var(--espresso);font:800 9px/1 'DM Sans',sans-serif;letter-spacing:.02em;text-transform:uppercase;box-shadow:0 3px 8px rgba(79,67,60,.07)}.showcase-game-content{display:flex;min-height:180px;flex-direction:column;padding:18px 19px 19px}.showcase-game-category{margin-bottom:9px;color:var(--rose);font:800 10px/1.2 'DM Mono',monospace;letter-spacing:.085em;text-transform:uppercase}.showcase-game-content h3{margin:0;color:var(--espresso);font:800 clamp(22px,2.35vw,28px)/1.03 'Nunito','Avenir Next Rounded','Arial Rounded MT Bold',ui-rounded,sans-serif;letter-spacing:-.05em}.showcase-game-content p{margin:9px 0 0;color:var(--charcoal);font-size:14px;line-height:1.43}.showcase-game-link{display:inline-flex;align-items:center;align-self:flex-start;margin-top:auto;padding-top:15px;color:var(--ink-blue);font-size:13px;font-weight:800;transition:transform .25s ease}.showcase-game-card-button:focus-visible{outline:3px solid var(--ink-blue);outline-offset:-3px}.game-archive-control{display:flex;justify-content:center;margin-top:28px}.game-archive-toggle{padding:12px 18px;border:1px solid var(--ink-blue);border-radius:999px;background:var(--ink-blue);color:#fff;font:800 13px/1 'DM Sans',sans-serif;cursor:pointer;transition:background .25s ease,color .25s ease,transform .25s ease}.game-archive-toggle:hover{background:#fcfaf7;color:var(--espresso);transform:translateY(-2px)}.game-archive-toggle:focus-visible{outline:3px solid var(--ink-blue);outline-offset:3px}.game-archive{margin-top:38px;padding-top:31px;border-top:1px solid var(--line)}.game-archive>.eyebrow{margin-bottom:17px}.game-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}@media(hover:hover){.showcase-game-card:hover{border-color:#cbbbab;box-shadow:0 14px 24px rgba(79,67,60,.1);transform:translateY(-4px)}.showcase-game-card:hover .showcase-game-media img{transform:scale(1.025)}.showcase-game-card:hover .showcase-game-link{transform:translateX(3px)}}@media(max-width:920px){.game-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.game-showcase-heading{align-items:start;flex-direction:column;gap:12px}.game-showcase-heading p{max-width:520px}.game-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.game-showcase{margin-top:42px}.game-showcase-heading{margin-bottom:18px}.game-showcase-heading h2{font-size:33px}.game-showcase-grid,.game-archive-grid{grid-template-columns:1fr;gap:16px}.showcase-game-content{min-height:166px;padding:17px}.showcase-game-badge{top:10px;left:10px}.game-archive{margin-top:31px;padding-top:25px}}@media(prefers-reduced-motion:reduce){.showcase-game-card,.showcase-game-media img,.showcase-game-link,.game-archive-toggle{transition:none!important}.showcase-game-card:hover,.showcase-game-card:hover .showcase-game-media img,.showcase-game-card:hover .showcase-game-link,.game-archive-toggle:hover{transform:none!important}}

/* Full-bleed game covers: no button padding or pale strip may sit above the artwork. */
body .game-showcase-grid .showcase-game-card{padding:0!important}
body .game-showcase-grid .showcase-game-card-button{display:block!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:19px!important;overflow:hidden!important;background:transparent!important}
body .game-showcase-grid .showcase-game-media{display:block!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid var(--line)!important;border-radius:19px 19px 0 0!important}

/* Keep the long Botley heading legible on narrow phones instead of forcing an awkward overflow. */
@media(max-width:560px){.botley-title-line,.botley-title-nowrap{white-space:normal}}
