/* A quiet canvas, expressive characters and one clear action at a time. */
:root{--ink:#183f38;--muted:#54665f;--paper:#faf8f2;--white:#fffefa;--teal:#245c4e;--teal-pale:#dfebe0;--coral:#ed987e;--coral-pale:#f5e7dc;--sun:#eed073;--blue:#e7edf0;--violet:#ede8f2;--line:#d8ded5;--radius:28px;--max:1200px;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 "Segoe UI",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}body,button,input,select,textarea{font-family:"Segoe UI",system-ui,-apple-system,sans-serif}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font-size:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button{color:inherit}img,svg{display:block;max-width:100%}img{height:auto}h1,h2,h3,h4,p{margin-top:0}h1,h2,h3,h4{font-weight:550;text-wrap:balance}p{margin-bottom:1.1em}h1,h2{letter-spacing:-.05em;line-height:1.08}h3{letter-spacing:-.025em;line-height:1.25}::selection{background:#d2e7d7}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #946000;outline-offset:5px}[hidden]{display:none!important}.shell{width:min(var(--max),calc(100% - 64px));margin-inline:auto}.graphic-defs,.svg-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}.line-icon{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.skip{position:fixed;left:16px;top:-100px;z-index:100;padding:12px 20px;border-radius:12px;background:var(--white)}.skip:focus{top:12px}.topbar{position:sticky;top:0;z-index:30;background:rgba(250,248,242,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(24,63,56,.08)}.nav{min-height:84px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:650;letter-spacing:-.02em;line-height:1.15;font-size:18px}.nav-links{display:flex;gap:27px;align-items:center}.nav-links a{min-height:44px;display:flex;align-items:center;font-size:14px;text-decoration:none;color:var(--muted);position:relative}.nav-links a:after{content:"";position:absolute;bottom:3px;left:0;right:0;height:2px;background:var(--teal);transform:scaleX(0);transition:transform .2s}.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}.nav-links a[aria-current]:after{transform:scaleX(1)}.button,.nav-cta{display:inline-flex;align-items:center;justify-content:center;gap:18px;min-height:50px;padding:13px 25px;border:1px solid transparent;border-radius:99px;background:var(--ink);color:var(--white);text-decoration:none;font-weight:600;font-size:15px;line-height:1.35;transition:background .2s,transform .2s var(--ease),box-shadow .2s;text-align:center}.button:hover,.nav-cta:hover{background:var(--teal);transform:translateY(-2px);box-shadow:0 7px 18px #183f3812}.button.light{background:transparent;border-color:#adb9ac;color:var(--ink)}.button.light:hover{background:#e9eee4}.button.coral{background:var(--ink)}.button.small{font-size:14px;min-height:46px;padding:11px 19px;gap:10px}.nav-cta{font-size:14px;min-height:44px;padding:10px 18px;gap:10px}.menu-toggle{display:none;min-height:44px;border:1px solid var(--line);border-radius:30px;background:transparent;padding:9px 18px}.progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:40;pointer-events:none}.progress span{display:block;width:100%;height:100%;background:var(--teal);transform:scaleX(0);transform-origin:left center}.kicker,.eyebrow,.activity-label{display:block;color:var(--teal);font-size:13px;line-height:1.5;font-weight:650;letter-spacing:.035em}.section-head{max-width:790px;margin:0 auto 54px;text-align:center}.section-head h2,.section-title{font-size:clamp(34px,4.7vw,58px);margin:18px 0 22px}.section-head p{max-width:640px;margin:0 auto;color:var(--muted);font-size:18px}.hero{text-align:center;padding:52px 0 86px;position:relative;overflow:hidden}.hero-grid{display:block}.hero-mascots{display:flex;justify-content:center;align-items:center;width:240px;height:116px;margin:0 auto 25px;gap:0}.hero-mascots svg{width:86px;height:86px;filter:drop-shadow(0 8px 8px #18483816);overflow:visible}.hero-mascots svg:nth-child(1){transform:rotate(-12deg) translateY(6px)}.hero-mascots svg:nth-child(2){width:102px;height:102px;margin:0 -7px;z-index:1}.hero-mascots svg:nth-child(3){transform:rotate(10deg) translateY(7px)}.hero h1{max-width:980px;margin:20px auto 26px;font-size:clamp(45px,6.2vw,82px);font-weight:500;line-height:1.08}.hero h1 span{display:block;color:#607c65}.hero-copy{max-width:660px;margin:0 auto;color:var(--muted);font-size:19px;line-height:1.7}.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:30px}.hero-note{margin:25px 0 0;font-size:13px;color:var(--muted)}.hero-note:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-right:9px;vertical-align:middle}.creature-section{padding:35px 0 110px}.creature-head{text-align:center;max-width:760px;margin:0 auto 36px}.creature-head h2{font-size:clamp(32px,4.2vw,53px);margin:14px 0 18px}.creature-head>p{font-size:17px;color:var(--muted);max-width:630px;margin-inline:auto}.creature-subtitle{font-size:20px;color:var(--ink);margin-bottom:18px}.game-card{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:0;background:var(--white);border:1px solid var(--line);border-radius:32px;overflow:hidden;box-shadow:0 18px 60px #183f3807}.play-step{grid-column:1;grid-row:1/3;padding:24px;background:#e6ecdf;min-width:0;display:flex;flex-direction:column}.play-step>.activity-label{margin:0 0 8px}.play-step>p:not(.creature-status){margin:0;color:#4c6253;font-size:14px;line-height:1.55;max-width:550px}.playground{position:relative;flex:1;min-height:430px;margin-top:20px;border:1px solid #cfdbc9;border-radius:23px;background:radial-gradient(ellipse at 45% 42%,#f8f8eb 0%,#eef0dd 46%,#dbe6cf 100%);overflow:hidden;isolation:isolate}.playground:after{content:"";position:absolute;inset:18% 7%;border:1px solid #78956625;border-radius:50%;transform:rotate(-12deg);pointer-events:none;z-index:-1}.playground-decor{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;opacity:.6}.playground-hint{position:absolute;left:22px;bottom:15px;margin:0;max-width:70%;font-size:13px;color:#51634c;pointer-events:none}.playground-reset{position:absolute;right:14px;top:14px;z-index:6;border:1px solid #c5d1bf;background:rgba(255,254,250,.88);border-radius:99px;min-height:44px;padding:9px 15px;font-size:13px}.playground-reset:hover{background:var(--white)}.creature{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;width:132px;height:164px;padding:6px 4px;border:1px solid transparent;border-radius:28px;background:transparent;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:background .18s,border-color .18s,filter .18s}.creature svg{width:118px;height:118px;overflow:visible;pointer-events:none;filter:drop-shadow(0 13px 8px #29493218);transition:transform .2s var(--ease)}.creature:hover svg{transform:translateY(-5px) rotate(-3deg)}.creature.is-selected{background:#fffffa90;border-color:#729170}.creature.dragging{z-index:5;cursor:grabbing;background:#ffffff42;transition:none}.creature.dragging svg{transform:scale(1.06) rotate(3deg);filter:drop-shadow(0 17px 11px #29493226)}.creature-name{font-size:12px;font-weight:600;background:#fffffa99;border:1px solid #b8c8af60;padding:3px 10px;border-radius:99px;pointer-events:none}.creature[data-shape="circle"]{left:10%;top:39%}.creature[data-shape="triangle"]{left:40%;top:23%}.creature[data-shape="square"]{left:68%;top:43%}.fur-stroke{stroke:#ffffff80;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:1 4;fill:none}.creature-eye{fill:var(--ink)}.creature-cheek{fill:#df785e;opacity:.65}.creature-mouth{fill:none;stroke:var(--ink);stroke-width:2.5;stroke-linecap:round}.creature-status{min-height:44px;margin:16px 0 0;color:#435c48;font-size:14px;line-height:1.55}.game-prompt{padding:28px;grid-column:2;min-width:0}.game-prompt>p{font-size:15px;color:var(--muted);margin:9px 0 16px}.mood-choices{display:grid;gap:9px}.mood-choices button{display:flex;align-items:center;gap:12px;min-height:50px;width:100%;text-align:left;border:1px solid var(--line);border-radius:13px;background:transparent;padding:12px 14px;font-size:14px;line-height:1.4;transition:background .16s,border-color .16s}.mood-choices button:hover{background:#f0f4ec}.mood-choices button[aria-pressed="true"]{background:#e3eddd;border-color:#527849;box-shadow:inset 3px 0 #527849}.mood-shape{display:block;flex:0 0 17px;width:17px;height:17px}.triangle-shape{background:#85c9b1;clip-path:polygon(50% 0,100% 100%,0 100%)}.square-shape{background:#ed9a80;border-radius:4px}.circle-shape{background:var(--sun);border-radius:50%}.other-shape{font-weight:700;line-height:10px;color:var(--muted)}.game-prompt p.game-permission{font-size:13px;margin:14px 0 0}.support-prompt{padding-top:24px;border-top:1px solid #e2e6dc}.support-choices{display:flex;gap:8px;flex-wrap:wrap;margin-top:15px}.support-choices button{min-height:44px;padding:10px 13px;border:1px solid var(--line);border-radius:99px;background:transparent;font-size:13px;line-height:1.35}.support-choices button:hover{background:#f0f4ec}.support-choices button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:white}.game-prompt p.game-summary{font-size:14px;line-height:1.6;margin:20px 0 0;padding-top:17px;border-top:1px solid var(--line);color:var(--teal)}.method-story{display:grid;grid-template-columns:1fr 1.08fr;gap:75px;align-items:center;padding:110px 0 65px}.method-art{margin:0;background:#f0e9dd;border-radius:32px;overflow:hidden;position:relative}.method-art img{width:100%;aspect-ratio:1.08;object-fit:cover;mix-blend-mode:multiply}.method-art figcaption{position:absolute;left:22px;bottom:22px;background:#fffdf6ed;padding:11px 18px;border-radius:99px;font-size:13px}.method-card h3{font-size:clamp(30px,3.5vw,44px);margin:17px 0 22px;line-height:1.13;letter-spacing:-.045em}.method-card>p{font-size:16px;color:var(--muted)}.method-key{border-left:2px solid #98b38b;padding-left:18px;font-size:14px!important}.method-more,.method-research,.activity-more{border-top:1px solid var(--line)}details>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:66px;padding:18px 0;font-size:17px;font-weight:600;line-height:1.5}details>summary::-webkit-details-marker{display:none}details>summary:after{content:"+";font-weight:400;font-size:27px;line-height:1;flex:0 0 26px;text-align:center}details[open]>summary:after{content:"−"}details>summary:hover{color:var(--teal)}.method-more[open]{padding-bottom:30px}.method-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;list-style:none;padding:12px 0 0;margin:0 0 30px;counter-reset:method}.method-steps li:before{counter-increment:method;content:"0" counter(method);display:block;font-size:14px;color:var(--teal);margin-bottom:17px}.method-steps b{display:block;font-size:20px;font-weight:550;margin-bottom:12px}.method-steps span{font-size:15px;color:var(--muted);display:block}.method-purpose{padding:22px 25px;background:#edf1e8;border-radius:18px;color:var(--muted);font-size:15px}.method-purpose b{color:var(--ink)}.method-purpose p{margin:8px 0 0}.research-intro{max-width:860px;font-size:16px;color:var(--muted);margin:12px 0 26px}.research-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.research-grid article{background:#f0f1e9;padding:25px;border-radius:18px;min-width:0}.research-icon{display:block;margin-bottom:24px;color:var(--teal)}.research-grid h4{font-size:19px;line-height:1.4;margin:0 0 14px}.research-grid p{font-size:14px;color:var(--muted)}.research-grid a{font-size:13px;line-height:1.6;overflow-wrap:anywhere;display:inline-block}.research-limit{font-size:14px;color:var(--muted);padding:24px 0;max-width:1000px;margin:0}.activity-more{border-bottom:1px solid var(--line)}.activity-mini-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;padding:25px 0 40px;align-items:center}.activity-mini h2{font-size:32px;margin:14px 0}.activity-mini p{color:var(--muted);font-size:15px}.activity{padding:25px;border-radius:22px;background:#edf0e6}.activity .story-ribbon{display:none}.activity-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 24px}.activity-tabs button{padding:10px 15px;min-height:44px;border:1px solid #c6d2bf;border-radius:99px;background:transparent;font-size:14px}.activity-tabs button[aria-pressed="true"]{background:var(--ink);color:white;border-color:var(--ink)}.activity-result{display:flex;align-items:start;gap:18px}.activity-picture{display:grid;place-items:center;width:54px;height:54px;background:var(--sun);border-radius:17px;flex-shrink:0}.activity-result h3{font-size:22px;margin:0 0 12px}.activity-result p{margin:0;color:var(--muted);font-size:15px}.activity-goal{display:block;color:var(--teal);font-size:13px;margin-top:14px}.intro{padding:110px 0;background:#eff1e9}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:start}.service-card{min-width:0;padding:25px;border-radius:26px;background:var(--white);border:1px solid #e2e5da}.card-top{display:flex;justify-content:space-between;align-items:center}.card-icon{color:var(--teal)}.card-index{font-size:12px;letter-spacing:.08em;color:var(--muted)}.service-vignette{width:100%;height:auto;aspect-ratio:320/160;object-fit:contain;margin:16px 0 20px}.service-card h3{font-size:29px;margin:0 0 15px}.service-card>p{font-size:15px;color:var(--muted);min-height:75px;margin-bottom:22px}.service-disclosure{border-top:1px solid var(--line);scroll-margin-top:0}.service-disclosure summary{font-size:14px;min-height:60px;padding:15px 0}.service-disclosure summary:after{font-size:23px}.service-disclosure p{font-size:14px;color:var(--muted)}.service-disclosure h4{font-size:19px;margin-top:12px}.service-disclosure ul{padding-left:20px;font-size:14px;color:var(--muted)}.service-disclosure li{margin:11px 0}.service-highlights b{font-weight:600;color:var(--ink)}.service-disclosure .points{display:grid;gap:15px;margin:18px 0}.point{display:flex;align-items:start;gap:12px;color:var(--muted);font-size:14px}.point-icon{flex-shrink:0;color:var(--teal);padding-top:3px}.point-icon .line-icon{width:21px;height:21px}.point b{display:block;color:var(--ink);font-weight:600;margin-bottom:4px}.note{font-size:13px!important;background:#f4f1e6;border-radius:12px;padding:14px}.service-disclosure .button{margin-top:12px;width:100%}.about{padding:115px 0}.about-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:95px;align-items:center}.about-art{position:relative;background:#e7ecdd;border-radius:34px;padding:38px}.about-art img{width:100%;max-width:300px;aspect-ratio:1;object-fit:contain;margin:auto;border-radius:18px}.portrait-sticker{position:absolute;right:-18px;bottom:35px;width:66px;height:66px;border-radius:20px;display:grid;place-items:center;background:var(--sun);transform:rotate(9deg);border:5px solid var(--paper)}.about-copy{color:var(--muted);font-size:16px}.timeline{display:flex;gap:17px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:20px;margin:25px 0;font-size:14px;color:var(--muted)}.timeline b{font-weight:600;color:var(--ink)}.credential-list{list-style:none;padding:0;display:grid;gap:14px;margin:0 0 30px}.credential-list li{display:flex;align-items:start;gap:12px;color:var(--muted);font-size:14px}.credential-list .line-icon{width:20px;height:20px;margin-top:2px;color:var(--teal)}.steps{padding:0 0 110px}.step-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.step{padding:28px 0 0;border-top:1px solid #b7c6b0}.step-top{display:flex;align-items:center;justify-content:space-between}.step-icon{width:52px;height:52px;display:grid;place-items:center;background:var(--teal-pale);border-radius:17px}.step:nth-child(2) .step-icon{background:var(--coral-pale)}.step:nth-child(3) .step-icon{background:#f1e7c6}.step-no{font-size:12px;color:var(--muted);letter-spacing:.08em}.step h3{font-size:25px;margin:23px 0 15px}.step p{font-size:16px;color:var(--muted);margin:0}.contact{padding:110px 0;background:#e6ebdf}.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}.contact-aside{position:sticky;top:115px}.contact-aside h2{font-size:clamp(36px,4.3vw,54px);margin:18px 0 25px}.contact-aside>p{font-size:16px;color:var(--muted);max-width:370px}.hint{font-size:13px;color:var(--muted)}.contact-aside>.hint{font-size:14px}.contact-direct{display:flex;flex-direction:column;gap:13px;margin:27px 0 0}.contact-direct a{font-size:15px;overflow-wrap:anywhere}.contact-vignette{position:relative;width:220px;height:100px;margin-top:28px;pointer-events:none}.contact-stamp{position:absolute;left:58px;top:12px;display:grid;place-items:center;width:95px;height:70px;border:1px solid #91a78c;border-radius:16px;background:var(--white);transform:rotate(-7deg)}.contact-stamp .line-icon{width:45px;height:45px}.mail-circle{position:absolute;left:17px;top:24px;width:29px;height:29px;border-radius:50%;background:var(--sun)}.mail-square{position:absolute;right:13px;top:54px;width:25px;height:25px;background:var(--coral);border-radius:6px;transform:rotate(12deg)}.mail-triangle{position:absolute;left:34px;bottom:7px;width:20px;height:22px;background:#91b28c;clip-path:polygon(50% 0,100% 100%,0 100%)}.mail-dash{display:none}.contact-card{padding:32px;background:var(--white);border:1px solid #d4dece;border-radius:28px;min-width:0}.contact-form-step+.contact-form-step{margin-top:28px;padding-top:28px;border-top:1px solid var(--line)}.contact-form-step h3{display:flex;gap:12px;align-items:center;font-size:20px;margin:0 0 24px}.contact-form-step h3>span:first-child{display:grid;place-items:center;flex:0 0 33px;height:33px;background:var(--teal-pale);border-radius:50%;font-size:12px;font-weight:650}.contact-form-step h3>.line-icon{margin-left:auto;width:23px;height:23px;color:#6b8268}.contact-step-help{font-size:14px;color:var(--muted);margin:-10px 0 20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 16px}.field{min-width:0;margin:0;padding:0;border:0}.field.full{grid-column:1/-1}.field label,.field legend{display:block;font-size:14px;font-weight:550;margin-bottom:9px;padding:0}.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid #bfcabb;border-radius:11px;background:#fffefa;color:var(--ink);font-size:16px;line-height:1.4;transition:border-color .2s}.field input:hover,.field select:hover,.field textarea:hover{border-color:#819977}.field textarea{min-height:110px;resize:vertical}.radio-grid{display:flex;flex-wrap:wrap;gap:9px}.field .radio-card,.radio-card{display:flex;align-items:flex-start;gap:10px;min-height:47px;padding:12px 14px;border:1px solid #c9d2c4;background:transparent;border-radius:13px;font-size:14px;font-weight:400;margin:0;line-height:1.5;cursor:pointer}.radio-card:has(input:checked),.check-row label:has(input:checked){background:#e6efdf;border-color:#749367}.radio-card input{accent-color:var(--teal);margin:4px 0 0;flex-shrink:0;width:15px;height:15px}.check-row{display:flex;flex-wrap:wrap;gap:8px}.field .check-row label{display:flex;align-items:center;gap:7px;min-height:44px;border:1px solid #c9d2c4;border-radius:99px;padding:9px 12px;font-size:13px;font-weight:400;margin:0;cursor:pointer}.check-row input{accent-color:var(--teal);margin:0}.field .hint{margin:7px 0 0;font-size:13px}.privacy{font-size:13px;color:var(--muted);line-height:1.65;margin:12px 0 0}.form-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.form-actions .button{font-size:14px;padding:13px 19px;gap:10px}.form-status{font-size:14px;color:var(--teal);margin:16px 0 0}.form-status:empty{display:none}.footer{padding:30px 0;background:var(--ink);color:white}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:25px}.footer p{font-size:13px;margin:0;color:#e1e9de}.backtop{display:grid;place-items:center;flex:0 0 44px;height:44px;border:1px solid #94aa9e;border-radius:50%;text-decoration:none;font-size:20px}[data-reveal]{opacity:1;transform:none}
@media(min-width:1500px){.hero{padding-top:75px;padding-bottom:110px}}
@media(max-width:1080px){.nav{gap:18px}.nav-links{gap:18px}.nav-cta{display:none}.method-story{gap:40px}.about-grid{gap:50px}.contact-grid{gap:35px}.game-card{grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr)}.play-step{padding:20px}.game-prompt{padding:24px}.creature{width:110px;height:144px}.creature svg{width:100px;height:100px}.service-card{padding:20px}.service-card>p{min-height:100px}.service-disclosure summary{font-size:13px}.service-disclosure .button{padding:11px 13px}.research-grid{gap:15px}.research-grid article{padding:20px}}
@media(max-width:800px){.shell{width:calc(100% - 40px)}.nav{min-height:74px}.menu-toggle{display:block}.nav-links{display:none;position:absolute;left:0;right:0;top:74px;background:var(--paper);padding:15px 25px 25px;border-bottom:1px solid var(--line);box-shadow:0 12px 25px #183f3808;flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex}.nav-links a{padding:12px 4px;font-size:16px}.nav-links a:after{right:auto;width:25px;bottom:7px}.hero{padding:40px 0 65px}.hero h1{font-size:clamp(42px,7.2vw,64px)}.hero-copy{font-size:18px}.hero-mascots{margin-bottom:18px}.creature-section{padding:20px 0 75px}.game-card{display:flex;flex-direction:column}.play-step{padding:22px;order:0}.playground{min-height:360px;flex:none}.creature{width:118px;height:152px}.creature svg{width:108px;height:108px}.game-prompt{padding:25px;order:1}.support-prompt{order:2}.mood-choices{grid-template-columns:1fr 1fr}.method-story{padding:75px 0 35px;gap:30px;grid-template-columns:.9fr 1.1fr}.method-card h3{font-size:31px}.method-card>p{font-size:15px}.method-art figcaption{left:12px;bottom:12px;right:12px;text-align:center;padding:9px 12px;font-size:12px}.method-steps,.research-grid{grid-template-columns:1fr;gap:20px}.method-steps{gap:24px}.method-steps li:before{margin-bottom:8px}.research-grid article{padding:24px}.research-icon{margin-bottom:12px}.research-grid p{font-size:15px}.activity-mini-grid{grid-template-columns:1fr;gap:15px}.intro{padding:75px 0}.service-grid{grid-template-columns:1fr;gap:18px;max-width:610px;margin-inline:auto}.service-card{padding:25px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.card-top{grid-column:1/-1}.service-vignette{grid-column:1;grid-row:2/5;align-self:center;margin:0}.service-card h3{grid-column:2;margin-top:18px}.service-card>p{grid-column:2;min-height:0}.service-disclosure{grid-column:1/-1}.service-disclosure summary{font-size:15px}.service-disclosure .button{width:auto}.about{padding:80px 0}.about-grid{grid-template-columns:.75fr 1.25fr;gap:35px;align-items:start}.about-art{padding:25px;margin-top:55px}.about .section-title{font-size:35px}.steps{padding-bottom:75px}.step-grid{gap:25px}.step p{font-size:15px}.step h3{font-size:23px}.contact{padding:75px 0}.contact-grid{grid-template-columns:1fr;gap:35px}.contact-aside{position:static;text-align:center;max-width:600px;margin:auto}.contact-aside>p{max-width:none}.contact-vignette{display:none}.contact-direct{align-items:center}.contact-card{max-width:720px;width:100%;margin:auto}.section-head{margin-bottom:35px}.section-head p{font-size:16px}}
@media(max-width:540px){html{scroll-padding-top:90px}.shell{width:calc(100% - 32px)}.brand{font-size:16px;gap:8px}.menu-toggle{padding:9px 13px;font-size:14px}.hero{padding-top:28px}.hero-mascots{height:98px;width:205px;margin-bottom:18px}.hero-mascots svg{width:74px;height:74px}.hero-mascots svg:nth-child(2){width:90px;height:90px}.eyebrow{font-size:12px}.hero h1{font-size:clamp(37px,9.5vw,51px);line-height:1.12;margin:20px auto}.hero-copy{font-size:16px;line-height:1.7}.hero-actions{flex-direction:column;align-items:center;margin-top:25px;gap:10px}.hero-actions .button{width:100%;max-width:330px}.hero-note{font-size:12px;margin-top:20px}.creature-head h2{font-size:35px}.creature-head>p{font-size:15px}.creature-subtitle{font-size:18px}.game-card{border-radius:23px}.play-step{padding:17px}.play-step>p:not(.creature-status){font-size:13px}.playground{min-height:330px;margin-top:15px;border-radius:17px}.creature{width:89px;height:125px;border-radius:22px;padding:3px}.creature svg{width:83px;height:83px}.creature-name{font-size:10px;padding:3px 7px}.creature[data-shape="circle"]{left:4%;top:44%}.creature[data-shape="triangle"]{left:36%;top:28%}.creature[data-shape="square"]{left:67%;top:48%}.playground-reset{font-size:12px;top:10px;right:10px;padding:9px 12px}.playground-hint{font-size:12px;left:14px;bottom:12px;max-width:88%}.creature-status{font-size:13px;margin:12px 0 0}.game-prompt{padding:22px 18px}.mood-choices{grid-template-columns:1fr}.mood-choices button{font-size:14px}.support-choices button{font-size:13px}.method-story{grid-template-columns:1fr;padding-top:65px;gap:27px}.method-art{max-width:460px;margin:auto;border-radius:24px}.method-art img{aspect-ratio:1.3}.method-card h3{font-size:34px}.method-card>p{font-size:16px}.method-key{font-size:14px!important}.method-story .activity-label{font-size:13px}details>summary{font-size:16px;padding:18px 0;gap:14px}.method-purpose{padding:20px}.research-grid{gap:12px}.research-grid article{padding:20px}.activity-mini h2{font-size:30px}.activity{padding:20px}.activity-tabs{gap:7px}.activity-tabs button{padding:9px 12px;font-size:13px}.activity-result{gap:12px}.activity-picture{width:42px;height:42px;border-radius:13px}.activity-picture .line-icon{width:25px;height:25px}.activity-result h3{font-size:21px}.intro,.about,.contact{padding:70px 0}.section-head h2,.section-title{font-size:36px}.service-card{display:block;padding:24px}.service-vignette{max-width:300px;margin:15px auto 21px}.service-card h3{margin:0 0 14px;font-size:29px}.service-card>p{font-size:16px;margin-bottom:24px}.service-disclosure summary{font-size:15px}.service-disclosure p,.point{font-size:15px}.service-disclosure .button{width:100%}.about-grid{grid-template-columns:1fr;gap:32px}.about-art{margin:0 auto;width:min(310px,90%);padding:28px}.portrait-sticker{right:-16px}.about .section-title{font-size:36px}.about-copy{font-size:16px}.timeline{gap:8px}.step-grid{grid-template-columns:1fr;gap:28px}.step{padding-top:23px}.step h3{margin-top:18px;font-size:25px}.step p{font-size:16px}.contact-aside h2{font-size:39px}.contact-card{padding:24px 19px;border-radius:22px}.form-grid{grid-template-columns:1fr;gap:19px}.field.full{grid-column:auto}.contact-form-step h3{font-size:18px;gap:9px}.contact-form-step h3>.line-icon{width:21px;height:21px}.radio-grid{gap:8px}.field .radio-card{font-size:14px;width:100%}.field .check-row label{font-size:13px;padding:10px}.form-actions{flex-direction:column}.footer-inner{gap:16px}.footer p{font-size:12px;max-width:240px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.nav-cta:hover,.creature:hover svg,.creature.dragging svg{transform:none}}

/* Finishing details: quiet feedback, legible states and lighter form flow. */
.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}
p{text-wrap:pretty}.about-copy:first-of-type{font-size:18px;line-height:1.7;color:var(--ink)}
.button>span[aria-hidden],.nav-cta>span[aria-hidden]{display:inline-block;transition:transform .2s var(--ease)}
.button:hover>span[aria-hidden],.nav-cta:hover>span[aria-hidden]{transform:translate(2px,-2px)}
.button:active,.nav-cta:active{transform:translateY(0);box-shadow:none}

.hero-mascots{animation:soft-hello .7s var(--ease) both}
@keyframes soft-hello{from{opacity:0;translate:0 9px}to{opacity:1;translate:0 0}}
.game-card{transition:border-color .2s,box-shadow .2s}.game-card:focus-within{border-color:#91a886;box-shadow:0 18px 60px #183f380a}
.creature:focus-visible{outline-offset:-3px}.creature.is-selected .creature-name:before{content:"✓ ";font-weight:700}
.mood-choices button,.support-choices button{position:relative}.mood-choices button:after,.support-choices button:after{content:"";display:block;flex-shrink:0;width:6px;height:11px;border:solid currentColor;border-width:0 2px 2px 0;transform:rotate(45deg);margin-left:auto;margin-right:3px;opacity:0;transition:opacity .16s}
.mood-choices button[aria-pressed="true"]:after,.support-choices button[aria-pressed="true"]:after{opacity:1}
.support-choices button{display:inline-flex;align-items:center;gap:9px}.support-choices button:after{margin-left:0;width:5px;height:9px}
.conversation-card{display:flex;gap:13px;margin-top:22px;padding:17px 18px;background:#f2f3e9;border:1px solid #e1e6d8;border-radius:16px}
.conversation-card>.line-icon{width:23px;height:23px;margin-top:2px;color:#55764d}.conversation-label{display:block;font-size:12px;line-height:1.5;color:var(--muted);font-weight:600;margin-bottom:6px}.conversation-card p{font-size:15px;line-height:1.6;margin:0;color:var(--ink)}
.method-art{border:1px solid #dedfcf}.method-art figcaption{border:1px solid #fffffa;backdrop-filter:blur(8px)}
.method-more>summary,.method-research>summary,.activity-more>summary{transition:color .2s,padding .2s}.method-more[open]>summary,.method-research[open]>summary,.activity-more[open]>summary{color:var(--teal)}
.service-card{--card-accent:#92b79a;--card-tint:#f2f5eb;position:relative;transition:border-color .22s,box-shadow .22s,transform .22s var(--ease)}.card-home{--card-accent:#cf9b85;--card-tint:#f8efe6}.card-centers{--card-accent:#aaa2bc;--card-tint:#f1edf6}
.service-card .service-vignette{border-radius:20px;background:var(--card-tint);transition:transform .25s var(--ease)}.service-card .card-index{display:flex;align-items:center;gap:9px}.service-card .card-index:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--card-accent)}
.service-card:focus-within{border-color:var(--card-accent);box-shadow:0 10px 32px #183f3808}.service-disclosure summary{transition:color .2s}.service-disclosure[open]>summary{color:var(--teal)}.service-detail-copy{padding-bottom:4px}
.research-grid article:nth-child(2){background:#f5ede4}.research-grid article:nth-child(3){background:#eeebf2}.research-grid a:hover{color:var(--ink);text-decoration-thickness:2px}
.about-art{box-shadow:inset 0 0 0 1px #d4ddce}.about-art img{border:5px solid #fffefa;box-shadow:0 10px 30px #183f3809}
.step:nth-child(2){border-top-color:#d5b19a}.step:nth-child(3){border-top-color:#c8b874}.step-icon{transition:transform .22s var(--ease)}
.schedule-disclosure{border-bottom:1px solid var(--line);padding-bottom:0}.contact-form-step.schedule-disclosure{padding-top:0;margin-top:26px}.schedule-disclosure>summary{padding:20px 0;min-height:70px;gap:12px}.schedule-disclosure>summary:after{font-size:25px}.schedule-disclosure>summary h3{margin:0;flex:1;font-size:18px}.schedule-optional{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:3px}.schedule-disclosure[open]{padding-bottom:25px}.schedule-disclosure+.contact-form-step{border-top:0;padding-top:0;margin-top:26px}.schedule-disclosure .contact-step-help{margin:2px 0 20px}
.field label,.field legend{transition:color .16s}.field:focus-within>label,.field:focus-within>legend{color:var(--teal)}.field input:not([type=radio]):not([type=checkbox]):focus,.field select:focus,.field textarea:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 3px #245c4e0b}.field input::placeholder,.field textarea::placeholder{color:#69776a;opacity:1}
.contact-direct a{transition:color .18s}.contact-direct a:hover{color:#347249}.backtop{transition:background .2s,transform .2s}.backtop:hover{background:#34594c;transform:translateY(-2px)}
@media(hover:hover) and (pointer:fine){.service-card:hover{border-color:var(--card-accent);box-shadow:0 12px 35px #183f3808;transform:translateY(-3px)}.service-card:hover .service-vignette{transform:translateY(-2px)}.step:hover .step-icon{transform:rotate(-5deg)}}
@media(max-width:540px){.creature-name{font-size:11px;padding-inline:5px}.about-copy:first-of-type{font-size:17px}.conversation-card{padding:15px;gap:10px}.conversation-card p{font-size:14px}.schedule-disclosure>summary h3{font-size:17px}.schedule-disclosure>summary{gap:10px}.about-art img{border-width:4px}}
@media(prefers-reduced-motion:reduce){.hero-mascots{animation:none;opacity:1;translate:none}.button:hover>span[aria-hidden],.nav-cta:hover>span[aria-hidden],.service-card:hover,.service-card:hover .service-vignette,.step:hover .step-icon,.backtop:hover{transform:none}}

.schedule-label{display:block;min-width:0;font-size:inherit;font-weight:inherit;line-height:1.35}

/* Decorative contact confetti never intercepts clicks, focus or scrolling. */
.contact-confetti{position:fixed;inset:0;z-index:70;display:block;width:100%;height:100%;pointer-events:none;user-select:none;contain:strict}

/* Choose a game first; its full material opens only on request. */
.activity-library .activity-mini-grid{align-items:center;gap:clamp(28px,5vw,64px);padding:24px 0 0}
.activity-library .activity-mini h2{font-size:clamp(31px,3.5vw,44px);line-height:1.12;margin:16px 0 22px}
.activity-library .activity-mini-grid>div:first-child>p{max-width:440px;font-size:16px;line-height:1.75;margin-bottom:0}
.activity-picker>.activity-label{margin:0;font-size:13px}
.activity-launch{display:grid;grid-template-columns:54px minmax(0,1fr) 22px;align-items:center;gap:15px;width:100%;min-width:0;margin:18px 0 0;padding:20px 17px;border:1px solid #b6c9aa;border-radius:19px;background:#fffefa;text-align:left;color:var(--ink);cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.activity-launch:hover{background:#f6f8ee;border-color:#719266;transform:translateY(-2px)}
.activity-launch[aria-expanded="true"]{background:#e5eddd;border-color:#719266}
.activity-launch-copy{display:grid;gap:8px;min-width:0}
.activity-launch-copy strong{font-size:22px;font-weight:600;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
.activity-launch-copy>span{font-size:14px;line-height:1.5;color:var(--muted)}
.activity-launch-action{font-size:12px;font-weight:600;line-height:1.5;color:var(--teal)}
.activity-launch-arrow{font-size:23px;line-height:1;color:var(--teal);justify-self:end}
.activity-library .activity-upcoming-label{font-size:12px;font-weight:600;color:var(--muted);margin:24px 0 10px}
.activity-upcoming{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.activity-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:66px;padding:10px 7px;border:1px solid #d4dccf;border-radius:13px;background:#f5f6ef;color:#596a5e;font-size:13px;line-height:1.4;text-align:center;opacity:1;cursor:default}
.activity-soon small{font-size:10px;line-height:1.5;letter-spacing:.015em;color:#68776a}
.shapes-content{margin-top:44px;padding-top:28px;border-top:1px solid var(--line)}
.shapes-content-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:36px}
.shapes-content-bar>.activity-label{font-size:12px}
.shapes-content-bar .button{flex-shrink:0;font-size:12px;min-height:44px;padding:10px 15px}
.shapes-content-end{display:flex;justify-content:center;padding-top:30px}
@media(max-width:800px){.activity-library .activity-mini-grid{grid-template-columns:1fr;gap:28px}.activity-library .activity-mini-grid>div:first-child>p{max-width:620px}}
@media(max-width:540px){.activity-library .activity-mini-grid{padding-top:10px;gap:24px}.activity-library .activity-mini h2{font-size:32px}.activity-launch{grid-template-columns:42px minmax(0,1fr);gap:13px;padding:17px 14px}.activity-launch .activity-picture{width:42px;height:42px}.activity-launch-copy strong{font-size:20px}.activity-launch-arrow{display:none}.activity-upcoming{grid-template-columns:1fr}.activity-soon{flex-direction:row;justify-content:space-between;min-height:44px;padding:10px 13px;font-size:14px}.activity-soon small{font-size:11px}.shapes-content{margin-top:32px;padding-top:22px}.shapes-content-bar{align-items:flex-start;flex-direction:column;gap:12px;margin-bottom:26px}.shapes-content-bar .button{align-self:flex-end}}
@media(prefers-reduced-motion:reduce){.activity-launch{transition:none}.activity-launch:hover{transform:none}}

/* Official identity: the supplied artwork, framed without altering its pixels. */
.brand{display:block;flex:0 1 300px;max-width:300px;min-width:0;padding:7px 0;line-height:1}.brand-logo{display:block;width:100%;height:auto;overflow:hidden}.topbar{background:#fcfaf5}.nav{gap:26px}.nav-links{flex-shrink:0}.nav-links a{white-space:nowrap}.nav-cta{flex-shrink:0}.nav-links.open{top:100%}
.footer-identity{display:flex;align-items:center;gap:28px;min-width:0}.footer-brand{display:block;flex:0 1 285px;width:285px;max-width:100%;padding:10px 12px;border-radius:15px;background:#fcfaf5;line-height:1}.footer-brand .brand-logo{width:100%}.footer-identity>p{font-size:13px}
@media(max-width:1080px){.brand{flex-basis:275px;max-width:275px}.nav{gap:20px}}
@media(max-width:920px){.menu-toggle{display:block;flex-shrink:0}.nav{min-height:80px}.nav-links{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);padding:15px 25px 25px;border-bottom:1px solid var(--line);box-shadow:0 12px 25px #183f3808;flex-direction:column;align-items:stretch;gap:0}.nav-links.open{display:flex;top:100%}.nav-links a{padding:12px 4px;font-size:16px}.nav-links a:after{right:auto;width:25px;bottom:7px}.brand{flex-basis:270px;max-width:270px}}
@media(max-width:700px){.footer-identity{flex-direction:column;align-items:flex-start;gap:18px}.footer-inner{align-items:flex-start}.footer .backtop{margin-top:12px}.footer-brand{flex-basis:auto;width:275px}.footer-identity>p{max-width:none}}
@media(max-width:540px){.nav{min-height:74px;gap:12px}.brand{flex:0 1 225px;max-width:min(225px,calc(100% - 76px));padding:7px 0}.footer-brand{width:245px;padding:9px 10px;border-radius:13px}.footer-inner{gap:15px}.footer-identity{max-width:calc(100% - 59px)}.footer-identity>p{font-size:12px}}

/* One movable speaker between a shared welcome and farewell. */
.hero-mascots{display:block;width:144px;height:144px;animation:none;translate:none;opacity:1;margin:0 auto}.hero-mascots>.mascot-art{width:100%;height:100%;margin:0;transform:none!important}

.farewell-static{pointer-events:none;user-select:none}
.tour-companions{position:fixed;z-index:45;left:0;top:0;width:128px;height:128px;transform:translate3d(var(--tour-x,-200px),var(--tour-y,0px),0);transition:transform .45s cubic-bezier(.2,.8,.2,1);will-change:transform;pointer-events:auto}
.tour-avatar{display:block;position:relative;width:100%;height:100%;margin:0;padding:0;border:1px solid transparent;border-radius:30px;background:transparent;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.tour-avatar:focus-visible{outline:3px solid #946000;outline-offset:-4px;background:#f7f5ed55}.tour-avatar:hover{border-color:#91a78670}.tour-avatar:active{cursor:grabbing}.tour-pet{display:block;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform-origin:50% 90%}.tour-pet>.mascot-art{display:block;width:100%;height:100%;max-width:none;pointer-events:none}
.tour-companions[data-state="hero"] .tour-pet.is-speaking:not([hidden]){animation:companion-hello 1s ease-in-out 2}.tour-companions[data-state="docked"] .tour-pet:not([hidden]){animation:companion-goodbye 1.35s ease-in-out 2}.tour-companions[data-state="guide"] .tour-pet:not([hidden]){animation:companion-hello .7s ease-in-out 1}
@keyframes companion-hello{0%,100%{transform:translateY(0) rotate(0)}45%{transform:translateY(-6px) rotate(-3deg)}70%{transform:translateY(-1px) rotate(2deg)}}
@keyframes companion-goodbye{0%,100%{transform:translateY(0) rotate(0)}25%{transform:translateY(-5px) rotate(-6deg)}50%{transform:translateY(-3px) rotate(5deg)}75%{transform:translateY(-1px) rotate(-3deg)}}
.tour-companions[data-dragging="true"]{transition:none!important}.tour-companions[data-dragging="true"] .tour-avatar{cursor:grabbing;border-color:#6d8960;background:#f7f5ed44}.tour-companions[data-dragging="true"] .tour-pet{animation:none!important}
.tour-guide{--guide-tone:#dce9d580;position:fixed;z-index:44;left:0;top:0;width:260px;max-width:calc(100vw - 24px);margin:0;padding:0;background:transparent;border:0;transform:translate3d(var(--cloud-x,-400px),var(--cloud-y,0px),0);text-align:left;isolation:isolate;overflow:visible}
.tour-guide[data-speaker="square"]{--guide-tone:#f4e1d580}.tour-guide[data-speaker="circle"]{--guide-tone:#f5e8b980}
.thought-cloud-shape{position:absolute;inset:0;width:100%;height:100%;max-width:none;z-index:-1;overflow:visible;pointer-events:none;filter:blur(3px) drop-shadow(0 3px 8px #183f380a)}.thought-cloud-shape path{fill:url(#thought-cloud-fill);stroke:none}
.tour-cloud-content{position:relative;padding:18px 25px 23px;max-height:inherit;overflow-y:auto;scrollbar-width:thin;border-radius:30px}.tour-guide-toolbar{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:32px;margin:-8px -8px 0 0}.tour-speaker{display:inline-block;font-size:11px;font-weight:600;line-height:1.5;margin:0;padding:2px 7px;background:var(--guide-tone);border-radius:99px}
.tour-close{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);font:18px/1 system-ui;cursor:pointer}.tour-close:hover{background:#edf1e780;color:var(--ink)}.tour-message{font-size:13px;line-height:1.5;margin:0;color:var(--ink);text-wrap:pretty}
.thought-tail{position:absolute;display:flex;gap:4px;align-items:center;justify-content:center;width:36px;height:18px;pointer-events:none;z-index:-1}.thought-tail i{display:block;flex-shrink:0;background:radial-gradient(circle,#fffefaeb 28%,#fffefab3 50%,#fffefa00 74%);border:0;border-radius:50%;filter:drop-shadow(0 1px 2px #183f380a)}.thought-tail i:nth-child(1){width:4px;height:4px}.thought-tail i:nth-child(2){width:7px;height:7px}.thought-tail i:nth-child(3){width:12px;height:12px}
.tour-guide[data-placement="right"] .thought-tail{right:calc(100% - 8px);top:var(--cloud-tail-y,50%);transform:translateY(-50%)}.tour-guide[data-placement="left"] .thought-tail{left:calc(100% - 8px);top:var(--cloud-tail-y,50%);flex-direction:row-reverse;transform:translateY(-50%)}
.tour-guide[data-placement="top"] .thought-tail{top:calc(100% - 8px);left:var(--cloud-tail-x,50%);width:18px;height:36px;flex-direction:column-reverse;transform:translateX(-50%)}.tour-guide[data-placement="bottom"] .thought-tail{bottom:calc(100% - 8px);left:var(--cloud-tail-x,50%);width:18px;height:36px;flex-direction:column;transform:translateX(-50%)}
.farewell{position:relative;overflow:hidden;padding:70px 0 92px;text-align:center;background:#f6f4eb;border-top:1px solid #dce3d5}.farewell>.shell{position:relative}.farewell-dock{position:relative;width:144px;height:144px;margin:0 auto}.farewell-static{position:absolute;inset:0}.farewell .kicker{font-size:12px}.farewell h2{font-size:clamp(36px,4.6vw,56px);margin:16px 0}.farewell-message{font-size:20px;color:var(--muted);margin:0}.farewell-orbit{position:absolute;left:50%;top:50px;transform:translateX(-50%) rotate(-9deg);width:280px;max-width:80vw;height:108px;border:1px solid #cbd7c780;border-radius:50%;pointer-events:none}.farewell-orbit:before{content:"";position:absolute;left:18%;top:-4px;width:8px;height:8px;border-radius:50%;background:var(--sun)}.farewell-orbit:after{content:"";position:absolute;right:13%;bottom:4px;width:9px;height:9px;background:var(--coral);border-radius:3px;transform:rotate(13deg)}
.tour-companions[data-motion="paused"],.tour-companions[data-motion="reduced"]{transition:none}.tour-companions[data-motion="paused"] *, .tour-companions[data-motion="reduced"] *{animation:none!important;transition:none!important}
@media(max-width:700px){.tour-companions{width:112px;height:112px;transition-duration:.35s}.tour-guide{width:248px;max-width:calc(100vw - 20px)}.tour-cloud-content{padding:17px 23px 21px}.tour-avatar{border-radius:26px}.hero-mascots{width:128px;height:128px}.farewell{padding:55px 0 65px}.farewell-dock{width:128px;height:128px;margin-bottom:0}.farewell-orbit{width:250px;top:46px;height:99px}.farewell-message{font-size:17px}}
@media(max-height:450px){.tour-guide{width:248px;max-height:calc(100dvh - 16px)}.tour-cloud-content{padding:14px 22px 18px}.tour-guide-toolbar{margin-bottom:0}.tour-message{line-height:1.45}}
@media(prefers-reduced-motion:reduce){.tour-companions{transition:none!important}.tour-companions *{animation:none!important;transition:none!important}}

/* All three join the welcome and goodbye, using the same interactive avatar. */
.hero-mascots,.farewell-dock{width:376px;max-width:100%;height:144px}
.hero-mascots,.farewell-static{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:0}
.farewell-static>.tour-pet{position:relative;inset:auto;width:100%;height:128px}
.tour-companions[data-group="true"]{width:360px}
.tour-companions[data-group="true"] .tour-avatar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;border-radius:40px}
.tour-companions[data-group="true"] .tour-pet{position:relative;inset:auto;min-width:0;width:100%;height:100%}
.tour-companions[data-group="true"] .tour-pet:nth-child(2){animation-delay:.12s}
.tour-companions[data-group="true"] .tour-pet:nth-child(3){animation-delay:.24s}
.farewell-orbit{width:430px}
@media(max-width:700px){.hero-mascots,.farewell-dock{width:304px;height:120px}.farewell-static>.tour-pet{height:104px}.tour-companions[data-group="true"]{width:min(288px,calc(100vw - 24px));height:104px}.farewell-orbit{width:340px}}

/* The opening trio is larger; travelling and final companions retain their usual sizes. */
.hero-mascots{width:480px;height:176px;pointer-events:none;user-select:none}
@media(max-width:700px){.hero-mascots{width:360px;height:132px}}

/* Real geometry is drawn on transparent canvases. The DOM face is a no-WebGL fallback. */
.hero-mascots,.tour-companions,.farewell-static,.creature{mix-blend-mode:normal}
.mascot-art[data-mascot-3d]{display:block;position:relative;isolation:isolate;aspect-ratio:1;pointer-events:none;user-select:none;overflow:visible;perspective:450px}
.hero-mascots>.mascot-art,.tour-pet>.mascot-art{width:100%;height:100%;max-width:none}
.creature>.mascot-art{width:100%;max-width:118px;height:auto;flex-shrink:0;transition:transform .2s var(--ease)}
.creature:hover>.mascot-art{transform:translateY(-3px)}
.creature.dragging>.mascot-art{transform:scale(1.04)}
.mascot-art>canvas{display:block;position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none;opacity:0}
.mascot-art[data-renderer="webgl"]>canvas{opacity:1}
.mascot-art[data-renderer="webgl"]>.mascot-fallback{display:none}
.mascot-fallback{--coat:#f3ca65;--coat-light:#fff0ab;--coat-dark:#dbaa45;position:absolute;inset:0;display:block;pointer-events:none}
[data-mascot-3d="triangle"]>.mascot-fallback{--coat:#8ac7b4;--coat-light:#caeee0;--coat-dark:#63a78c;--mascot-rest-angle:-6deg}
[data-mascot-3d="square"]>.mascot-fallback{--coat:#f7a691;--coat-light:#ffc6b0;--coat-dark:#d98478;--mascot-rest-angle:8deg}
.mascot-fallback:before{content:"";position:absolute;width:63%;height:10%;left:19%;bottom:5%;background:#213e3124;filter:blur(5px);border-radius:50%}
.mascot-solid{position:absolute;inset:10% 10% 12%;display:block;border-radius:50%;background:radial-gradient(ellipse at 28% 20%,var(--coat-light),var(--coat) 53%,var(--coat-dark));box-shadow:inset -6px -8px 13px #31513a20,inset 2px 2px 5px #fff7,0 0 3px 2px var(--coat);transform:rotateZ(var(--mascot-rest-angle,0deg)) rotateX(var(--head-pitch,0deg)) rotateY(var(--head-yaw,0deg));transform-style:preserve-3d}
[data-mascot-3d="triangle"] .mascot-solid{inset:7% 8% 12%;clip-path:polygon(50% 0,55% 3%,99% 91%,98% 98%,92% 100%,8% 100%,2% 98%,1% 91%,45% 3%);border-radius:18%;background:linear-gradient(120deg,var(--coat-light),var(--coat) 52%,var(--coat-dark))}
[data-mascot-3d="square"] .mascot-solid{inset:13% 12% 15%;border-radius:23%;background:linear-gradient(140deg,var(--coat-light),var(--coat) 52%,var(--coat-dark))}
.mascot-face{position:absolute;inset:0;display:block;transform:translateZ(7px)}
[data-mascot-3d="triangle"] .mascot-face{inset:17% 7% -1%}
.mascot-eye{position:absolute;top:40%;left:30%;width:11%;height:16%;border-radius:50%;background:radial-gradient(ellipse at 32% 24%,#486b5e,#173c31 55%,#0b251e);box-shadow:0 2px 3px #244c4038,inset 0 1px 2px #87a58e60;overflow:hidden;transform:translate(var(--gaze-x,0px),var(--gaze-y,0px))}
.mascot-eye+.mascot-eye{left:auto;right:30%}
.mascot-eye i{position:absolute;left:24%;top:16%;width:25%;height:20%;display:block;border-radius:50%;background:#fffdf0;box-shadow:0 0 2px #fff5}
.mascot-cheek{position:absolute;top:54%;left:20%;width:13%;height:13%;border-radius:50%;background:radial-gradient(circle at 38% 32%,#f4a196,#ec8b81);opacity:.86}
.mascot-cheek+.mascot-cheek{left:auto;right:20%}
.mascot-smile{position:absolute;left:37%;top:60%;width:26%;height:12%;border:3px solid #214a3c;border-top:0;border-radius:0 0 60% 60%;transform:translateZ(4px)}
@media(prefers-reduced-motion:reduce){.creature:hover>.mascot-art,.creature.dragging>.mascot-art{transform:none!important}.mascot-solid{transform:rotateZ(var(--mascot-rest-angle,0deg))!important}.creature>.mascot-art{transition:none}}

/* Final surface and interaction details; existing layout and identity stay in charge. */
.topbar { transition: box-shadow .2s ease; }
.topbar.is-scrolled { box-shadow: 0 5px 22px #183f3809; }

.hero-copy,
.section-head > p,
.method-card > p,
.about-copy,
.service-card > p {
  text-wrap: pretty;
}

.service-card > p,
.service-detail-copy,
.research-grid article,
.contact-step-help {
  overflow-wrap: break-word;
}

.service-card > p { line-height: 1.7; }
.service-detail-copy > p { line-height: 1.75; }
.service-highlights { margin-block: 20px; }
.service-highlights li { padding-left: 3px; line-height: 1.7; }
.service-highlights li::marker { color: var(--card-accent, #92b79a); }
.service-card:has(.service-disclosure[open]) {
  border-color: var(--card-accent, #92b79a);
  box-shadow: 0 12px 30px #183f3806;
}
.service-detail-copy .service-note { border-left: 2px solid var(--card-accent, #92b79a); }

.activity-picker {
  border: 1px solid #dce3d3;
  background: linear-gradient(145deg, #f7f8f0, #eaf0e1);
  box-shadow: inset 0 1px 0 #ffffffb3, 0 12px 35px #183f3805;
}
.activity-picker .activity-launch {
  box-shadow: 0 3px 10px #183f3805;
  background: linear-gradient(145deg, #ffffff, #fffefa);
}
.activity-picker .activity-launch[aria-expanded="true"] {
  background: #e5eddd;
  box-shadow: inset 0 0 0 1px #71926626;
}
.activity-picker .activity-soon { background: #ffffff65; }
.activity-picker .activity-launch-copy > span { line-height: 1.6; }
.activity-library .activity-upcoming-label {
  border-top: 1px solid #cfd9c67d;
  padding-top: 19px;
}

.contact-card {
  background: linear-gradient(155deg, #ffffff 0%, #fffefa 45%, #f7f9f1 100%);
  box-shadow: 0 22px 60px #183f3807, inset 0 1px 0 #ffffff;
}
.contact-form-step + .contact-form-step { border-top-color: #d8e0d27d; }
.contact-card .field input:not([type="radio"]):not([type="checkbox"]),
.contact-card .field select,
.contact-card .field textarea {
  background: #ffffffb3;
  box-shadow: inset 0 1px 2px #183f3803;
}
.contact-card .field input:not([type="radio"]):not([type="checkbox"]):focus,
.contact-card .field select:focus,
.contact-card .field textarea:focus {
  background: #ffffff;
  box-shadow: 0 0 0 3px #245c4e0b;
}
.contact-card .radio-card,
.contact-card .check-row label {
  transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.contact-card .radio-card:has(input:focus-visible),
.contact-card .check-row label:has(input:focus-visible) {
  outline: 2px solid #946000;
  outline-offset: 3px;
}
.contact-card .privacy { max-width: 61ch; }
.contact-card .form-status:not(:empty) {
  padding: 14px 16px;
  border: 1px solid #cbddc7;
  border-radius: 12px;
  background: #edf4e8;
  line-height: 1.65;
}

/* Errors become visible only when the form marks a field or validates a submission. */
.contact-card .field-error {
  margin: 8px 0 0;
  color: #923d30;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.55;
}
.contact-card .field.has-error > label,
.contact-card .field.has-error > legend { color: #923d30; }
.contact-card .field.has-error input:not([type="radio"]):not([type="checkbox"]),
.contact-card .field.has-error select,
.contact-card .field.has-error textarea,
.contact-card.was-validated input:not([type="radio"]):not([type="checkbox"]):invalid,
.contact-card.was-validated select:invalid,
.contact-card.was-validated textarea:invalid {
  border-color: #ad6453;
  background: #fffaf7;
}
.contact-card .field.has-error .radio-grid,
.contact-card .field.has-error > .radio-card {
  outline: 1px solid #ad6453;
  outline-offset: 5px;
  border-radius: 13px;
}
.schedule-selection {
  display: block;
  margin-top: 7px;
  color: var(--teal);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.schedule-disclosure[open] .schedule-selection,
.schedule-selection:empty { display: none; }

:is(.method-more, .method-research, .activity-more, .service-disclosure, .schedule-disclosure) > summary {
  border-radius: 5px;
  transition: color .18s ease;
}
:is(.method-more, .method-research, .activity-more, .service-disclosure, .schedule-disclosure) > summary::after {
  display: grid;
  place-items: center;
  flex-basis: 30px;
  width: 30px;
  height: 30px;
  border: 1px solid #cbd5c6;
  border-radius: 50%;
  background: #fffefa80;
  color: var(--teal);
  font-size: 23px;
  line-height: 1;
  transition: background-color .18s ease, border-color .18s ease;
}
:is(.method-more, .method-research, .activity-more, .service-disclosure, .schedule-disclosure)[open] > summary::after {
  border-color: #a1b599;
  background: #e6eedf;
}
.service-disclosure > summary::after { flex-basis: 27px; width: 27px; height: 27px; font-size: 21px; }
.method-purpose { box-shadow: inset 0 0 0 1px #d7e0cf; }
.method-steps b { line-height: 1.4; }
.research-grid article { border: 1px solid #dce2d466; }
.research-grid a { text-decoration-thickness: 1px; }

.button:focus-visible,
.activity-launch:focus-visible,
.quiet-control:focus-visible,
.contact-card :is(input, select, textarea):focus-visible {
  outline: 3px solid #946000;
  outline-offset: 4px;
}
.mood-choices button:focus-visible,
.support-choices button:focus-visible { outline-offset: 3px; }
.button:active,
.nav-cta:active,
.activity-launch:active,
.quiet-control:active {
  transform: none;
  box-shadow: inset 0 2px 5px #183f381c;
}
.mood-choices button:active,
.support-choices button:active,
.playground-reset:active { box-shadow: inset 0 2px 4px #183f3814; }

.quiet-control {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #b7c6af;
  border-radius: 99px;
  background: #fffefa80;
  color: var(--teal);
  font: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition: color .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease;
}
.quiet-control .line-icon { width: 18px; height: 18px; }
.contact-direct-tools { margin-top: 17px; }
.contact-direct-tools .quiet-control { max-width: 100%; }
.contact-direct-tools .copy-email-status {
  margin: 8px 0 0;
  color: var(--teal);
  font-size: 14px;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.copy-email-status:empty { display: none; }
.copy-email-address {
  color: var(--ink);
  font-weight: 600;
  overflow-wrap: anywhere;
  user-select: text;
  -webkit-user-select: text;
  cursor: text;
}
.footer-tools {
  display: flex;
  flex: 0 1 auto;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-tools .quiet-control {
  color: #f3f6ef;
  border-color: #91a79c;
  background: #ffffff05;
  font-size: 14px;
}
.footer-tools .quiet-control[aria-pressed="true"] { background: #ffffff12; border-color: #c2d1bc; }
.footer-tools :is(.quiet-control, .backtop):focus-visible { outline-color: #eed073; }
.footer-tools .backtop { margin-top: 0; }
.quiet-control:disabled,
.quiet-control[aria-disabled="true"] { cursor: default; opacity: .7; }
.contact-direct-tools .quiet-control[data-copy-state="success"] {
  background: #e5eddd;
  border-color: #719266;
}
.contact-card .form-status[data-state="error"] {
  color: #923d30;
  background: #fff5ef;
  border-color: #dbb5a7;
}
.motion-switch {
  display: inline-block;
  flex: 0 0 27px;
  width: 27px;
  height: 16px;
  padding: 3px;
  border-radius: 20px;
  background: #ffffff24;
}
.motion-switch::after {
  content: "";
  display: block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #f3f6ef;
  transition: transform .18s ease;
}
#motion-toggle[aria-pressed="true"] .motion-switch { background: #9bb891; }
#motion-toggle[aria-pressed="true"] .motion-switch::after { transform: translateX(11px); }

@media (hover: hover) and (pointer: fine) {
  .quiet-control:hover { border-color: #718c64; background: #f1f6e9; }
  .footer-tools .quiet-control:hover { border-color: #c2d1bc; background: #ffffff12; }
  .activity-picker .activity-launch:hover { background: #f6f8ee; box-shadow: 0 7px 16px #183f3808; }
  .activity-picker .activity-launch:active { box-shadow: inset 0 2px 5px #183f381c; }
  .contact-card .radio-card:hover,
  .contact-card .check-row label:hover { border-color: #8ca181; }
}

@media (hover: none), (pointer: coarse) {
  .button:hover,
  .nav-cta:hover,
  .activity-launch:hover,
  .backtop:hover { transform: none; }
}

@media (max-width: 800px) {
  .contact-direct-tools { text-align: center; }
  .footer-inner { flex-wrap: wrap; }
  .footer-tools { justify-content: flex-start; }
}

@media (max-width: 540px) {
  .service-disclosure > summary { gap: 12px; line-height: 1.55; }
  .service-disclosure ul { font-size: 15px; }
  .activity-picker { padding: 19px; }
  .activity-picker .activity-launch-copy > span { font-size: 14px; }
  .contact-card .field-error { font-size: 14px; }
  .schedule-selection { font-size: 13px; }
  .footer-tools { flex-basis: 100%; padding-top: 4px; }
  .footer-tools .quiet-control { max-width: calc(100% - 56px); text-align: left; }
}

@media (prefers-reduced-motion: reduce) {
  .topbar,
  .quiet-control,
  .contact-card .radio-card,
  .contact-card .check-row label,
  :is(.method-more, .method-research, .activity-more, .service-disclosure, .schedule-disclosure) > summary,
  :is(.method-more, .method-research, .activity-more, .service-disclosure, .schedule-disclosure) > summary::after {
    transition: none;
  }
}

@media (forced-colors: active) {
  .quiet-control,
  .contact-card .field.has-error input,
  .contact-card .field.has-error select,
  .contact-card .field.has-error textarea { border-color: ButtonText; }
  .contact-card .field-error { color: CanvasText; }
  .footer-tools :is(.quiet-control, .backtop):focus-visible { outline-color: Highlight; }
}

/* Anchor offsets follow the actual header, including text zoom and mobile sizes. */
html {
  color-scheme: light;
  scroll-padding-top: calc(var(--page-header-height, 84px) + 16px);
}
.contact-card :is(input, select, textarea) { scroll-margin-block: 24px; }
.menu-toggle[aria-expanded="true"] { color: var(--white); background: var(--ink); border-color: var(--ink); }
@media (max-width: 920px) {
  .nav-links.open {
    max-height: calc(100vh - var(--page-header-height, 80px));
    max-height: calc(100dvh - var(--page-header-height, 80px));
    overflow-y: auto;
    overscroll-behavior: contain;
  }
}
@media (max-width: 540px) {
  .contact-card .field :is(input:not([type="radio"]):not([type="checkbox"]), select, textarea) { font-size: 16px; }
  .footer-identity { max-width: 100%; }
}

/* The visitor's quieter setting covers page motion as well as the live companions. */
html[data-user-motion="reduced"] { scroll-behavior: auto; }
html[data-user-motion="reduced"] *,
html[data-user-motion="reduced"] *::before,
html[data-user-motion="reduced"] *::after { animation: none !important; transition: none !important; }
html[data-user-motion="reduced"] :is(.button, .nav-cta, .activity-launch, .backtop, .service-card):hover,
html[data-user-motion="reduced"] .service-card:hover .service-vignette,
html[data-user-motion="reduced"] .step:hover .step-icon,
html[data-user-motion="reduced"] .button:hover > span[aria-hidden],
html[data-user-motion="reduced"] .nav-cta:hover > span[aria-hidden] { transform: none; }

/* Original plush artwork as stationary accents behind the three information sections.
   Each section contains one empty, aria-hidden .section-atmosphere span. */
:is(#services, #about, #contact) {
  position: relative;
  isolation: isolate;
}

:is(#services, #about, #contact) > .section-atmosphere {
  display: block;
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}

:is(#services, #about, #contact) > .section-atmosphere::before {
  content: "";
  display: block;
  position: absolute;
  width: var(--atmosphere-size);
  aspect-ratio: 1;
  background-image: var(--atmosphere-art);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: var(--atmosphere-opacity, .18);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 42%, #000b 60%, #0004 74%, transparent 90%);
  mask-image: radial-gradient(ellipse at center, #000 42%, #000b 60%, #0004 74%, transparent 90%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  pointer-events: none;
}

#services > .section-atmosphere {
  --atmosphere-art: url("../images/mascot-triangle-bg.png");
  --atmosphere-size: clamp(360px, 36vw, 500px);
  --atmosphere-opacity: .19;
}
#services > .section-atmosphere::before {
  top: 22px;
  left: -36px;
}

#about > .section-atmosphere {
  --atmosphere-art: url("../images/mascot-square-bg.png");
  --atmosphere-size: clamp(350px, 35vw, 480px);
  --atmosphere-opacity: .17;
}
#about > .section-atmosphere::before {
  top: 55px;
  right: -40px;
}

#contact > .section-atmosphere {
  --atmosphere-art: url("../images/mascot-circle-bg.png");
  --atmosphere-size: clamp(390px, 39vw, 540px);
  --atmosphere-opacity: .20;
}
#contact > .section-atmosphere::before {
  bottom: -32px;
  left: -32px;
}

@media (max-width: 920px) {
  #services > .section-atmosphere { --atmosphere-size: 330px; --atmosphere-opacity: .15; }
  #services > .section-atmosphere::before { top: 24px; left: -48px; }
  #about > .section-atmosphere { --atmosphere-size: 320px; --atmosphere-opacity: .13; }
  #about > .section-atmosphere::before { top: 26px; right: -48px; }
  #contact > .section-atmosphere { --atmosphere-size: 360px; --atmosphere-opacity: .16; }
  #contact > .section-atmosphere::before { bottom: -40px; left: -48px; }
}

@media (max-width: 540px) {
  #services > .section-atmosphere { --atmosphere-size: 240px; --atmosphere-opacity: .12; }
  #services > .section-atmosphere::before { top: 0; left: -40px; }
  #about > .section-atmosphere { --atmosphere-size: 255px; --atmosphere-opacity: .12; }
  #about > .section-atmosphere::before { top: 12px; right: -44px; }
  #contact > .section-atmosphere { --atmosphere-size: 265px; --atmosphere-opacity: .13; }
  #contact > .section-atmosphere::before { bottom: -32px; left: -40px; }
}

@media (forced-colors: active), print {
  :is(#services, #about, #contact) > .section-atmosphere { display: none; }
}

/* A much lighter, stationary trio at the edges of the welcome section. */
#top.hero { isolation: isolate; }
#top > .hero-atmosphere {
  position: absolute;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
  user-select: none;
  -webkit-user-select: none;
}
#top > .hero-atmosphere > .hero-background-character {
  display: block;
  position: absolute;
  width: clamp(250px, 27vw, 390px);
  aspect-ratio: 1;
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  opacity: .04;
  -webkit-mask-image: radial-gradient(ellipse at center, #000 32%, #000b 54%, #0003 70%, transparent 85%);
  mask-image: radial-gradient(ellipse at center, #000 32%, #000b 54%, #0003 70%, transparent 85%);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  pointer-events: none;
}
#top .hero-background-triangle {
  top: 12%;
  left: -65px;
  background-image: url("../images/mascot-triangle-bg.png");
}
#top > .hero-atmosphere > .hero-background-circle {
  top: -95px;
  right: -48px;
  width: clamp(265px, 29vw, 420px);
  background-image: url("../images/mascot-circle-bg.png");
  opacity: .035;
}
#top > .hero-atmosphere > .hero-background-square {
  right: 1.5%;
  bottom: -102px;
  width: clamp(235px, 24vw, 345px);
  background-image: url("../images/mascot-square-bg.png");
  opacity: .032;
}

@media (max-width: 920px) {
  #top > .hero-atmosphere > .hero-background-triangle { width: 265px; top: 17%; left: -96px; opacity: .032; }
  #top > .hero-atmosphere > .hero-background-circle { width: 275px; top: -77px; right: -86px; opacity: .03; }
  #top > .hero-atmosphere > .hero-background-square { width: 245px; right: -66px; bottom: -62px; opacity: .028; }
}

@media (max-width: 540px) {
  #top > .hero-atmosphere > .hero-background-triangle { width: 210px; top: 16%; left: -68px; opacity: .025; }
  #top > .hero-atmosphere > .hero-background-circle { width: 195px; top: -44px; right: -62px; opacity: .026; }
  #top > .hero-atmosphere > .hero-background-square { width: 200px; right: -58px; bottom: -34px; opacity: .023; }
}

@media (forced-colors: active), print {
  #top > .hero-atmosphere { display: none; }
}

/* Readable email preview, compact game tools and a quiet editorial service rhythm.
   This layer introduces no motion and does not override motion preferences. */
.contact-fields { min-width: 0; margin: 0; padding: 0; border: 0; }
.contact-fields:disabled { opacity: .6; }
.noscript-notice { margin: 20px auto; padding: 16px 20px; border: 1px solid var(--line); border-radius: 16px; background: #f0f3e8; color: var(--ink); font-size: 15px; line-height: 1.7; }
.noscript-notice p:last-child { margin-bottom: 0; }
#services .section-head .kicker,
#about .kicker,
#contact .kicker {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: .065em;
}
#services .section-head .kicker::before,
#about .kicker::before,
#contact .kicker::before {
  content: "";
  display: block;
  flex: 0 0 24px;
  height: 1px;
  background: currentColor;
  opacity: .65;
}
#services .section-head > p { line-height: 1.75; }
#services .service-card { position: relative; }
#services .service-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 27px;
  right: 27px;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--card-accent, #92b79a) 20%, var(--card-accent, #92b79a) 80%, transparent);
  opacity: .7;
  pointer-events: none;
}
#services .service-card:has(.service-disclosure[open])::before { opacity: 1; }
#services .card-index {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .12em;
  line-height: 1.7;
  font-variant-numeric: tabular-nums;
}
#services .card-index::before {
  width: 19px;
  height: 1px;
  border-radius: 0;
}
#services .service-disclosure > summary { padding-block: 18px; }
#services .service-detail-copy { padding: 3px 0 5px; }
#services .service-detail-copy > p:first-child { margin-top: 3px; }
#services .service-detail-copy > .button { margin-top: 20px; }
#services .service-detail-copy > .service-note { margin-block: 23px 18px; }

@media (min-width: 801px) {
  #services .service-grid:not(:has(.service-disclosure[open])) { align-items: stretch; }
  #services .service-card { display: flex; flex-direction: column; }
  #services .service-card > p { min-height: 0; }
  #services .service-disclosure { margin-top: auto; }
}

.contact-card .radio-card:has(input:checked),
.contact-card .check-row label:has(input:checked) {
  border-color: #718c65;
  background: #e5efde;
  box-shadow: inset 0 0 0 1px #84a27633;
  color: var(--ink);
}
.mood-choices button[aria-pressed="true"] { color: var(--ink); font-weight: 600; }

.contact-card .contact-email-preview {
  margin-top: 25px;
  border-top: 1px solid #d7dfd0;
  border-bottom: 1px solid #d7dfd0;
}
.contact-email-preview > summary {
  min-height: 62px;
  gap: 15px;
  padding-block: 17px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.6;
}
.contact-email-preview > summary::after {
  display: grid;
  place-items: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border: 1px solid #cbd5c6;
  border-radius: 50%;
  background: #fffefa80;
  color: var(--teal);
  font-size: 22px;
  line-height: 1;
}
.contact-email-preview[open] { padding-bottom: 22px; }
.contact-email-preview[open] > summary::after {
  background: #e6eedf;
  border-color: #a1b599;
}
.contact-email-preview .email-preview-meta {
  margin: 3px 0 12px;
  color: var(--ink);
  font-size: 14px;
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.email-preview-meta :is(strong, b, dt) { font-weight: 600; }
.email-preview-meta dd { margin-left: 0; }
.contact-email-preview .email-preview-note {
  margin: 0 0 17px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.65;
}
.contact-email-preview .email-preview-body {
  max-width: 100%;
  max-height: min(420px, 60vh);
  max-height: min(420px, 60dvh);
  margin: 0;
  padding: 18px 20px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #d7dfd0;
  border-radius: 15px;
  background: #f7f9f1;
  color: var(--ink);
  font-family: inherit;
  font-size: 15px;
  font-weight: 400;
  line-height: 1.8;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: normal;
  scrollbar-width: thin;
  scrollbar-color: #a8b89d transparent;
  user-select: text;
  -webkit-user-select: text;
}
.email-preview-body:focus-visible {
  outline: 3px solid #946000;
  outline-offset: 3px;
}
.contact-email-preview .email-preview-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 15px;
  margin-top: 15px;
}
.email-preview-actions .quiet-control { min-height: 44px; max-width: 100%; }
.contact-email-preview .email-preview-status {
  margin: 8px 0 0;
  color: var(--teal);
  font-size: 14px;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.email-preview-actions .email-preview-status { flex: 1 1 180px; margin: 0; }
.email-preview-status:empty { display: none; }

.playground > .playground-actions {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 6;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  max-width: calc(100% - 28px);
  pointer-events: auto;
}
.playground-actions > :is(.playground-reset, .playground-undo) {
  position: static;
  min-width: 0;
  min-height: 44px;
  margin: 0;
  padding: 10px 12px;
  border: 1px solid #c5d1bf;
  border-radius: 99px;
  background: #fffefaed;
  color: var(--ink);
  font-family: inherit;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
  white-space: normal;
  pointer-events: auto;
}
.playground-actions > .playground-undo:disabled {
  border-color: #d0d8c9;
  background: #fffefa9c;
  color: #788570;
  cursor: not-allowed;
  box-shadow: none;
}
.playground-actions > .playground-undo:not(:disabled):active { box-shadow: inset 0 2px 4px #183f3814; }
.playground-actions > :is(.playground-reset, .playground-undo):focus-visible {
  outline: 3px solid #946000;
  outline-offset: 3px;
}

@media (hover: hover) and (pointer: fine) {
  .playground-actions > .playground-undo:not(:disabled):hover { background: var(--white); border-color: #91a887; }
}

@media (max-width: 540px) {
  #services .service-disclosure > summary { padding-block: 17px; }
  .contact-email-preview > summary { font-size: 14px; gap: 12px; }
  .contact-email-preview .email-preview-body {
    max-height: min(340px, 52vh);
    max-height: min(340px, 52dvh);
    padding: 15px 16px;
    font-size: 15px;
    line-height: 1.75;
  }
  .email-preview-actions .email-preview-status { flex-basis: 100%; }
  .playground > .playground-actions { top: 10px; right: 10px; max-width: calc(100% - 20px); }
  .playground-actions > :is(.playground-reset, .playground-undo) { padding: 10px 9px; font-size: 12px; }
}

@media (forced-colors: active) {
  .contact-email-preview .email-preview-body,
  .contact-email-preview > summary::after,
  .playground-actions > :is(.playground-reset, .playground-undo) { border-color: ButtonText; }
  .playground-actions > .playground-undo:disabled { color: GrayText; border-color: GrayText; }
}
