/* Motion and character layer. Content remains readable before scripts load. */
:root { --accent:#bfa979; --soft-glow:#b7e6ce; }
html { scroll-behavior:smooth; scroll-padding-top:110px; }
body { -webkit-font-smoothing:antialiased; }
::selection { background:#c5e8d1; color:#102621; }
.header { position:sticky; top:0; z-index:30; background:rgba(247,250,244,.94); backdrop-filter:blur(18px); }
body.admin-bar .header { top:32px; }
.header-inner { min-height:88px; }
.brand { font-size:1.4rem; max-width:245px; }
.brand-mark { border:1px solid #c5d4c7; }
.nav a { transition:color .2s; }
.button { border-radius:100px; padding:13px 24px; box-shadow:0 4px 14px #0b29220b; transition:background .2s,box-shadow .2s,transform .2s; }
.button:hover { transform:translateY(-2px); box-shadow:0 7px 20px #0b292222; }
.hero { isolation:isolate; background:radial-gradient(ellipse at 78% 20%,#215644 0%,#0b2922 69%); }
.hero::before { content:""; position:absolute; inset:0; z-index:-1; background-image:radial-gradient(#bbdfc42a 1px,transparent 1px); background-size:28px 28px; mask-image:linear-gradient(120deg,transparent,#000); }
.hero-inner { padding-block:88px; gap:56px; min-height:715px; }
.hero-copy { position:relative; z-index:1; }
.hero h1 { font-size:clamp(3.2rem,5.5vw,5.55rem); line-height:1.04; letter-spacing:-.052em; }
.hero h1 em { font-style:normal; color:#d5edcb; }
.hero-copy p:not(.label) { font-size:1.06rem; line-height:1.85; max-width:470px; }
.label { font-size:.67rem; letter-spacing:.15em; }
.label::before { background:var(--accent); width:26px; }
.hero .text-link { color:#d5edcb; font-size:.88rem; }
.science-orbits { position:absolute; width:720px; height:720px; right:-205px; top:-250px; z-index:-1; pointer-events:none; }
.science-orbits i { position:absolute; inset:0; border:1px solid #badfc322; border-radius:50%; animation:tcs-orbit 50s linear infinite; }
.science-orbits i::before { content:""; position:absolute; top:10%; left:18%; width:8px; height:8px; background:#d7c18b; border-radius:50%; box-shadow:0 0 20px #d7c18b80; }
.science-orbits i:nth-child(2) { inset:80px; animation-direction:reverse; animation-duration:35s; }
.science-orbits i:nth-child(3) { inset:160px; animation-duration:25s; }
.checkup { border-color:#8aaa793f; border-radius:18px; background:linear-gradient(160deg,#1b4236,#102f27); box-shadow:0 25px 75px #030e0b70; transform:rotate(1deg); }
.floor-plan { overflow:hidden; }
.floor-plan::after { content:""; position:absolute; inset:8% 6% auto; height:1px; background:linear-gradient(90deg,transparent,#c9f6ce,transparent); box-shadow:0 -10px 30px 10px #b6efba12; animation:tcs-scan 7s ease-in-out infinite; pointer-events:none; }
.checkup-heading { padding:21px 22px; }
.sample-tag { color:#dfd4ae; border-color:#c5b48060; font-size:.62rem; }
.section { padding-block:clamp(60px,8vw,110px); }
.section-tight { padding-block:52px; }
h2 { font-size:clamp(2.4rem,4vw,4rem); letter-spacing:-.045em; }
.head-row h2 { max-width:680px; }
.method-home { position:relative; background:linear-gradient(120deg,#fbfdf9,#edf4e9); }
.method-home .label { margin-bottom:10px; }
.method-step { border-radius:12px; background:#ffffffc0; overflow:hidden; border-color:#c7d7c6; transition:box-shadow .25s; }
.method-step:hover { box-shadow:0 9px 25px #153c2b0b; }
.method-step summary { min-height:76px; padding:20px; gap:12px; }
.method-number { color:#7d6a3d; font-size:.68rem; }
.method-step p { font-size:.93rem; }
.card { padding:30px; border-radius:14px; border-top:1px solid #b5c9b3; background:linear-gradient(150deg,#fff,#f5f8f1); transition:transform .3s,box-shadow .3s,border-color .3s; }
.card:hover { transform:translateY(-5px); border-color:#8caa8b; box-shadow:0 18px 40px #193f2910; }
.card .number { color:#718365; font-size:.64rem; margin-bottom:38px; }
.card p { font-size:.94rem; }
.card a { font-size:.83rem; }
.report-sample { background:linear-gradient(130deg,#fff,#f3f7ed); border-color:#b9cbb4; border-radius:18px; box-shadow:0 22px 60px #173f2b0a; padding:32px; }
.report-scroll th,.report-scroll td { padding:18px 12px; }
.formula { border-color:#c6d4b6; background:linear-gradient(135deg,#edf4e5,#e2eddf); }
.footer { padding-bottom:30px; }
.tcs-progress { position:fixed; inset:0 auto auto 0; z-index:100; height:3px; width:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg,#52785d,#d0bb87); pointer-events:none; }
.tcs-reveal { transition:opacity .75s ease,transform .75s cubic-bezier(.2,.7,.2,1); }
.tcs-reveal.tcs-pending { opacity:1; transform:none; }
.tcs-highlight { outline:2px solid #bfa979; outline-offset:8px; }
.tcs-motion { position:fixed; z-index:46; bottom:18px; left:18px; font-size:11px; padding:9px 14px; border:1px solid #a1b49e; border-radius:50px; background:#f9fcf1; color:#214d36; }
@keyframes tcs-orbit { to { transform:rotate(360deg); } }
@keyframes tcs-scan { 0%,100% { top:8%; opacity:0; } 15%,80% { opacity:.7; } 90% { top:90%; opacity:0; } }
html.tcs-motion-paused { scroll-behavior:auto!important; }
.tcs-motion-paused *, .tcs-motion-paused *::before,.tcs-motion-paused *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
.tcs-motion-paused .tcs-pending { opacity:1; transform:none; }
@media (max-width:850px) {
  html { scroll-padding-top:155px; }
  .header-inner { min-height:0; padding-block:12px; }
  .hero-inner { gap:32px; padding-block:55px; min-height:0; }
  .brand { font-size:1.2rem; }
  .card { padding:23px; }
}
@media (max-width:620px) {
  .header-inner { gap:10px; }
  .nav { gap:9px 14px; }
  .nav a { font-size:.74rem; }
  .nav .button { padding:7px 11px; font-size:.71rem; }
  .hero h1 { font-size:clamp(2.8rem,11vw,4.2rem); }
  .hero-copy p:not(.label) { font-size:1rem; }
  .hero-inner { padding-block:44px 52px; }
  .checkup { transform:none; }
  .method-step summary { min-height:65px; }
  .report-sample { padding:20px; }
  .footer { padding-bottom:80px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .tcs-pending { opacity:1!important; transform:none!important; }
}

/* Expanded building checkup and character gestures, version 2.1.0. */
.checkup { transform:none; }
.checkpoint { cursor:pointer; padding:0; transition:background .2s,box-shadow .2s; }
.checkpoint:hover,.checkpoint:focus-visible { outline:2px solid #dfd4ae; outline-offset:3px; }
.zone-notes { min-height:365px; padding:16px 3px 4px; }
.zone-notes .zone-detail { display:none; }
.zone-notes .zone-detail h3 { font-size:1.17rem; line-height:1.35; letter-spacing:-.02em; margin:6px 0 13px; color:#f5faef; }
.zone-kicker { color:#dfd4ae; font:600 .6rem var(--mono); letter-spacing:.12em; }
.zone-detail dl { margin:0; }
.zone-detail dl div { display:grid; grid-template-columns:88px minmax(0,1fr); gap:12px; padding:11px 0; border-top:1px solid #bad6c527; }
.zone-detail dt { font:600 .6rem/1.7 var(--mono); text-transform:uppercase; letter-spacing:.04em; color:#dfd4ae; }
.zone-detail dd { margin:0; color:#c7ded0; font-size:.8rem; line-height:1.65; }
.zone-detail dd strong { color:#f0f7e8; font-weight:650; }
.zone-control .zone-footnote { display:block; grid-column:1/-1; margin:4px 0 0; color:#afc5b7; font-size:.65rem; line-height:1.5; }
@media(max-width:620px) {
 .zone-notes { min-height:425px; }
 .zone-detail dl div { grid-template-columns:72px minmax(0,1fr); gap:9px; }
 .zone-detail dd { font-size:.77rem; }
}
/* Readability: all copy remains visible, with explicit light/dark palettes. */
:root { --muted:#344b40; --green:#164c37; }
.section:not(.dark),.page-intro { color:#102c22; }
.section:not(.dark) .label,.page-intro .label { color:#20543b; }
.label { font-size:.78rem; font-weight:800; letter-spacing:.11em; opacity:1; }
.section:not(.dark) .lead,.page-intro .lead { color:#344b40; font-size:1.08rem; }
.section:not(.dark) .card p,.sample p,.method-step p,.form-note { color:#344b40; }
.card .number { color:#31583c; font-size:.75rem; }
.method-number { color:#6c5422; font-size:.75rem; }
.hero .label,.dark .label { color:#d5edcb; }
.hero-copy p:not(.label),.dark .lead { color:#e0eee3; }
.sample-caption { color:#344b40; font-size:.86rem; }
.sample .label { color:#20543b; }
.report-badge { color:#20543b; background:#e8f0df; border-color:#8ea581; }
.tcs-pending,.tcs-reveal { opacity:1!important; transform:none; }
.tcs-entered { animation:tcs-arrive .65s cubic-bezier(.2,.7,.2,1) both; }
@keyframes tcs-arrive { from {transform:translateY(12px)} to {transform:translateY(0)} }
.assessment-meta { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:25px 0; padding:18px 0; border-block:1px solid #bdceb6; }
.assessment-meta dt { font:700 .68rem/1.6 var(--mono); text-transform:uppercase; letter-spacing:.05em; color:#31583c; }
.assessment-meta dd { margin:5px 0 0; font-size:.9rem; font-weight:650; color:#173b2c; }
.report-scroll table { min-width:760px; }
.report-scroll th { color:#173b2c; }
.report-scroll td { font-size:.9rem; color:#344b40; }
.sample td:last-child { color:#285338; font-weight:600; }
.evidence-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:26px; }
.evidence-grid article { padding:20px; border:1px solid #b8cbb0; background:#eaf1e1; border-radius:10px; }
.evidence-grid span { display:block; color:#345738; font:700 .65rem/1.6 var(--mono); letter-spacing:.05em; }
.evidence-grid h4 { font-size:1.03rem; margin:9px 0; color:#173b2c; }
.evidence-grid p { font-size:.9rem; margin:0; }
/* Comfortable minimum sizes for secondary copy. */
.checkup-heading small,.sample-tag,.zone-kicker,.zone-detail dt,.assessment-meta dt,.evidence-grid span { font-size:.75rem; }
.zone-detail dd { font-size:.9rem; }
.zone-control .zone-footnote { font-size:.75rem; }
.tcs-motion { font-size:12px; }
@media(max-width:620px) { .zone-detail dd { font-size:.85rem; } }

@media(max-width:420px) { .tcs-motion { left:14px; bottom:94px; } }

/* Version 2.3: concise, visual and playful. */
.hero-inner { grid-template-columns:minmax(0,.83fr) minmax(0,1.17fr); gap:38px; padding-block:62px; min-height:680px; }
.hero h1 { font-size:clamp(3rem,5vw,5.1rem); }
.hero-copy p:not(.label) { max-width:390px; }
.checkup-heading small { font-size:.7rem; }
.floor-plan img { display:block; width:100%; height:auto; }
.floor-plan::after { height:2px; box-shadow:0 0 24px 3px #b8efc848; }
.zone-notes { min-height:105px; padding-top:14px; }
.zone-notes .zone-detail h3 { margin:0 0 5px; font-size:1.05rem; }
.zone-notes .zone-detail p { display:block; font-size:.88rem; line-height:1.6; color:#d5e6da; margin:0; }
.zone-control .zone-footnote { font-size:.72rem; }
.trust-strip { border-bottom:1px solid #c6d6bf; padding-block:25px; }
.trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:25px; }
.trust-grid p { margin:0; color:#3e5946; font-size:.85rem; }
.trust-grid strong { display:block; color:#153c2c; font-size:1rem; }
.section { padding-block:70px; }
.section-tight { padding-block:42px; }
.trust-strip.section-tight { padding-block:25px; }
.head-row { margin-bottom:28px; }
.service-photo-card { position:relative; isolation:isolate; display:flex; align-items:flex-end; min-height:350px; aspect-ratio:1.06; padding:0; border:1px solid #4f6d53; border-radius:15px; overflow:hidden; background-color:#113829; background-size:cover; background-position:center; box-shadow:0 12px 32px #153a2614; }
.service-photo-card::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg,#09221800 8%,#09221835 35%,#092218e8 76%,#092218f7 100%); }
.service-photo-copy { padding:27px; width:100%; }
.service-photo-card .number { color:#dce9c7; font-size:.68rem; margin-bottom:12px; }
.service-photo-card h2,.service-photo-card h3 { color:#fffef5; font-size:1.55rem; line-height:1.18; margin:0 0 10px; letter-spacing:-.025em; }
.section:not(.dark) .service-photo-card p { color:#e5eee0; font-size:.9rem; margin:0 0 15px; }
.service-photo-card a { color:#fffef5; font-size:.8rem; text-underline-offset:5px; }
.service-photo-card:hover { transform:translateY(-4px); border-color:#bfa979; }
.compact-method { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.compact-method .method-step { margin:0; align-self:start; }
.compact-method .method-step summary { min-height:82px; padding:18px 15px; font-size:1rem; }
.compact-method .method-step p { font-size:.88rem; }
.science-accordions { margin-top:25px; }
.science-detail { padding:0 23px; border:1px solid #b8cdb0; background:#f7faf1; border-radius:12px; margin-top:12px; }
.science-detail > summary { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:21px 0; cursor:pointer; font-size:1rem; font-weight:750; color:#1d4932; list-style:none; }
.science-detail > summary::-webkit-details-marker { display:none; }
.science-detail > summary span { font-size:23px; color:#6a602f; }
.science-detail[open] > summary span { transform:rotate(45deg); }
.science-detail > p { color:#344b40; max-width:730px; padding-bottom:15px; }
.science-detail > .text-link { display:inline-block; margin-bottom:22px; }
.science-detail .report-sample { margin-bottom:23px; box-shadow:none; padding:24px; }
.tcs-fun { position:fixed; z-index:44; right:33px; bottom:111px; width:96px; height:102px; touch-action:none; }
.tcs-fun-character { display:block; position:absolute; inset:0; width:100%; border:0; padding:0; border-radius:18px; background:transparent; cursor:grab; touch-action:none; }
.tcs-fun-character span { display:block; width:100%; height:100%; background-image:url('scientist-fun.webp'); background-size:300% 200%; background-repeat:no-repeat; background-position:0 0; filter:drop-shadow(0 5px 5px #163f2928); animation:tcs-fun-bob 4s ease-in-out infinite; }
.tcs-fun[data-pose="microscope"] span { background-position:50% 0; }
.tcs-fun[data-pose="left"] span { background-position:100% 0; }
.tcs-fun[data-pose="right"] span { background-position:0 100%; }
.tcs-fun[data-pose="invite"] span { background-position:50% 100%; }
.tcs-fun[data-pose="approve"] span { background-position:100% 100%; }
.tcs-fun-hide { position:absolute; top:-2px; right:-4px; z-index:1; width:23px; height:23px; padding:0; border:1px solid #a1b998; background:#f7fbef; border-radius:50%; color:#1e4a32; cursor:pointer; font-size:15px; }
.tcs-fun-restore { position:fixed; right:24px; bottom:110px; z-index:44; border:1px solid #a1b998; background:#f7fbef; color:#1e4a32; border-radius:30px; padding:7px 11px; font-size:11px; }
.tcs-fun-character:focus-visible { outline:3px solid #bfa979; outline-offset:3px; }
@keyframes tcs-fun-bob { 50% {transform:translateY(-4px) rotate(-2deg)} }
@media(max-width:1000px) { .compact-method { grid-template-columns:repeat(2,minmax(0,1fr)); } .hero-inner { gap:28px; } .service-photo-card { min-height:310px; } .service-photo-copy { padding:22px; } }
@media(max-width:850px) { .hero-inner { grid-template-columns:1fr; padding-block:45px; } .hero-copy { max-width:630px; } .hero-copy p:not(.label) { max-width:520px; } .checkup { max-width:100%; } .service-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:620px) { .section { padding-block:48px; } .section-tight { padding-block:34px; } .hero h1 { font-size:clamp(2.8rem,11vw,4.2rem); } .hero-inner { gap:30px; } .trust-grid { grid-template-columns:1fr; gap:13px; } .trust-grid strong { display:inline; } .service-photo-grid { grid-template-columns:1fr; } .service-photo-card { min-height:330px; aspect-ratio:1.08; } .compact-method { gap:10px; } .compact-method .method-step summary { min-height:73px; padding:14px 12px; font-size:.94rem; } .zone-notes { min-height:112px; } .science-detail { padding-inline:15px; } .science-detail .report-sample { padding:15px; } .tcs-fun { width:77px; height:82px; right:23px; bottom:100px; } .tcs-fun-restore { bottom:100px; } }







/* 2.4: photo-first service tiles with compact copy. */
.service-photo-card { position:relative; isolation:isolate; background:#113829; min-height:370px; aspect-ratio:1.04; padding:0; }
.service-photo-card .service-photo { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:cover; transition:transform .45s ease; }
.service-photo-card::before { z-index:1; pointer-events:none; background:linear-gradient(180deg,transparent 25%,rgba(5,25,18,.18) 48%,rgba(5,25,18,.92) 100%); }
.service-photo-card .service-photo-copy { position:relative; z-index:2; display:flex; flex-direction:column; justify-content:flex-end; align-self:stretch; width:100%; min-height:370px; padding:28px; color:#fff; text-decoration:none; }
.service-photo-card h2,.service-photo-card h3 { color:#fff; font-size:clamp(1.45rem,2.2vw,1.95rem); max-width:85%; margin:0 0 9px; text-shadow:0 2px 12px #0009; }
.section:not(.dark) .service-photo-card p { color:#fff; font-size:.93rem; line-height:1.5; max-width:90%; margin:0; text-shadow:0 1px 8px #000; }
.service-card-arrow { position:absolute; right:25px; bottom:28px; display:grid; place-items:center; width:32px; height:32px; border:1px solid #ffffff80; border-radius:50%; color:#fff; font-size:20px; }
.service-photo-card:hover .service-photo { transform:scale(1.035); }
.service-photo-card:focus-within { outline:3px solid #8d6b29; outline-offset:4px; }
.service-photo-copy:focus-visible { outline:3px solid #fff; outline-offset:-7px; border-radius:15px; }
.report-scroll table { min-width:480px; }
#checkup-report .report-note { margin-top:18px; font-size:.86rem; color:#344b40; }
@media(max-width:1000px) { .service-photo-card,.service-photo-card .service-photo-copy { min-height:330px; } }
@media(max-width:620px) { .service-photo-card { min-height:320px; aspect-ratio:1.08; } .service-photo-card .service-photo-copy { min-height:320px; padding:24px; } .service-photo-card h2,.service-photo-card h3 { font-size:1.65rem; } .service-photo-card p { font-size:.9rem; } .service-card-arrow { right:22px; bottom:24px; } }

/* 2.4.1: compact, classic service gallery. */
.service-photo-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:stretch; }
.service-photo-card { height:230px; min-height:0; aspect-ratio:auto; border-radius:6px; border:1px solid #c4cfc3; box-shadow:none; }
.service-photo-card .service-photo-copy { height:100%; min-height:0; padding:22px; }
.service-photo-card .service-photo { object-position:center 32%; }
.service-photo-card h2,.service-photo-card h3 { font-size:1.35rem; line-height:1.2; max-width:calc(100% - 24px); margin-bottom:7px; letter-spacing:-.02em; }
.section:not(.dark) .service-photo-card p { max-width:calc(100% - 18px); font-size:.84rem; line-height:1.5; }
.service-card-arrow { right:16px; bottom:19px; width:24px; height:24px; font-size:16px; }
.service-photo-card:hover { transform:none; border-color:#6b856a; box-shadow:none; }
.service-photo-card:hover .service-photo { transform:scale(1.015); }
.service-photo-copy:focus-visible { border-radius:6px; }
@media(max-width:850px) { .service-photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; } .service-photo-card { height:215px; } }
@media(max-width:620px) { .service-photo-grid { grid-template-columns:1fr; gap:14px; } .service-photo-card { height:190px; } .service-photo-card .service-photo-copy { min-height:0; padding:20px; } .service-photo-card h2,.service-photo-card h3 { font-size:1.35rem; } .section:not(.dark) .service-photo-card p { font-size:.85rem; } }

/* 2.4.2: standalone playful scientist. */
.tcs-fun { bottom:22px; }
.tcs-fun-restore { bottom:22px; }
@media(max-width:700px) { .assessment-meta,.evidence-grid { grid-template-columns:1fr; } .assessment-meta { gap:12px; } }
@media(max-width:620px) { .tcs-fun { bottom:20px; } .tcs-fun-restore { bottom:20px; } .tcs-motion { bottom:18px; } .footer { padding-bottom:80px; } }
