:root{--forest:#123c35;--forest-deep:#0c302b;--mint:#bce9ca;--lime:#d8ed9b;--paper:#f7f8f3;--white:#fff;--ink:#19372f;--muted:#708078;--line:#e0e8de}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 "DM Sans","Noto Sans SC","Microsoft YaHei",sans-serif}
button,input,select{font:inherit}
button{cursor:pointer}
a{color:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #a8dc95;outline-offset:3px}
[hidden]{display:none!important}
.site-header{height:88px;background:var(--forest-deep);color:white;padding:0 max(5.3vw,24px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff24}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-.07em}
.logo{width:42px;height:42px;border-radius:13px;background:var(--lime);color:var(--forest-deep);display:grid;place-items:center;font-size:21px;letter-spacing:0;transform:rotate(-6deg);transition:transform .35s}
.brand:hover .logo{transform:rotate(7deg)}
.brand-name{display:flex;align-items:baseline;gap:14px}
.brand small{font-size:10px;font-weight:600;letter-spacing:.22em;opacity:.6}
.header-link{font-size:13px;text-decoration:none;border:1px solid #ffffff54;border-radius:999px;padding:9px 17px;transition:background .2s,transform .2s}
.header-link:hover{background:#ffffff18;transform:translateY(-2px)}
.header-link span{margin-left:10px;color:var(--lime)}
.hero{position:relative;z-index:2;background:radial-gradient(circle at 83% 25%,#20554a 0,transparent 32%),var(--forest-deep);color:#fff;padding:60px max(5.3vw,24px) 30px}
.hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:84px 84px;mask-image:linear-gradient(to right,transparent 25%,black);pointer-events:none}
.hero>*{position:relative;z-index:1}
.hero-copy{max-width:780px}
.eyebrow{font-size:11px;letter-spacing:.16em;font-weight:700;color:#538569}
.hero-eyebrow{display:inline-flex;align-items:center;gap:11px;color:var(--lime)}
.eyebrow-line{width:22px;height:1px;background:currentColor}
h1,h2,p{margin-top:0}
h1{font-size:clamp(52px,6vw,96px);letter-spacing:-.085em;line-height:1.17;font-weight:600;margin:24px 0 22px}
h1 em{font-style:normal;color:var(--lime)}
.hero-copy p{font-size:16px;color:#c5d8ce;max-width:510px;line-height:1.9;margin-bottom:43px}
.hero-art{position:absolute;right:0;top:13px;width:420px;height:340px;z-index:0;opacity:.8;pointer-events:none;overflow:hidden}
.art-ring{position:absolute;display:block;border:1px solid #bdeabf58;border-radius:50%;width:310px;height:310px;top:0;left:65px;transform:rotate(-28deg) scaleX(.78)}
.art-ring-two{transform:rotate(42deg) scaleX(.78)}
.art-core{position:absolute;left:170px;top:71px;font-size:112px;font-weight:400;color:var(--lime);animation:turn 25s linear infinite}
@keyframes turn{to{transform:rotate(360deg)}}
#search-form{max-width:1020px}
.search-area{position:relative;z-index:30}
.searchbox{display:flex;align-items:center;gap:16px;min-height:76px;background:white;border-radius:16px;padding:8px 9px 8px 22px;box-shadow:0 20px 50px #001d1d40;transition:box-shadow .2s,transform .2s}
.searchbox:focus-within{box-shadow:0 18px 55px #001d1d55,0 0 0 3px var(--lime)}
.search-icon{width:25px;height:25px;color:#477666;flex:none}
.search-icon svg{width:100%;height:100%}
.searchbox input{border:0;outline:0;min-width:0;flex:1;color:var(--ink);font-size:17px;background:transparent}
.searchbox input::placeholder{color:#94a29a}
.clear-query{border:0;background:#edf3ed;width:30px;height:30px;border-radius:50%;color:#597468;font-size:22px;line-height:1;display:grid;place-items:center}
.clear-query:hover{background:#ddeade}
.search-submit{border:0;background:var(--lime);color:var(--forest-deep);border-radius:11px;padding:17px 24px;font-weight:700;white-space:nowrap;transition:background .2s,transform .2s}
.search-submit:hover{background:#c9e782;transform:translateY(-2px)}
.search-submit span{margin-left:25px}
.options{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:17px}
.options-title{font-size:12px;color:#bbd4c6;margin-right:7px;white-space:nowrap}
.options-title span{color:var(--lime);margin-left:4px}
.options label{display:flex;align-items:center;gap:7px;border:1px solid #ffffff32;border-radius:9px;background:#ffffff0d;color:#b9d2c5;font-size:12px;padding:7px 9px 7px 13px;transition:border-color .2s,background .2s}
.options label:hover,.options label:focus-within{border-color:#c7e6af;background:#ffffff17}
.options input,.options select{border:0;background:transparent;color:white;outline:none;font-size:12px;min-width:0}
.options input{width:90px}
.options input::placeholder{color:#bbd4c6}
.options select option{color:var(--ink)}
.hero-bottom{display:flex;align-items:center;gap:12px;color:#91b5a4;font-size:11px;letter-spacing:.08em;margin-top:47px}
.hero-scroll{border:1px solid #ffffff47;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;color:var(--lime);font-size:17px}
.recent-searches{position:absolute;z-index:40;top:calc(100% + 8px);left:0;right:0;background:#fff;color:var(--ink);border:1px solid #c8ddcb;border-radius:13px;box-shadow:0 22px 55px #001d1d60;padding:9px;max-height:min(360px,50vh);overflow:auto}
.recent-heading{font-size:11px;letter-spacing:.08em;color:var(--muted);padding:8px 12px}
.recent-item{display:block;width:100%;border:0;text-align:left;background:transparent;padding:12px;border-radius:7px;color:var(--ink);font-size:14px;overflow-wrap:anywhere}
.recent-item:hover,.recent-item:focus-visible{background:#edf5e9}
.content-shell{position:relative;z-index:1;max-width:1320px;margin:auto;padding:65px max(5.3vw,24px) 90px}
.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px}
.section-heading h2{font-size:clamp(30px,3.2vw,45px);letter-spacing:-.07em;line-height:1.25;margin:9px 0 0}
.heading-dot{color:#8bb84b}
.section-caption{font-size:12px;color:var(--muted);padding-bottom:7px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px;align-items:start}
.results{min-width:0}
#summary{font-size:12px;color:var(--muted);padding:0 0 17px;min-height:37px}
.ai-answer{position:relative;overflow:hidden;background:linear-gradient(130deg,#103b34,#194b40 70%,#285849);color:#f5faf2;border:1px solid #ffffff20;border-radius:22px;padding:30px 34px 23px;box-shadow:0 20px 45px #173e3024;margin:3px 0 33px;animation:rise .4s both}
.ai-answer:after{content:"✳";position:absolute;right:-18px;top:-72px;font-size:280px;line-height:1;color:#ffffff08;pointer-events:none}
.ai-answer>*{position:relative;z-index:1}
.ai-answer-top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.ai-kicker{display:inline-flex;align-items:center;gap:8px;border:1px solid #d8ed9b66;border-radius:999px;padding:5px 12px;color:var(--lime);font-size:11px;font-weight:700;letter-spacing:.07em}
.ai-kicker:before{content:"✦";font-size:12px}
.ai-provider{font-size:10px;letter-spacing:.16em;color:#b5d5c0}
.ai-answer h2{font-size:27px;letter-spacing:-.05em;margin:0 0 14px}
.ai-answer-text{font-size:15px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 24px;max-width:74ch}
.ai-sources{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border-top:1px solid #ffffff26;padding-top:18px}
.ai-sources-label{font-size:11px;color:#b5d5c0;margin-right:5px}
.ai-sources a{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none;font-size:11px;border:1px solid #ffffff45;background:#ffffff13;border-radius:999px;padding:6px 10px;color:#f2faf2}
.ai-sources a:hover{background:#ffffff2b}
.web-results-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:7px}
.web-results-heading h2{font-size:19px;letter-spacing:-.04em;margin:0}
/* Keep the search controls close to the answer once a query is submitted. */
body:has(#results > :not(.welcome)) .hero-copy,
body:has(#results > :not(.welcome)) .hero-art,
body:has(#results > :not(.welcome)) #how-it-works,
body:has(#results > :not(.welcome)) .section-heading{display:none}
body:has(#results > :not(.welcome)) .hero{padding-block:24px}
body:has(#results > :not(.welcome)) #search-form{margin-inline:auto;max-width:960px}
body:has(#results > :not(.welcome)) .content-shell{max-width:calc(960px + max(10.6vw,48px));padding-top:30px}
body:has(#results > :not(.welcome)) .layout{display:block}
#results > .result{border-bottom:1px solid var(--line);padding-inline:clamp(10px,2vw,24px)}
.welcome{padding:60px 22px 70px;text-align:center;margin-top:20px}
.welcome-icon{width:68px;height:68px;margin:0 auto 25px;border-radius:18px;background:#e9f5e6;color:#3c7b5a;display:grid;place-items:center;font-size:41px}
.welcome h2{font-size:26px;letter-spacing:-.04em;margin:14px 0 9px}
.welcome p{color:var(--muted);font-size:13px;line-height:1.8}
.suggestions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:26px}
.suggestions button{border:0;background:#e9f3e5;color:#2b6346;padding:10px 14px;border-radius:8px;font-size:12px;transition:transform .2s,background .2s}
.suggestions button:hover{background:#e5f2dd;transform:translateY(-3px)}
.suggestions span{margin-left:9px}
.result{padding:24px 10px;margin-top:8px;transition:transform .22s,background .22s;animation:rise .35s both}
.result:hover{transform:translateY(-3px);background:#ffffffa8;border-radius:10px}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.result .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#708078;font-size:11px}
.tag{background:#eaf4e8;color:#3a7554;border-radius:5px;padding:3px 7px}
.result h2{font-size:20px;line-height:1.45;letter-spacing:-.03em;margin:12px 0 9px;overflow-wrap:anywhere}
.result h2 a{text-decoration:none;color:var(--forest)}
.result h2 a:hover{text-decoration:underline}
.title-button{padding:0;border:0;background:none;text-align:left;color:var(--forest);font-size:inherit;font-weight:700;line-height:inherit;letter-spacing:inherit;overflow-wrap:anywhere}
.title-button:hover{color:#43825b;text-decoration:underline}
.result p{color:#5c6d62;font-size:13px;line-height:1.9;margin-bottom:18px;overflow-wrap:anywhere}
.result .actions{display:flex;align-items:center;gap:17px;flex-wrap:wrap;font-size:12px}
.actions button{border:1px solid #d1e3d2;background:#f1f7ed;color:var(--forest);padding:7px 12px;border-radius:7px;font-size:12px}
.actions button:hover{background:#e4f0dc}
.actions a,.portal a{color:#357252;text-decoration:none;font-weight:600}
.actions a:hover,.portal a:hover{text-decoration:underline}
mark{background:#e2efb7;color:#244d35;border-radius:2px}
.portal-heading{font-size:17px;margin:30px 0 14px}
.portal h2{margin:0 0 5px}.portal p{margin:0 0 10px}
aside{background:#eaf2e6;border-radius:17px;padding:26px 25px 30px}
.aside-top{display:flex;justify-content:space-between;align-items:center}
.aside-top>span:last-child{font-size:26px;color:#80a966;line-height:1}
aside h2{font-size:24px;letter-spacing:-.06em;line-height:1.45;margin:23px 0 11px}
aside p{font-size:12px;line-height:1.8;color:#66806b;margin-bottom:0}
.aside-divider{height:1px;background:#d0e0cb;margin:25px 0}
.tip{display:flex;gap:14px;margin-top:18px}
.tip>span{font-size:11px;color:#69915f;font-weight:700;padding-top:2px}
.tip strong{font-size:13px}
.tip p{margin:4px 0 0}
nav#pagination{display:flex;justify-content:center;align-items:center;gap:15px;margin-top:24px;font-size:12px;color:var(--muted)}
nav#pagination button{border:0;border-radius:8px;background:#e9f3e5;color:var(--ink);padding:9px 13px}
nav#pagination button:hover{background:#ecf5e8}
nav#pagination button:disabled{opacity:.45;cursor:default}
footer{max-width:1320px;margin:auto;padding:23px max(5.3vw,24px) 40px;display:flex;justify-content:space-between;color:#7b8a7e;font-size:11px;letter-spacing:.06em}
.footer-sep{margin:0 8px;color:#b2c2b2}
footer span:last-child span{color:#77a361;margin-left:8px}
dialog{width:min(800px,94vw);max-height:85vh;border:1px solid var(--line);border-radius:18px;padding:30px;background:var(--paper);color:var(--ink);box-shadow:0 30px 90px #001c1c40}
dialog::backdrop{background:#08241ed9;backdrop-filter:blur(6px)}
.reader-head{display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:.08em;color:var(--muted)}
.reader-head button{border:1px solid var(--line);background:white;border-radius:7px;padding:7px 11px;color:var(--ink)}
dialog h2{line-height:1.5;letter-spacing:-.04em;margin:24px 0 8px}
#reader-meta{color:var(--muted);font-size:12px}
#reader-link{font-size:12px;color:#357252}
#reader-license{font-size:11px;color:var(--muted)}
#reader-content{white-space:pre-wrap;overflow-wrap:anywhere;line-height:2;margin-top:26px}
.error{color:#b04435;background:#fff3f0;padding:16px;border-radius:10px}
.loading-card{height:154px;border-radius:14px;margin-top:12px;background:linear-gradient(100deg,#edf2ea 10%,#fff 45%,#edf2ea 80%);background-size:220% 100%;animation:shimmer 1.5s infinite}
@keyframes shimmer{to{background-position-x:-220%}}
@media(max-width:1050px){.hero-art{opacity:.5}.layout{grid-template-columns:minmax(0,1fr) 270px;gap:20px}}
@media(max-width:760px){.site-header{height:72px}.brand{font-size:20px}.brand small{display:none}.logo{width:36px;height:36px;font-size:18px}.hero{padding-top:55px;padding-bottom:24px}.hero-art{top:22px;opacity:.26}.hero-copy p{font-size:13px;margin-bottom:30px}.searchbox{min-height:64px;gap:9px;padding-left:15px}.search-icon{width:20px;height:20px}.searchbox input{font-size:14px}.search-submit{padding:13px 15px;font-size:12px}.search-submit span{display:none}.hero-bottom{margin-top:29px}.content-shell{padding-top:45px;padding-bottom:55px}.section-caption{display:none}.layout{grid-template-columns:1fr}.welcome{padding:45px 15px}.welcome h2{font-size:20px}aside{margin-top:12px}footer{gap:20px;line-height:1.5}}
@media(max-width:460px){.header-link{font-size:11px;padding:7px 11px}.hero{padding-left:19px;padding-right:19px}.site-header{padding-left:19px;padding-right:19px}h1{font-size:49px}.options-title{width:100%}.options label{flex:1 1 calc(50% - 9px);justify-content:space-between}.options input{width:80px}.content-shell{padding-left:19px;padding-right:19px}.search-submit{padding:12px 10px}.searchbox{gap:5px}.searchbox input{font-size:13px}.result{padding:19px}.result h2{font-size:18px}footer{padding-left:19px;padding-right:19px}}
@media(max-width:460px){.ai-answer{padding:23px 21px 20px;border-radius:17px}.ai-answer h2{font-size:23px}.ai-answer-text{font-size:14px}.ai-provider,.web-results-heading span{display:none}}
/* A mist-green canvas ties the search controls and reading area together. */
:root{--paper:#f3f6f2;--ink:#263e35;--muted:#566b60;--line:#d4e1d6;--lime:#d5e9c9}
.site-header{background:#e1ebe1;color:var(--ink);border-color:#cfddcf}
.header-link,.options label{border-color:#b7cbbd}
.header-link span,.options-title span{color:#38745a}
.hero{color:var(--ink);background:radial-gradient(ellipse at 78% 15%,#d0e4d9,transparent 52%),linear-gradient(#e1ebe1,var(--paper))}
.hero-eyebrow,h1 em,.art-core{color:#47785f}
.art-ring{border-color:#84a99288}
.hero-copy p,.options-title,.options label,.options input,.options select,.options input::placeholder{color:#415d4c}
.options label{background:#f8fbf68c}
.options label:hover,.options label:focus-within{background:#f6fbf4;border-color:#8ead95}
.searchbox,.searchbox:focus-within{box-shadow:0 7px 24px #355f4712,0 0 0 1px #bed0c2}
.searchbox:focus-within{box-shadow:0 8px 26px #355f4721,0 0 0 2px #789e84}
.ai-answer{background:linear-gradient(120deg,#e0ede1,#edf3e9);border-color:#c6d9c9;color:var(--ink);box-shadow:0 10px 32px #3459410d}
.ai-answer:after{color:#36614809}
.ai-kicker,.ai-sources a{background:#f4f8ef;color:#345941;border-color:#bbd0bc}
.ai-provider,.ai-sources-label{color:#516958}
.ai-sources{border-color:#c6d7c8}
.ai-sources a{transition:background .18s,transform .18s}
.ai-sources a:hover,.ai-sources a:focus-visible{background:#fff;transform:translateY(-2px)}
.result:hover{background:#eaf1e9}
@media(prefers-reduced-motion:no-preference){
  .hero-art{animation:drift 9s ease-in-out infinite alternate}
  .recent-searches,dialog[open]{animation:rise .22s ease-out both}
  #results>.result:nth-of-type(2){animation-delay:40ms}
  #results>.result:nth-of-type(3){animation-delay:80ms}
  .results:has(.loading-card) #summary:before{content:"";display:inline-block;width:8px;height:8px;margin-right:9px;border-radius:50%;background:#5b8469;animation:breathe 1s ease-in-out infinite alternate}
}
@keyframes drift{to{transform:translateY(9px)}}
@keyframes breathe{to{opacity:.4;transform:scale(.72)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
