/* Forest palette. Radius: surfaces 20px, controls 8px. Layers: content 1, nav 30, overlay 25, dialog 50. */
:root {
  --bg:#f3f6f2; --bg-alt:#eaf0e9; --surface:#fcfdfa; --surface-raised:#ffffff;
  --text:#19372d; --text-muted:#52665d; --text-light:#65766d;
  --accent:#286347; --accent-2:#377c56; --accent-light:#93bf8c; --cyan:#286347; --cyan-light:#286347;
  --border:#d5e0d4; --dark:var(--bg); --dark-2:var(--surface); --dark-3:var(--surface);
  --bg-dark:var(--bg); --shadow:0 12px 35px #1c493510; --shadow-lg:0 24px 56px #1c49351c;
  --radius:8px; --radius-lg:20px; --transition:280ms cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
:root[data-theme="dark"] {
  --bg:#10251f; --bg-alt:#142c25; --surface:#1a332b; --surface-raised:#203d32;
  --text:#edf3e9; --text-muted:#b1c4b7; --text-light:#9bb1a1; --border:#355044;
  --accent:#b5d49c; --accent-2:#c5e2ae; --accent-light:#d7ebc5; --cyan:#b5d49c; --cyan-light:#b5d49c;
  --shadow:0 12px 35px #05140c30; --shadow-lg:0 24px 56px #05140c45;
  color-scheme:dark;
}
html { scroll-padding-top:100px; }
body { background:var(--bg); color:var(--text); -webkit-font-smoothing:antialiased; }
button,input,textarea { font:inherit; }
a,button { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
::selection { background:#bdd8a8; color:#153b2b; }
[hidden] { display:none !important; }
.container { width:100%; max-width:1380px; padding-inline:64px; }
.section { padding:110px 0 120px; }
.section-dark { color:var(--text-muted); }
.section-header { text-align:left; margin-bottom:52px; }
.section-title,.section-dark .section-title { color:var(--text); font-size:clamp(2rem,3.5vw,3.25rem); line-height:1.3; letter-spacing:-.04em; font-weight:650; }
.section-subtitle,.section-dark .section-subtitle { color:var(--text-muted); margin:18px 0 0; max-width:640px; line-height:1.8; }
.section-tag,.section-dark .section-tag { color:var(--accent); letter-spacing:.17em; font-size:.7rem; font-weight:600; margin-bottom:18px; }
.skip-link { position:fixed; top:8px; left:16px; z-index:60; background:var(--surface); padding:10px 18px; transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.navbar { padding:17px 0; z-index:30; background:linear-gradient(#0a211cc9,transparent); }
.navbar.scrolled { background:var(--bg); padding:13px 0; border-bottom:1px solid var(--border); backdrop-filter:blur(20px); }
.navbar-inner { gap:22px; }
.logo { font-size:1.15rem; letter-spacing:.04em; }
.logo-img { width:38px; height:38px; box-shadow:none; }
.logo:hover .logo-img { transform:none; box-shadow:none; }
.nav-links { gap:25px; margin-left:auto; }
.nav-links a { font-size:.81rem; color:#edf3e5d9; white-space:nowrap; }
.navbar.scrolled .logo,.navbar.scrolled .nav-links a { color:var(--text); }
.nav-links a::after { background:var(--accent-light); height:1px; }
.nav-links a[aria-current="location"]::after { width:100%; }
.nav-cta { background:#d0e5b7; border-radius:8px; color:#183a29 !important; box-shadow:none; padding:9px 17px !important; }
.nav-cta:hover { box-shadow:none; }
.theme-toggle { flex-shrink:0; width:36px; height:36px; background:transparent; border:1px solid #ffffff50; border-radius:50%; color:#eef5e9; font-size:18px; }
.navbar.scrolled .theme-toggle { color:var(--text); border-color:var(--border); }
.navbar.scrolled .menu-toggle span { background:var(--text); }
.hero { min-height:780px; min-height:max(780px,100dvh); background:#0b251e; isolation:isolate; }
.hero-landscape { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:65% center; z-index:-3; }
.hero::before { background:linear-gradient(90deg,#071e18bc 0%,#0a251c55 48%,transparent 78%); animation:none; z-index:-2; }
.hero::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#0b211bd9,transparent 40%); z-index:-1; pointer-events:none; }
.hero-inner { padding-top:148px; padding-bottom:55px; }
.hero-content { max-width:100%; }
.hero-badge { border:0; border-radius:0; padding:0; background:none; backdrop-filter:none; color:#c4d9b5; font-size:.78rem; letter-spacing:.18em; margin-bottom:25px; }
.hero-badge::before { display:none; }
.hero h1 { font-size:clamp(2.7rem,4.7vw,4.8rem); line-height:1.28; font-weight:650; letter-spacing:-.045em; margin-bottom:28px; color:#f7faf0; text-wrap:balance; }
.hero h1 span { background:none; -webkit-text-fill-color:initial; color:#c9e1b2; filter:none; }
.hero-desc { color:#d3ded2; font-size:1rem; max-width:515px; border:0; padding:0; line-height:1.95; margin-bottom:35px; }
.btn { border-radius:8px; padding:14px 25px; font-size:.86rem; font-weight:600; letter-spacing:0; }
.btn-primary { color:var(--bg); background:var(--accent); box-shadow:none; }
.btn-primary:hover { background:var(--accent-2); box-shadow:0 8px 22px #183b291c; }
.hero .btn-primary { background:#cde2b7; color:#183a29; }
.hero .btn-primary:hover { background:#dfefce; }
.hero .btn-outline { border:0; background:none; padding-inline:15px; color:#edf4e7; backdrop-filter:none; }
.hero .btn-outline::after { content:'↗'; margin-left:12px; }
.btn:active { transform:translateY(1px); }
.hero-stats { border:none; border-radius:0; border-top:1px solid #e0e9ce38; background:none; backdrop-filter:none; margin-top:86px; padding-top:26px; gap:65px; width:fit-content; }
.hero-stat { text-align:left; padding:0; }
.hero-stat+.hero-stat { border:0; }
.hero-stat .num { background:none; -webkit-text-fill-color:initial; color:#f0f6e8; font-size:1.9rem; font-weight:550; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.hero-stat .label { color:#bacbb6; font-size:.74rem; }
.about-grid { grid-template-columns:1.2fr 1fr; gap:80px; align-items:start; }
.about-text p { color:var(--text-muted); font-size:.94rem; }
.about-text strong,.about-feature h4 { color:var(--text); }
.about-features { gap:24px 20px; margin-top:35px; }
.about-feature { padding:0; background:none; border:0; border-radius:0; }
.about-feature:hover { background:none; }
.about-feature .icon,.ci-icon,.sol-icon { background:transparent !important; border:none !important; color:var(--accent); }
.about-feature .icon { width:30px; height:30px; }
.about-feature p { color:var(--text-muted); font-size:.77rem; }
.company-stats { gap:0; border:1px solid var(--border); padding:20px; border-radius:20px; background:var(--surface); transform:perspective(1100px) rotateY(-4deg); box-shadow:18px 24px 0 -9px var(--bg-alt),30px 36px 45px #0b281714; }
.stat-card { border:0; background:none; border-radius:0; padding:28px 18px; }
.stat-card:hover { background:none; border-color:transparent; transform:none; }
.stat-card::before { display:none; }
.stat-card .val,.cap-db-stat .v { color:var(--accent); background:none; -webkit-text-fill-color:initial; font-size:2.5rem; font-weight:550; font-variant-numeric:tabular-nums; }
.stat-card .lbl,.cap-db-stat .l { color:var(--text-muted); }
#capabilities { background:var(--bg-alt); }
#solutions,#contact { background:var(--bg-alt); }
#submitBtn { width:100%; justify-content:center; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.cap-architecture { background:var(--surface); color:var(--text); border:1px solid var(--border); box-shadow:none; padding:32px; border-radius:20px; }
.cap-architecture::after { display:none; }
.arch-head p,.arch-layer p { color:var(--text-muted); }
.arch-badge { color:var(--accent); border-color:var(--border); border-radius:6px; }
.arch-layer { background:var(--bg-alt); border:0; box-shadow:0 7px 0 -3px var(--border); padding:20px; }
.arch-layer .arch-no,.arch-layer:not(:last-child)::after { color:var(--accent); }
.cap-controls { display:flex; flex-wrap:wrap; gap:10px; margin:38px 0 22px; }
.cap-controls button,.product-filters button,.expand-algorithms { background:transparent; border:1px solid var(--border); border-radius:8px; padding:10px 19px; color:var(--text-muted); font-size:.84rem; }
.cap-controls button[aria-pressed="true"],.product-filters button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:var(--bg); }
.cap-grid { gap:28px; align-items:start; }
.cap-card { border:1px solid var(--border); background:var(--surface); border-radius:20px; padding:28px; }
.cap-card:hover { background:var(--surface); border-color:var(--accent); transform:translateY(-3px); }
.cap-card::before { display:none; }
.cap-card h3 { font-size:1.17rem; font-weight:600; }
.cap-card .cap-num { color:var(--border); font-weight:500; }
.cap-card .cap-tag,.product-body .product-tag,.modal-tag,.sol-item-tag { color:var(--accent); background:var(--bg-alt); border:0; border-radius:4px; }
.cap-principle { background:none; border:0; padding:0; }
.cap-principle p { font-size:.83rem; }
.principle-details { margin:14px 0; }
.principle-details summary { color:var(--accent); font-size:.8rem; cursor:pointer; padding:5px 0; }
.principle-details[open] summary { margin-bottom:12px; }
.cap-pipeline span { color:var(--text-muted); background:var(--bg-alt); }
.cap-pipeline b { color:var(--accent); }
.cap-demo { border:0; aspect-ratio:16/9; background:var(--bg-alt); }
.cap-demo img { width:100%; height:100%; object-fit:contain; }
.cap-demo video { object-fit:contain; }
.demo-caption { display:flex; gap:12px; align-items:start; justify-content:space-between; margin:10px 0 0; }
.demo-caption .cap-demo-label,.demo-caption .cap-demo-note { position:static; padding:0; border-radius:0; background:none; color:var(--text-muted); backdrop-filter:none; font-size:.65rem; }
.cap-effect { display:block; }
.effect-viz { display:none; }
.cap-effect p { font-size:.8rem; }
.video-logo { width:34px !important; height:34px !important; padding:3px; border-radius:6px; box-shadow:none; }
.cap-database { padding:38px 40px; background:var(--surface); border:1px solid var(--border); border-radius:20px; }
.cap-db-text h3 { color:var(--text); }
.cap-db-text p { color:var(--text-muted); }
.product-filters { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:30px; }
.product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.product-show { background:var(--surface); border:1px solid var(--border); border-radius:20px; position:relative; }
.product-show:hover { border-color:var(--accent); transform:translateY(-5px); box-shadow:var(--shadow-lg); }
.product-banner { background:#eef2eb; aspect-ratio:16/10; min-height:0; padding:25px; }
.product-banner img.poster { padding:0; width:100%; height:100%; object-fit:contain; mix-blend-mode:multiply; }
.product-show:hover .product-banner img.poster { transform:scale(1.045); }
.product-body { padding:27px 30px; }
.product-model { font-size:1.55rem; font-weight:550; letter-spacing:-.02em; color:var(--text); margin:5px 0; }
.product-body h3 { font-size:.95rem; font-weight:500; margin-bottom:15px; color:var(--text-muted); }
.product-series-label { font-size:.68rem; letter-spacing:.08em; color:var(--accent); }
.product-body .product-desc { font-size:.87rem; }
.product-specs-mini { margin-top:auto; grid-template-columns:1fr 1fr; }
.product-advantages { display:none; }
.product-show::after,.case-card::after { color:var(--accent) !important; font-size:.82rem !important; padding:0 30px 26px !important; }
.product-show:last-child:nth-child(odd) { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }
.product-show:last-child:nth-child(odd)::after { position:absolute; bottom:0; left:50%; }
.product-show:last-child:nth-child(odd) .product-body { padding-bottom:70px; }
.solution-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 56px; }
.solution-card { border:0; border-bottom:1px solid var(--border); border-radius:0; padding:35px 0; background:none; }
.solution-card:hover { background:none; border-color:var(--accent); transform:none; }
.solution-card::before { display:none; }
.sol-icon { float:left; width:30px; height:30px; margin:0 18px 0 0; }
.solution-card h3 { color:var(--text); font-size:1.2rem; margin-left:48px; }
.solution-card .sol-sub { color:var(--accent); font-size:.65rem; margin-left:48px; }
.solution-card>p,.solution-card .sol-items { margin-left:48px; }
.solution-card p { color:var(--text-muted); font-size:.9rem; }
.sol-item-tag { border:1px solid var(--border); color:var(--text-muted); }
.case-map-panel { background:var(--surface); border-color:var(--border); box-shadow:var(--shadow); border-radius:20px; }
.case-map-visual>img { filter:hue-rotate(-42deg) saturate(.65); }
.case-video-shell .modal-header-model { display:none; }
.case-map-summary { color:var(--text); }
.case-map-summary>p,.case-map-stat span,.case-map-selection,.case-map-legend span { color:var(--text-muted); }
.case-map-stat strong { color:var(--accent); }
.case-location-list button { color:var(--text-muted); background:var(--bg-alt); border-color:var(--border); }
.case-location-list button:hover,.case-location-list button:focus-visible,.case-location-list button.active { color:var(--text); background:var(--surface-raised); border-color:var(--accent); }
.map-marker::before { animation:none; }
.case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px; }
.case-card { background:transparent; border:none; border-radius:0; }
.case-card:hover { box-shadow:none; transform:translateY(-4px); }
.case-banner { height:auto; aspect-ratio:16/9; border-radius:16px; }
.case-banner::before { display:none; }
.case-banner img { width:100%; height:100%; object-fit:cover; transition:transform .45s; }
.case-card:hover .case-banner img { transform:scale(1.025); }
.case-body { padding:24px 0 18px; }
.case-body h3 { font-size:1.15rem; font-weight:600; }
.case-body .case-tag { background:none; padding:0; color:var(--accent); font-size:.73rem; }
.case-card::after { padding:0 !important; }
.contact-form { background:var(--surface); box-shadow:var(--shadow-lg); border:1px solid var(--border); padding:36px; border-radius:20px; }
.contact-item .ci-icon { width:30px; height:30px; }
.form-group input,.form-group textarea { background:var(--bg); border:1px solid var(--border); border-radius:8px; }
.form-group input:focus,.form-group textarea:focus { background:var(--surface); border-color:var(--accent); }
.form-note { font-size:.72rem; color:var(--text-muted); margin-top:16px; line-height:1.8; }
.form-status a { text-decoration:underline; }
.form-status.error { color:#b44031; background:#fae9e3; }
.form-status.success { color:#28583b; background:#e2efdd; }
.footer { background:var(--bg); color:var(--text-muted); border-top:1px solid var(--border); }
.footer-brand h3,.footer-col h4 { color:var(--text); }
.footer-col a,.footer-bottom { color:var(--text-muted); }
.footer-col a:hover { color:var(--accent); }
.footer-bottom { gap:24px; flex-wrap:wrap; border-color:var(--border); }
.footer-grid { grid-template-columns:2fr 1fr 1fr; }
.footer-col:last-child { display:none; }
.back-top { background:var(--accent); color:var(--bg); box-shadow:var(--shadow); z-index:20; }
.overlay { z-index:25; }
.modal-overlay { z-index:50; visibility:hidden; }
.modal-overlay.active { visibility:visible; }
.modal-box { background:var(--surface); border:1px solid var(--border); border-radius:20px; }
.modal-body { color:var(--text-muted); }
.modal-body h2,.modal-body h3 { color:var(--text); }
.modal-body p,.modal-body li,.spec-table td { color:var(--text-muted); }
.spec-table tr { border-color:var(--border); }
.spec-table .spec-key { color:var(--text); background:var(--bg-alt); }
.modal-header-model { border-radius:0; background:#133b2be6; color:#eff5e8; }
.product-detail-media { background:#eef2eb; }
.product-detail-media img { object-fit:contain; mix-blend-mode:multiply; }
.product-detail-modal .product-detail-media,.product-detail-modal .product-detail-media .modal-header-video { background:#eef2eb; }
.modal-body h3::before { background:var(--accent); }
.modal-body .modal-tag { background:var(--bg-alt); }
.modal-close { background:#15392b; color:#eef4e9; }
.theme-toggle img { width:18px; height:18px; margin:auto; filter:invert(1); }
.icon img,.sol-icon img,.ci-icon img { width:26px; height:26px; }
[data-theme="dark"] .icon img,[data-theme="dark"] .sol-icon img,[data-theme="dark"] .ci-icon img { filter:invert(.8) sepia(.4) saturate(.6); }
.navbar.scrolled .theme-toggle img { filter:none; }
[data-theme="dark"] .navbar.scrolled .theme-toggle img { filter:invert(1); }
@media (prefers-reduced-motion:no-preference) {
  .hero-content>* { animation:hero-reveal .85s both; }
  .hero-content h1 { animation-delay:.08s; }
  .hero-desc { animation-delay:.16s; }
  .hero-btns { animation-delay:.24s; }
  .hero-stats { animation-delay:.32s; }
  @keyframes hero-reveal { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:none; } }
}
@media (max-width:1150px) {
  .container { padding-inline:36px; }
  .nav-links { gap:17px; }
  .nav-links a { font-size:.76rem; }
  .navbar-inner { gap:16px; }
  .about-grid { gap:42px; }
}
@media (max-width:900px) {
  .nav-links { background:var(--bg); height:100dvh; margin:0; gap:24px; padding-top:95px; transform:translateX(100%); right:0; visibility:hidden; transition:transform .3s,visibility .3s; }
  .nav-links.active { transform:translateX(0); visibility:visible; }
  .nav-links a { color:var(--text); font-size:1rem; }
  .menu-toggle { order:3; width:30px; }
  .theme-toggle { margin-left:auto; }
  .navbar-inner>.logo { margin-right:auto; }
  .nav-links.active~.theme-toggle { visibility:hidden; }
  .hero { min-height:820px; }
  .hero h1 { font-size:3rem; }
  .about-grid { grid-template-columns:1fr; }
  .company-stats { grid-template-columns:repeat(3,1fr); transform:none; }
}
@media (max-width:700px) {
  .container { padding-inline:22px; }
  .section { padding:70px 0 76px; }
  .section-header { margin-bottom:34px; }
  .section-title { font-size:2.15rem; }
  .section-subtitle { font-size:.87rem; }
  .hero { min-height:780px; min-height:max(760px,100dvh); align-items:stretch; }
  .hero-inner { padding-top:148px; padding-bottom:40px; }
  .hero-landscape { object-position:63% center; }
  .hero::before { background:linear-gradient(90deg,#072118d9,#09261b60); }
  .hero h1 { font-size:clamp(2.05rem,7.8vw,3rem); line-height:1.4; }
  .hero-desc { font-size:.93rem; max-width:430px; line-height:1.9; }
  .hero-stats { gap:28px; width:100%; justify-content:space-between; margin-top:65px; flex-wrap:nowrap; }
  .hero-stat .num { font-size:1.5rem; }
  .hero-stat .label { font-size:.68rem; letter-spacing:0; }
  .hero-badge { font-size:.69rem; letter-spacing:.1em; }
  .hero-btns { gap:8px; }
  .btn { padding:13px 20px; }
  .about-grid { gap:30px; }
  .company-stats { padding:10px; }
  .stat-card { padding:23px 10px; }
  .stat-card .val { font-size:1.55rem; }
  .stat-card .lbl { font-size:.7rem; }
  .about-features { grid-template-columns:1fr; }
  .arch-flow { grid-template-columns:1fr 1fr; gap:16px; }
  .arch-layer { padding:15px; }
  .arch-layer p { font-size:.72rem; }
  .cap-architecture { padding:22px; }
  .cap-grid,.product-grid,.solution-grid,.case-grid { grid-template-columns:1fr; }
  .cap-card { padding:23px; }
  .cap-database { padding:28px; gap:25px; }
  .cap-db-stats { gap:25px; }
  .cap-db-stat .v { font-size:1.75rem; }
  .product-show:last-child:nth-child(odd) { display:flex; grid-column:auto; }
  .product-show:last-child:nth-child(odd)::after { position:static; }
  .product-show:last-child:nth-child(odd) .product-body { padding-bottom:27px; }
  .product-filters button,.cap-controls button { padding:9px 13px; font-size:.78rem; }
  .product-banner { padding:18px; }
  .product-body { padding:25px; }
  .product-model { font-size:1.4rem; }
  .case-map-visual { aspect-ratio:3/2; }
  .case-map-panel { margin-inline:0; }
  .case-map-caption { font-size:.55rem; }
  .case-location-list { grid-template-columns:1fr 1fr; }
  .contact-form { padding:25px; }
  .contact-grid { gap:28px; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:28px; }
  .footer-brand { grid-column:1/-1; }
  .footer-bottom { font-size:.7rem; }
  .back-top { right:16px; bottom:18px; }
  .modal-body { padding:25px; }
}
@media (prefers-reduced-motion:reduce) {
  html:not(.eco-motion) *,html:not(.eco-motion) *::before,html:not(.eco-motion) *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .fade-up { opacity:1; transform:none; }
}
@media (prefers-reduced-transparency:reduce) { .navbar { background:#123426; } .navbar.scrolled { background:var(--bg); } .modal-overlay { backdrop-filter:none; } }
/* Review revision: coherent product scale and geographic overview. */
.product-banner { padding:20px; background:#fff; aspect-ratio:3/2; }
.product-banner img.poster { mix-blend-mode:normal; object-fit:contain; }
.product-detail-modal .product-detail-media,.product-detail-modal .modal-header-video { background:#fff; }
.product-detail-media img { mix-blend-mode:normal; }
.case-map-panel { grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr); align-items:start; overflow:hidden; }
.case-map-visual { aspect-ratio:10/7; background:#102f2c; min-height:0; }
.case-map-visual>img { width:100%; height:100%; object-fit:contain; filter:none; }
.case-map-caption { top:14px; bottom:auto; left:20px; color:#d8e8df; }
.map-marker.covered { --marker-color:#bde8ad; }
.map-marker.documented { --marker-color:#90a6a1; }
.map-marker .map-label { font-size:10px; padding:2px 4px; background:#092b25e8; border:1px solid #577f6e; color:#e7f5e7; }
.case-map-legend .covered { background:#77b092; }
.case-map-legend .documented { background:#45645c; }
.case-location-list { max-height:230px; overflow:auto; grid-template-columns:repeat(3,minmax(0,1fr)); }
.case-location-list button { display:flex; flex-direction:column; gap:2px; text-align:left; padding:9px; }
.case-location-list small { font-size:10px; opacity:.75; }
.case-map-selection { max-height:210px; overflow:auto; line-height:1.85; }
.case-map-selection strong,.case-map-selection span { display:block; }
.case-map-selection strong { color:var(--text); margin-bottom:7px; }
.map-source { font-size:11px; color:var(--text-muted); line-height:1.8; margin:12px 0 35px; }
.map-source a { color:inherit; text-decoration:underline; }
.case-archive-heading { margin-bottom:8px; }
.case-archive-note { color:var(--text-muted); font-size:.85rem; margin-bottom:25px; }
@media(max-width:1050px) { .case-map-panel { grid-template-columns:1fr; } .case-map-summary { padding:24px; } }
@media(max-width:700px) { .case-map-visual { aspect-ratio:10/7; } .map-marker .map-label { display:none; } .map-marker { transform:translate(-50%,-50%) scale(.8); } .map-marker.active .map-label { display:block; } .case-map-caption { font-size:10px; } .product-banner { padding:18px; } }

.case-map-visual::after { display:none; }

/* Dimensional geographic scene, colors represent verified site counts. */
.case-map-visual { background:#071924; }
.map-marker.hub { --marker-color:#ffd078; --marker-glow:#f2c16b80; }
.map-marker.cluster { --marker-color:#55d9f0; --marker-glow:#55d9f070; }
.map-marker.single { --marker-color:#9de1a4; --marker-glow:#9de1a450; }
.map-marker.documented { --marker-color:#869fad; --marker-glow:#869fad25; }
.map-marker { width:14px; height:14px; border-width:2px; box-shadow:0 0 0 4px color-mix(in srgb,var(--marker-color) 15%,transparent),0 0 16px var(--marker-glow); }
.map-marker::before { inset:auto; width:22px; height:9px; left:50%; top:23px; transform:translateX(-50%); border-color:var(--marker-color); background:color-mix(in srgb,var(--marker-color) 20%,transparent); }
.map-marker::after { content:''; position:absolute; top:11px; left:4px; width:1px; height:15px; background:linear-gradient(var(--marker-color),transparent); pointer-events:none; }
.map-marker .map-label { font-size:11px; padding:4px 7px; background:#082330ee; border-color:#4b879b; }
.map-marker:focus-visible { outline:2px solid #fff; outline-offset:6px; }
.case-map-legend .hub { background:#ffd078; }
.case-map-legend .cluster { background:#55d9f0; }
.case-map-legend .single { background:#9de1a4; }
.case-map-legend .documented { background:#869fad; }
.case-map-legend { flex-wrap:wrap; row-gap:10px; }
@media(max-width:700px) { .map-marker { width:12px; height:12px; } .map-marker::before { width:16px; height:6px; top:19px; } .map-marker::after { left:3px; height:11px; top:10px; } }

/* Original terrain style selected by the user. */
.case-map-visual { aspect-ratio:1586/992; background:#031c18; }
.case-map-visual>img:not(.south-sea-inset) { filter:hue-rotate(-42deg) saturate(.65); }
.case-map-visual>img.south-sea-inset { position:absolute; z-index:5; right:2%; bottom:3%; width:17%; height:auto; border:1px solid #86b4a7; border-radius:5px; filter:none; box-shadow:0 8px 18px #0005; }
.map-marker.hub { --marker-color:#ff921c; --marker-glow:#ff921c80; }
.map-marker.cluster { --marker-color:#64a8ff; --marker-glow:#64a8ff80; }
.map-marker.single { --marker-color:#26d5e7; --marker-glow:#26d5e780; }
.map-marker.documented { --marker-color:#91a9bf; --marker-glow:#91a9bf45; }
.map-marker { width:18px; height:18px; border:3px solid #fff; box-shadow:0 0 0 5px color-mix(in srgb,var(--marker-color) 22%,transparent),0 0 18px var(--marker-glow); }
.map-marker::before { inset:-9px; width:auto; height:auto; transform:none; border:1px solid var(--marker-color); border-radius:50%; background:transparent; }
.map-marker::after { display:none; }
.case-map-legend .hub { background:#ff921c; }
.case-map-legend .cluster { background:#64a8ff; }
.case-map-legend .single { background:#26d5e7; }
.case-map-legend .documented { background:#91a9bf; }
@media(max-width:700px) { .case-map-visual { aspect-ratio:1586/992; } .map-marker { width:14px; height:14px; border-width:2px; } .map-marker::before { inset:-6px; width:auto; height:auto; } }

/* Publication copy and complete geographic inset. */
.case-map-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
.case-map-visual>img.south-sea-inset { width:21%; right:1.5%; bottom:2.5%; }
.case-map-legend::before { content:'省域生态地点'; font-size:11px; color:var(--text-muted); }

/* Province navigation only. */
.case-location-list { max-height:none; overflow:visible; margin-top:12px; }
.case-location-list button { min-height:44px; justify-content:center; padding:12px; }

.footer-brand .footer-coming { margin-top:24px; font-size:clamp(23px,2.1vw,32px); line-height:1.6; font-weight:800; letter-spacing:.08em; color:#278de6; text-shadow:0 1px 0 #b9efff,0 2px 0 #176eb4,0 3px 0 #135792,0 5px 8px #175aa84d,0 0 15px #36a9ff85,0 0 28px #4ab9ff55; }
[data-theme=dark] .footer-brand .footer-coming { color:#7ccaff; text-shadow:0 1px 0 #d8f7ff,0 2px 0 #287bc1,0 3px 0 #165692,0 5px 8px #061c44,0 0 16px #229aff,0 0 32px #229aff77; }

.footer-brand .footer-coming { color:#309b64; text-shadow:0 1px 0 #d4ffe3,0 2px 0 #287a50,0 3px 0 #19583c,0 5px 8px #175b384d,0 0 15px #36cc8585,0 0 28px #4ad99555; }
[data-theme=dark] .footer-brand .footer-coming { color:#8ee6af; text-shadow:0 1px 0 #d8ffe7,0 2px 0 #38966a,0 3px 0 #206448,0 5px 8px #062c1c,0 0 16px #36d787,0 0 32px #36d78777; }

.contact-qr-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:30px; max-width:500px; }
.contact-qr { display:flex; flex-direction:column; align-items:center; padding:18px 12px; border:1px solid var(--border); border-radius:16px; background:var(--surface); text-align:center; color:var(--text); text-decoration:none; }
.contact-qr img { width:min(100%,180px); height:auto; background:#fff; border-radius:6px; }
.contact-qr strong { font-size:16px; margin-top:15px; }
.contact-qr span { font-size:11px; margin-top:7px; color:var(--text-muted); line-height:1.6; }
.contact-qr:hover { border-color:var(--accent); }
.contact-qr:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
@media(max-width:400px) { .contact-qr-grid { gap:10px; } .contact-qr { padding:12px 8px; } .contact-qr strong { font-size:14px; } }
