:root{--bg:#fbfdf9;--g:#0b3d1e;--g2:#1f7a3a;--soft:#e8f3e3;--sand:#f1e9d6;--line:#d4e3cd;--r:14px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--g);font:17px/1.65 Georgia,'Times New Roman',serif}
h1,h2,h3,.logo,button,nav,label,.tag{font-family:system-ui,-apple-system,'Segoe UI',Roboto,sans-serif}
h1{font-size:clamp(2rem,6vw,3.6rem);line-height:1.1;margin:.2em 0}h2{font-size:1.7rem;margin:1.4em 0 .5em}h3{margin:.2em 0}
a{color:var(--g2)}p{max-width:68ch}.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--g2);outline-offset:2px}
header{position:sticky;top:0;background:rgba(251,253,249,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:20}
.bar{max-width:1100px;margin:auto;padding:10px 18px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}
.logo{font-weight:800;letter-spacing:.04em;color:var(--g);text-decoration:none;font-size:1.1rem}
nav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}nav a{padding:8px 12px;border-radius:99px;color:var(--g);text-decoration:none;font-weight:600;font-size:.95rem}
nav a:hover,nav a.on{background:var(--soft)}#mt{display:none;background:none;border:1px solid var(--line);border-radius:10px;font-size:1.3rem;padding:4px 12px;color:var(--g)}
@media(max-width:760px){#mt{display:block}nav{display:none;width:100%;flex-direction:column;align-items:stretch;padding:8px 0}nav.open{display:flex}}
.wrap{max-width:1100px;margin:auto;padding:28px 18px}
.btn,button.btn{display:inline-block;background:var(--g);color:#fff;border:0;border-radius:99px;padding:12px 24px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;transition:transform .15s,background .2s}
.btn:hover{background:var(--g2);transform:translateY(-2px)}.btn.alt{background:var(--soft);color:var(--g)}.btn.sm{padding:6px 14px;font-size:.85rem}.btn:disabled{opacity:.5}
.grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px;color:var(--g);text-decoration:none;display:block}
a.card:hover{border-color:var(--g2);box-shadow:0 8px 24px rgba(11,61,30,.1)}
.tag{display:inline-block;background:var(--soft);border-radius:99px;padding:2px 12px;font-size:.8rem;font-weight:600}
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg),var(--soft));border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;gap:20px;grid-template-columns:1.1fr .9fr;align-items:center;padding-top:50px;padding-bottom:20px}
@media(max-width:800px){.hero .wrap{grid-template-columns:1fr}}
.scene{width:100%;max-height:340px}.sun{transform-origin:center;animation:pulse 5s ease-in-out infinite}
.stem{stroke-dasharray:120;stroke-dashoffset:120;animation:grow 2.4s .3s ease-out forwards}.leaf{opacity:0;transform-origin:bottom;animation:pop .8s 2s ease-out forwards}
.leaf.b{animation-delay:2.4s}.sway{transform-origin:50% 100%;animation:sway 4s 3s ease-in-out infinite alternate}
.fl{position:absolute;width:22px;height:22px;background:var(--g2);opacity:.18;border-radius:0 100% 0 100%;animation:fall linear infinite}
.fl:nth-child(1){left:8%;animation-duration:14s}.fl:nth-child(2){left:30%;animation-duration:18s;animation-delay:-6s}.fl:nth-child(3){left:55%;animation-duration:16s;animation-delay:-3s}.fl:nth-child(4){left:80%;animation-duration:20s;animation-delay:-9s}
@keyframes grow{to{stroke-dashoffset:0}}@keyframes pop{to{opacity:1;transform:scale(1.0)}}@keyframes sway{to{transform:rotate(3deg)}}
@keyframes pulse{50%{transform:scale(1.08);opacity:.85}}@keyframes fall{from{top:-30px;transform:rotate(0)}to{top:105%;transform:rotate(360deg) translateX(40px)}}
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s,transform .7s}.rv.in{opacity:1;transform:none}
form.f{display:grid;gap:12px;max-width:560px}label{font-weight:600;font-size:.9rem}
input,select,textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--g)}textarea{min-height:120px}
.err{background:#fdecea;color:#7a1c12;border-radius:10px;padding:14px}.empty{background:var(--soft);border-radius:var(--r);padding:28px;text-align:center}
.sk{height:90px;border-radius:var(--r);background:linear-gradient(90deg,var(--soft),#fff,var(--soft));background-size:200% 100%;animation:sh 1.2s infinite;margin:12px 0}@keyframes sh{to{background-position:-200% 0}}
#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,80px);background:var(--g);color:#fff;padding:12px 22px;border-radius:99px;transition:transform .3s;z-index:50;font-family:system-ui}
#toast.show{transform:translate(-50%,0)}#toast.bad{background:#9b2c1f}
table{width:100%;border-collapse:collapse;font:.9rem system-ui}td,th{padding:8px;border-bottom:1px solid var(--line);text-align:left}.tw{overflow-x:auto}
.pre{white-space:pre-wrap}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
footer{background:var(--g);color:#e8f3e3;text-align:center;padding:24px 18px;margin-top:40px}footer a{color:#fff}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.stem{stroke-dashoffset:0}.leaf,.rv{opacity:1;transform:none}}
#hd{background:#fff;text-align:center;border-bottom:1px solid var(--line)}#hd img{width:100%;display:block;max-height:280px;object-fit:cover}#hd .logo{display:block;padding:22px}.bar{justify-content:center}@media(max-width:760px){.bar{justify-content:flex-end}}
