:root{--bg:#f7f9f8;--surface:#ebf0ee;--ink:#06525c;--accent:#06525c;--paper:#f7f9f8;--band-bg:#06525c;--band-text:#f7f9f8;color-scheme:light;--body:clamp(16px,1.25vw,18px);--small:14px;--lead:clamp(22px,2.2vw,32px);--head:clamp(30px,4.2vw,58px);font-family:Work Sans,PingFang TC,Noto Sans TC,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;scroll-behavior:smooth;scroll-padding-top:32px}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:5px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:5px}img{max-width:100%;display:block}p{font-size:var(--body);line-height:1.7;text-wrap:pretty}h1,h2,h3,p,figure{margin:0}h2{font-size:var(--head);line-height:1.2;letter-spacing:-.05em;text-wrap:balance;font-weight:600}h3{font-size:var(--lead);line-height:1.3;font-weight:600}p+p{margin-top:20px}code{font:inherit;overflow-wrap:anywhere}.frame{width:calc(100% - 64px);max-width:1600px;margin-inline:auto}.nav{display:flex;align-items:center;justify-content:space-between;padding-block:26px}.brand{font-size:28px;font-weight:600;letter-spacing:-.07em;text-decoration:none}.nav nav{display:flex;gap:32px;font-size:16px}.nav nav a{text-decoration:none}.nav nav a:hover{text-decoration:underline}.wordmark{font-family:Anton,Arial Narrow,Impact,sans-serif;font-size:clamp(100px,22.7vw,350px);font-weight:400;line-height:.9;letter-spacing:-.025em;margin-top:18px;overflow:visible}.hero-copy{display:flex;justify-content:space-between;align-items:flex-start;gap:40px;padding:42px 0 36px}.hero-line{font-size:clamp(28px,3.7vw,52px);line-height:1.3;letter-spacing:-.055em;font-weight:600}.hero-copy>div{max-width:470px}.button{display:inline-flex;gap:28px;align-items:center;justify-content:space-between;background:var(--accent);color:var(--paper);font-size:16px;min-height:50px;padding:14px 24px;text-decoration:none;border:0;transition:transform .2s}.button:hover{transform:translateY(-3px)}.button:active{transform:translateY(1px)}.hero-copy .button{margin-top:24px}.hero-image{overflow:hidden}.hero-image>img{width:100%;height:clamp(320px,43vw,650px);object-fit:cover;object-position:center 65%;animation:drift 24s ease-in-out infinite alternate}.hero-image figcaption{position:relative;background:var(--bg);font-size:var(--small);padding-top:14px;display:flex;justify-content:space-between;gap:16px}.demo,.photo-journal,.install,.faq{margin-top:150px}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:50px;margin-bottom:40px}.section-head p{max-width:420px}.demo-note{margin-top:20px;max-width:920px;font-size:var(--small)}.download-row{display:flex;gap:28px;flex-wrap:wrap;margin-top:20px;font-size:16px}.journal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.journal-photo{padding:0;border:0;background:transparent;color:var(--ink);text-align:left;overflow:hidden}.journal-photo img{aspect-ratio:4/5;object-fit:cover;width:100%;height:auto;transition:transform .5s}.journal-photo:hover img{transform:scale(1.035)}.journal-photo span{position:relative;display:block;background:var(--bg);padding-top:16px;font-size:var(--body)}.journal-photo:nth-child(2n){margin-top:64px}.workflow{background:var(--band-bg);color:var(--band-text);margin-top:150px;padding:80px 0}.workflow-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px}.workflow-inner h2{margin-bottom:36px}.workflow-inner>div>p{max-width:560px}.workflow-inner>div>a{display:inline-block;margin-top:28px}.code-sheet{background:var(--surface);color:var(--ink);padding:32px}.code-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.code-top button{background:var(--ink);color:var(--paper);border:0;padding:10px 16px;min-height:44px}.code-sheet pre,pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:16px;line-height:1.8;margin:24px 0}.code-sheet>p{font-size:14px}.install-layout{display:grid;grid-template-columns:1fr 2fr;gap:80px}.install-tabs{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.install-tabs button{border:0;color:var(--ink);background:transparent;padding:12px 20px;font-size:var(--lead);text-align:left;width:100%;min-height:54px}.install-tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}.install-panels{background:var(--surface);padding:40px;min-height:330px}.install-panels h3{margin-bottom:24px}.install-panels p{max-width:740px}.install-panels .button,.install-panels a{margin-top:24px}.install-panels pre{background:var(--bg);padding:20px}.faq h2{margin-bottom:40px}.faq details{background:var(--surface);padding:28px 32px;margin-bottom:12px}.faq summary{font-size:var(--lead);cursor:pointer;line-height:1.5}.faq details p{max-width:900px;margin-top:24px}.faq details a{display:inline-block;margin-top:16px}.footer{background:var(--band-bg);color:var(--band-text);margin-top:150px;padding:60px 0 32px}.footer-top{display:grid;grid-template-columns:1.1fr 1.4fr auto auto;align-items:center;gap:40px;margin-bottom:60px}.footer-brand{font-family:Anton,Impact,sans-serif;font-size:clamp(48px,7vw,104px);line-height:1;text-decoration:none}.footer-top p{font-size:var(--lead);line-height:1.4}.footer details{max-width:1000px}.footer summary{font-size:16px;cursor:pointer;padding:12px 0}.footer details p,.footer li{font-size:14px;line-height:1.8}.footer li{margin-top:12px;overflow-wrap:anywhere}.footer-note{font-size:14px;margin-top:32px}.skip{position:absolute;top:-100px;left:20px;z-index:9999;background:var(--ink);color:var(--paper);padding:15px}.skip:focus{top:15px}.sr-only{position:absolute;clip:rect(0,0,0,0);width:1px;height:1px;overflow:hidden}.relive-player{--background-primary:var(--bg);--background-secondary:var(--surface);--text-normal:var(--ink);--text-muted:var(--ink);--interactive-accent:var(--ink);--font-interface:inherit;border:0;border-radius:0}.relive-player .relive-map{height:540px}.relive-player .relive-header{background:var(--surface)}.relive-player .relive-header strong{font-size:18px}.relive-player .relive-header span{font-size:14px}.relive-player .relive-overlay{background:linear-gradient(transparent,#061e22b8 40%,#061e22e0);padding:30px 16px 10px}.relive-player .relive-clock,.relive-player .relive-follow,.relive-player .relive-timeline-ticks,.relive-player .relive-album-tools{font-size:13px}.relive-player .relive-overlay button{min-height:44px}.relive-player .relive-time-marker{text-shadow:none}.relive-player .relive-album{border:0}.relive-player .relive-gallery{flex-wrap:wrap}.relive-player .relive-gallery button{border-radius:0;box-shadow:none}.relive-player .relive-gallery img{border-radius:0}.relive-player .relive-album-tools{justify-content:flex-start}.relive-player .relive-album summary{font-size:16px}.relive-player .relive-map .leaflet-control-attribution{font-size:11px}.relive-player .relive-play{min-width:44px}.relive-player .relive-controls{gap:8px}[hidden]{display:none!important}@keyframes drift{0%{transform:scale(1)}to{transform:scale(1.035)}}@media(max-width:900px){.frame{width:calc(100% - 40px)}.hero-copy{gap:24px}.hero-copy>div{max-width:360px}.section-head{display:block}.section-head p{margin-top:24px}.workflow-inner{gap:36px}.journal-grid{gap:16px}.install-layout{gap:32px}.footer-top{grid-template-columns:1fr 1fr}.demo,.photo-journal,.install,.faq,.workflow,.footer{margin-top:100px}}@media(max-width:600px){.frame{width:calc(100% - 32px)}.nav{padding-block:20px}.nav nav{gap:16px;font-size:14px}.brand{font-size:24px}.wordmark{font-size:24.2vw;margin-top:24px;line-height:1}.hero-copy{display:block;padding:24px 0}.hero-copy>div{margin-top:24px}.hero-copy .button{margin-top:20px}.hero-image>img{height:300px;object-position:55% center}.hero-image figcaption{font-size:13px;display:block}.hero-image figcaption a{display:inline-block;margin-top:6px}.demo,.photo-journal,.install,.faq{margin-top:88px}.section-head{margin-bottom:28px}.section-head p{margin-top:20px}.journal-grid{grid-template-columns:1fr 1fr;gap:28px 16px}.journal-photo:nth-child(2n){margin-top:32px}.journal-photo span{font-size:16px}.workflow{margin-top:88px;padding:48px 0}.workflow-inner{display:block}.code-sheet{margin-top:36px;padding:20px}.workflow-inner h2{margin-bottom:24px}.install-layout{display:block}.install-tabs{flex-direction:row;gap:4px;margin-bottom:16px}.install-tabs button{font-size:16px;text-align:center;width:auto;flex:1;padding:12px 6px}.install-panels{padding:24px;min-height:400px}.faq details{padding:24px 20px}.faq summary{font-size:20px}.footer{margin-top:88px;padding:48px 0 28px}.footer-top{gap:28px 20px}.footer-top p{font-size:20px}.footer-top a{font-size:16px}.footer-top .footer-brand{font-size:54px}.relive-player .relive-map{height:420px}.relive-player .relive-header{padding:12px;gap:6px}.relive-player .relive-header span{display:block;width:100%}.relive-player .relive-overlay{padding:30px 8px 8px}.relive-player .relive-controls{flex-wrap:wrap}.relive-player .relive-clock,.relive-player .relive-follow{font-size:13px}.relive-player .relive-timeline-ticks span:nth-child(2n){display:none}.download-row{gap:16px}.demo-note{font-size:14px}}@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.button:hover,.journal-photo:hover img{transform:none}}p{max-width:70ch}.relive-player .leaflet-container{font-family:inherit}.relive-player .leaflet-control-attribution,.relive-player .relive-bubble small{font-size:13px}.relive-player .leaflet-control-zoom a{font-family:inherit}.nav{position:relative;z-index:1}:root[data-theme=dark]{--bg:#101e22;--surface:#1b3035;--ink:#d5eeeb;--accent:#9edbd3;--paper:#101e22;--band-bg:#082b32;--band-text:#d5eeeb;color-scheme:dark}.nav{gap:24px}.nav nav{margin-left:auto;align-items:center}.theme-control{display:flex;align-items:center;gap:8px;font-size:14px;white-space:nowrap}.theme-control select{min-height:44px;max-width:130px;padding:8px;color:var(--ink);background:var(--surface);border:1px solid currentColor;border-radius:0;cursor:pointer}.theme-control select:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.relive-player{--interactive-accent:#157381;--background-modifier-border:var(--surface)}:root[data-theme=dark] .relive-player .leaflet-bar a{background:var(--surface);color:var(--ink);border-color:var(--bg)}@media(max-width:600px){.nav{flex-wrap:wrap;gap:12px}.nav nav{gap:14px}.theme-control{margin-left:auto}.theme-control select{min-height:44px}}:root[data-theme=dark] .relive-player .leaflet-control-attribution a{color:var(--ink)}#hero-map,.hero-backdrop-controls{display:none}@media(min-width:768px){.hero.frame{position:relative;isolation:isolate;width:100%;max-width:none;min-height:calc(100svh - 96px);padding:clamp(64px,10vh,120px) max(32px,calc((100vw - 1536px)/2));display:flex;flex-direction:column;justify-content:center;overflow:hidden}#hero-map{display:block;position:absolute;top:0;right:0;bottom:0;left:0;z-index:-2;background:var(--surface);font-family:inherit}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,var(--bg) 3%,color-mix(in srgb,var(--bg) 96%,transparent) 23%,color-mix(in srgb,var(--bg) 78%,transparent) 40%,transparent 69%),linear-gradient(0deg,var(--bg),transparent 18%)}.hero .wordmark{font-size:clamp(96px,13vw,200px);margin:0;max-width:48%;pointer-events:none}.hero-copy{display:block;max-width:43%;padding:32px 0 100px}.hero-line{font-size:clamp(26px,3vw,44px)}.hero-copy>div{margin-top:24px}.hero-copy p{font-size:clamp(16px,1.5vw,22px)}.hero-image{display:none}.hero-backdrop-controls{display:flex;align-items:center;gap:20px;position:absolute;bottom:28px;left:max(32px,calc((100vw - 1536px)/2));z-index:2}.hero-backdrop-controls button{background:var(--bg);color:var(--ink);border:1px solid currentColor;min-height:44px;padding:10px 16px}.hero-backdrop-controls p{font-size:12px;line-height:1.6}#hero-map .leaflet-control-attribution{font-size:11px;background:var(--bg);color:var(--ink)}.hero-popup .leaflet-popup-content-wrapper{background:var(--bg);color:var(--ink);border-radius:0}.hero-popup .leaflet-popup-tip{background:var(--bg)}.hero-popup .leaflet-popup-content{margin:8px;width:224px!important}.hero-popup img{width:224px;height:150px;object-fit:cover}.hero-popup figcaption{padding:10px 4px;font-size:16px}}@media(min-width:768px){.hero-copy .hero-line{font-size:clamp(26px,3vw,44px)}}:root[data-theme=dark] #hero-map{background:#101e22}:root[data-theme=dark] #hero-map .leaflet-overlay-pane path{stroke:#91d8ce}:root[data-theme=dark] #hero-map .leaflet-overlay-pane path:last-child{stroke:#d5eeeb;fill:#91d8ce}#hero-map .leaflet-tile-pane{filter:saturate(.35) sepia(.12)}:root[data-theme=dark] #hero-map .leaflet-tile-pane{filter:grayscale(1) invert(1) brightness(.86);opacity:.5}.language-control{display:flex;align-items:center;flex-shrink:0;font-size:14px}.language-control select{min-height:44px;padding:8px;color:var(--ink);background:var(--surface);border:1px solid currentColor;border-radius:0;cursor:pointer;font-size:16px}.language-control select:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.nav{flex-wrap:wrap}.nav nav{flex-wrap:wrap}.nav nav,.hero-copy>div,.section-head>*{min-width:0}:root[lang=en] .hero-line{letter-spacing:-.03em}@media(min-width:601px)and (max-width:1000px){.nav{gap:16px}.nav nav{gap:20px}.theme-control{margin-left:auto}.nav nav{flex:1}}@media(max-width:600px){.nav nav{justify-content:flex-end;gap:12px}.nav .brand{margin-right:auto}.theme-control{margin-left:auto}.language-control{margin-left:4px}.theme-control select{font-size:16px}:root[lang=en] .hero-line{font-size:36px}.install-tabs{flex-wrap:wrap}}
