@font-face{font-family:League;src:url('/fonts/league-spartan-vietnamese.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:League;src:url('/fonts/league-spartan-latin-ext.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:League;src:url('/fonts/league-spartan-latin.woff2') format('woff2');font-weight:100 900;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:BeVietnam;src:url('/fonts/be-vietnam-400-vietnamese.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
:root{--surface:#0A0708;--plane-1:#120C0E;--plane-2:#1A1114;--plane-3:#231619;--line-1:#2A1C21;--line-2:#3A262D;--line-3:#6E4652;--fg:#F5EFF0;--fg-2:#C9BCBF;--fg-3:#9A8A8F;--fg-4:#4A3B40;--accent:#E0667F;--accent-block:#8C1C2E;--accent-hi:#A3203A;--accent-deep:#4A0A15;--focus:#E0667F;font-synthesis-weight:none;color-scheme:dark;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0;background:var(--surface);color:var(--fg);font:400 16px/1.6 BeVietnam,system-ui,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{color:var(--fg)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px}img{max-width:100%;height:auto}.wrap{width:min(1240px,calc(100% - 48px));margin-inline:auto}.nav{position:fixed;z-index:10;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:18px max(24px,calc((100vw - 1240px)/2));transition:background .2s}.nav.scrolled{background:#0a0708e8;backdrop-filter:blur(12px);border-bottom:1px solid var(--line-1)}.brand{display:flex;align-items:center;gap:10px;color:var(--fg);font:600 17px League,sans-serif}.nav nav,.nav-actions{display:flex;align-items:center;gap:28px}.nav nav a,.lang{font-size:13px;color:var(--fg-2)}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:14px 23px;background:var(--accent-block);color:#fff;border-radius:99px;font-weight:600;transition:background .15s,transform .15s}.button:hover{background:var(--accent-hi);color:#fff}.button:hover span{transform:translate(3px,-2px)}.button span{transition:transform .15s}.button-small{padding:10px 18px;font-size:13px}.button-large{padding:17px 28px}.menu-toggle{display:none;background:none;color:var(--fg);border:0;font-size:22px}.hero{min-height:100svh;position:relative;padding-top:148px;padding-bottom:100px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center}.hero-copy{position:relative;z-index:2}.eyebrow{font:600 11px/1.4 League,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 18px}.hero h1{font:300 clamp(56px,12.5vw,188px)/1.06 League,sans-serif;letter-spacing:-.035em;margin:0 -8px 25px;position:relative;z-index:2;padding-top:.08em}.hero h1 span{display:block;white-space:nowrap}.hero h1 .hero-muted{color:var(--fg-3)}.hero-lead{max-width:55ch;color:var(--fg-2);font-size:17px}.chips{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 28px}.chips span{border:1px solid var(--line-2);border-radius:99px;padding:7px 13px;color:var(--fg-2);font-size:12px}.hero-actions{display:flex;align-items:center;gap:24px}.text-link{font-size:14px;font-weight:600}.hero-art{position:absolute;inset:9% 0 5% 42%;display:grid;place-items:center;pointer-events:none}.hero-glow{position:absolute;width:55%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#4a0a154c,transparent 70%)}.asset-placeholder{position:relative;border:1px solid var(--line-2);background:radial-gradient(ellipse at center,#1a1114 0,#100a0c 66%,#0a0708 100%);display:grid;place-items:center;color:var(--fg-3);font-size:12px;text-align:center}.spider{width:min(75%,560px);aspect-ratio:1;border-radius:50%;z-index:1}.hero-note{position:absolute;right:4%;bottom:12%;font-size:10px;color:var(--fg-3)}.stats{position:absolute;right:0;top:22%;display:grid;gap:10px;z-index:3}.stats div{border:1px solid var(--line-2);background:#0a0708dd;padding:12px 15px;min-width:132px}.stats strong,.stats span{display:block}.stats strong{font:500 24px League;color:var(--accent)}.stats span{font-size:11px;color:var(--fg-2)}.scroll-cue{position:absolute;bottom:24px;left:0;color:var(--fg-3);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.facts{border-block:1px solid var(--line-1);padding:24px 0;text-align:center;color:var(--fg-2);font-size:13px;letter-spacing:.07em}.facts p{margin:0}.section{padding-block:120px}.section-head{max-width:680px;margin-bottom:44px}.section-head h2,.download-inner h2{font:400 clamp(36px,6vw,72px)/1.05 League;margin:0 0 14px;letter-spacing:-.025em}.section-head>p:last-child{color:var(--fg-2)}.manifesto{padding-block:145px 110px;min-height:440px}.manifesto h2{font:500 clamp(36px,5.6vw,72px)/1.02 League;max-width:1000px;margin:0;text-transform:uppercase;letter-spacing:-.03em}.manifesto-words span{color:var(--fg-4);transition:color .12s}.manifesto-note{color:var(--fg-2);max-width:54ch;margin-top:26px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.feature{padding:27px 25px;border:1px solid var(--line-1);border-radius:20px;background:var(--plane-1);min-height:200px}.feature svg{width:28px;height:28px;stroke:var(--accent);fill:none;stroke-width:1.6;margin-bottom:24px}.feature h3{font:500 22px League;margin:0 0 7px}.feature p{font-size:14px;color:var(--fg-2);margin:0}.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:12px;counter-reset:step}.steps li{border-top:1px solid var(--line-2);padding:18px 12px 0 0;color:var(--fg-2);font-size:14px}.steps li::before{counter-increment:step;content:"0" counter(step);display:block;font:400 38px League;color:var(--fg-3);margin-bottom:25px}.engine{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center;padding-block:70px;border-block:1px solid var(--line-1)}.engine h2{font:400 clamp(38px,5vw,64px)/1.05 League;margin:0 0 20px}.engine h2 span{display:block;color:var(--fg-3)}.engine p:not(.eyebrow){color:var(--fg-2);max-width:52ch;margin-bottom:25px}.app-shot{min-height:330px;border-radius:18px}.price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.price-card{position:relative;padding:25px 20px;border:1px solid var(--line-2);border-radius:20px;background:var(--plane-1);display:flex;flex-direction:column}.price-card.popular{border-color:var(--accent);box-shadow:inset 0 2px var(--accent)}.badge{position:absolute;top:-13px;right:18px;background:var(--accent-block);color:#fff;padding:4px 12px;border-radius:99px;font-size:10px}.price-card h3{font:500 22px League;margin:0}.price-card .duration{color:var(--fg-3);font-size:12px}.price{font:500 30px League;margin:19px 0 4px}.subprice{font-size:11px;color:var(--fg-3);min-height:19px}.price-card ul{list-style:none;margin:20px 0 28px;padding:0;color:var(--fg-2);font-size:13px;display:grid;gap:8px;flex:1}.price-card li::before{content:"✓";color:var(--accent);margin-right:8px}.price-card .button{font-size:12px;padding:12px 10px}.refund{margin:24px 0 0;color:var(--fg-2);font-size:13px}.faq-list{max-width:880px}.faq-list details{border-bottom:1px solid var(--line-2);padding:19px 0}.faq-list summary{cursor:pointer;list-style:none;font:500 19px League}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";float:right;color:var(--accent)}.faq-list details[open] summary::after{content:"−"}.faq-list details p{max-width:70ch;color:var(--fg-2);font-size:14px}.download-section{background:var(--plane-1);border-block:1px solid var(--line-1);padding:110px 0}.download-inner h2{max-width:800px}.download-inner>p:not(.eyebrow){color:var(--fg-2)}.download-actions{display:flex;gap:12px;margin:28px 0 12px}.disabled{background:var(--plane-3);color:var(--fg-3);cursor:not-allowed}.version{font-size:13px;color:var(--fg-2)}.download-links{display:flex;gap:22px;font-size:12px;margin-top:14px}.install-steps{display:flex;gap:36px;padding-left:20px;margin-top:42px;color:var(--fg-2);font-size:13px}.footer{padding:34px 0 22px}.footer-top{display:flex;align-items:center;gap:26px;flex-wrap:wrap;color:var(--fg-2);font-size:12px}.footer-top .brand{margin-right:auto}.disclaimer,.copyright{font-size:11px;color:var(--fg-3);max-width:100ch;margin:24px 0 0}.copyright{margin-top:12px}.reveal{opacity:1;transform:none}.js-ready .reveal{opacity:0;transform:translateY(24px);transition:opacity .26s cubic-bezier(.22,.61,.36,1),transform .26s cubic-bezier(.22,.61,.36,1)}.js-ready .reveal.visible{opacity:1;transform:none}.js-ready .hero-copy{animation:hero-in .75s cubic-bezier(.22,.61,.36,1) both}.js-ready .hero-art .spider img{animation:hero-image-in .75s cubic-bezier(.22,.61,.36,1) both}@keyframes hero-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes hero-image-in{from{opacity:.45;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}
@media(max-width:850px){.nav nav{gap:14px}.hero{grid-template-columns:1fr;align-items:start;padding-top:150px;min-height:900px}.hero h1{font-size:clamp(58px,13vw,110px)}.hero-art{inset:24% -8% 6% 15%;opacity:.72}.hero-copy{max-width:90%}.stats{right:1%;top:55%}.feature-grid{grid-template-columns:repeat(2,1fr)}.price-grid{grid-template-columns:repeat(2,1fr)}.engine{gap:30px}.app-shot{min-height:260px}}
@media(max-width:600px){.wrap{width:calc(100% - 36px)}.nav{padding:12px 18px}.nav nav{display:none;position:absolute;top:62px;left:0;right:0;background:var(--plane-1);padding:18px;flex-direction:column;align-items:flex-start;border-bottom:1px solid var(--line-2)}.nav.menu-open nav{display:flex}.nav-actions{gap:14px}.nav-actions>.button{display:none}.menu-toggle{display:block}.hero{min-height:844px;padding-top:124px;padding-bottom:110px}.hero h1{font-size:clamp(55px,14.7vw,74px);margin-left:-2px;letter-spacing:-.045em;line-height:1.08}.hero h1 span{white-space:normal}.hero-lead{font-size:15px;max-width:38ch}.hero-art{inset:51% -26% 8% 5%;opacity:.67}.spider{width:84%}.stats{top:auto;bottom:12%;right:0}.stats div{min-width:112px;padding:8px 11px}.stats strong{font-size:19px}.hero-note{right:6%;bottom:5%}.hero-actions{gap:14px;flex-wrap:wrap}.button{padding:12px 17px}.text-link{font-size:12px}.scroll-cue{bottom:18px}.facts{font-size:10px;line-height:1.8}.section{padding-block:72px}.manifesto{padding-block:90px 70px;min-height:0}.manifesto h2{font-size:clamp(32px,9vw,48px)}.feature-grid{grid-template-columns:1fr}.feature{min-height:0}.steps{grid-template-columns:repeat(2,1fr);row-gap:25px}.steps li::before{margin-bottom:12px}.engine{grid-template-columns:1fr;padding-block:55px}.app-shot{min-height:220px}.price-grid{grid-template-columns:1fr;gap:22px}.price-card{padding:24px}.price-card .price{font-size:32px}.download-section{padding:75px 0}.download-actions{flex-direction:column;align-items:stretch}.install-steps{display:grid;gap:10px}.footer-top{align-items:flex-start;gap:14px 20px}.footer-top .brand{width:100%}.disclaimer{line-height:1.65}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.js-ready .reveal{opacity:1;transform:none}}
:root.intro-done .hero-copy{animation:none;opacity:1;transform:none}:root.intro-done .hero-art .spider img{animation:none;opacity:1;transform:none}
html,body{overflow-x:clip}.hero{overflow:clip}@media(max-width:600px){.hero-art{top:58%}.stats{right:20%}.hero-note{right:25%}}
.js-ready .brand svg path{stroke-dasharray:160;stroke-dashoffset:160;animation:mark-draw .55s .08s cubic-bezier(.22,.61,.36,1) forwards}@keyframes mark-draw{to{stroke-dashoffset:0}}:root.intro-done .brand svg path{animation:none;stroke-dashoffset:0}
@media(prefers-reduced-motion:reduce){.js-ready .brand svg path{animation:none;stroke-dashoffset:0}}
:root{--accent:#F04452;--accent-block:#B51226;--accent-hi:#D32136;--accent-deep:#75101D;--line-1:#28282A;--line-2:#414145;--line-3:#77777D;--fg-2:#C9C9CC;--fg-3:#9A9A9F;--fg-4:#4A4A4F}
@font-face{font-family:BeVietnam;src:url('/fonts/be-vietnam-400-latin-ext.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:BeVietnam;src:url('/fonts/be-vietnam-400-latin.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
.hero-art{z-index:1}.spider{display:block;border:0;background:none;border-radius:0;width:min(96%,780px);aspect-ratio:3/2;object-fit:contain}.spider img{display:block;width:100%;height:100%;object-fit:contain}.hero-glow{background:radial-gradient(circle,#aa101c32,transparent 72%)}
.terms-page{padding-top:150px;padding-bottom:100px;max-width:850px}.terms-page h1{font:400 clamp(44px,8vw,82px)/1.05 League;margin:0 0 48px}.terms-page section{padding:24px 0;border-top:1px solid var(--line-2)}.terms-page h2{font:500 25px League;margin:0 0 10px}.terms-page section p{color:var(--fg-2);margin:0}

/* The hero title is a quiet, oversized backdrop; the spider sits clearly in front. */
.hero{display:block;min-height:100svh;padding:0;isolation:isolate}
.hero-copy{display:contents}
.hero h1{position:absolute;z-index:1;top:11%;left:50%;width:max-content;max-width:100%;transform:translateX(-50%);display:flex;gap:.18em;align-items:center;justify-content:center;margin:0;padding:.12em .08em .08em;color:#fff;font:300 clamp(92px,17vw,260px)/1.08 League,sans-serif;letter-spacing:-.045em;white-space:nowrap}
.hero h1 span,.hero h1 .hero-muted{display:inline;color:#fff;white-space:nowrap}
.hero-art{inset:31% 7% 17%;z-index:2;opacity:1;place-items:center}
.hero-glow{width:min(68%,720px);background:radial-gradient(circle,#c30e2529,transparent 72%)}
.spider{width:min(80%,900px);filter:drop-shadow(0 26px 30px #0009)}
.hero-copy>.eyebrow,.hero-copy>.hero-lead,.hero-copy>.chips,.hero-copy>.hero-actions{position:absolute;left:50%;z-index:3;transform:translateX(-50%);width:min(100%,760px);text-align:center}
.hero-copy>.eyebrow{top:10%;margin:0}
.hero-copy>.hero-lead{bottom:134px;margin:0 auto;max-width:62ch}
.hero-copy>.chips{bottom:88px;justify-content:center;margin:0}
.hero-copy>.hero-actions{bottom:26px;justify-content:center}
.hero-art .stats{top:30%;right:0;z-index:4}
.hero-note{right:4%;bottom:10%;z-index:4}
.scroll-cue{z-index:4;bottom:27px}
@media(max-width:850px){.hero{min-height:900px;padding:0}.hero h1{top:15%;font-size:clamp(84px,17vw,150px)}.hero-art{inset:31% -3% 21%}.spider{width:92%}.hero-copy>.eyebrow{top:11%}.hero-art .stats{top:50%;right:0}}
@media(max-width:600px){.hero{min-height:844px;padding:0}.hero h1{top:17%;font-size:clamp(60px,18vw,80px);gap:.13em;letter-spacing:-.05em;line-height:1.12}.hero-copy>.eyebrow{top:12%;font-size:10px}.hero-art{inset:23% -12% 23%;}.spider{width:112%}.hero-copy>.hero-lead{bottom:150px;width:calc(100% - 36px);font-size:13px;line-height:1.5}.hero-copy>.chips{bottom:100px;gap:7px}.hero-copy>.chips span{padding:6px 9px;font-size:10px}.hero-copy>.hero-actions{bottom:28px;gap:14px;flex-wrap:nowrap;width:calc(100% - 36px)}.hero-copy>.hero-actions .button{white-space:nowrap;padding:12px 15px}.hero-copy>.hero-actions .text-link{font-size:12px;white-space:nowrap}.hero-art .stats{display:none}.hero-note{right:17%;bottom:25%}.scroll-cue{bottom:7px;font-size:9px}}

/* 2026-09-24 (owner review): inline logo so the stroke draw actually runs; hero lead readable over the spider legs */
.brand .mark{width:34px;height:34px;flex:none;display:block}
.hero-copy>.hero-lead{text-shadow:0 1px 14px var(--surface),0 0 3px var(--surface)}
.price-note{margin:8px 0 0;color:var(--fg-3);font-size:12px}
/* Guide page (/huong-dan/, /en/guide/) — same language as the terms page */
.guide-page{padding-top:150px;padding-bottom:110px}
.guide-page h1{font:400 clamp(44px,8vw,86px)/1.05 League;margin:0 0 18px;letter-spacing:-.03em;padding-top:.06em}
.guide-intro{max-width:62ch;color:var(--fg-2);font-size:17px;margin:0 0 8px}
.guide-updated{color:var(--fg-3);font-size:12px;margin:0 0 56px}
.guide-layout{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start}
.guide-toc{position:sticky;top:96px}
.guide-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.guide-toc a{display:flex;gap:10px;padding:7px 0;color:var(--fg-2);font-size:13px;border-bottom:1px solid var(--line-1)}
.guide-toc a span{color:var(--fg-3);font:500 12px League;min-width:20px}
.guide-toc a:hover,.guide-toc a:focus-visible{color:var(--fg)}
.guide-section{padding:30px 0 34px;border-top:1px solid var(--line-2);scroll-margin-top:90px}
.guide-num{font:400 34px League;color:var(--fg-4);margin:0 0 6px}
.guide-section h2{font:500 clamp(24px,3vw,32px)/1.15 League;margin:0 0 12px;padding-top:.05em}
.guide-lead{color:var(--fg-2);margin:0 0 18px;max-width:70ch}
.guide-steps{counter-reset:gs;list-style:none;margin:0 0 18px;padding:0;display:grid;gap:10px}
.guide-steps li{counter-increment:gs;position:relative;padding:14px 16px 14px 54px;background:var(--plane-1);border:1px solid var(--line-1);border-radius:14px;color:var(--fg);line-height:1.55}
.guide-steps li::before{content:counter(gs);position:absolute;left:16px;top:13px;width:24px;height:24px;border-radius:50%;background:var(--accent-block);color:var(--on-accent,#fff);font:600 13px/24px League;text-align:center}
.guide-points{margin:0;padding-left:20px;display:grid;gap:9px;color:var(--fg-2);line-height:1.6;max-width:75ch}
.guide-points li::marker{color:var(--accent)}
@media(max-width:850px){.guide-layout{grid-template-columns:1fr;gap:28px}.guide-toc{position:static}.guide-toc ol{grid-template-columns:1fr 1fr;column-gap:18px}.guide-page{padding-top:120px}}
@media(max-width:600px){.guide-toc ol{grid-template-columns:1fr}.guide-steps li{padding-left:48px}}

/* No real app screenshot yet: the engine block runs text-only instead of showing a placeholder to customers */
.engine-solo{grid-template-columns:1fr}.engine-solo>div{max-width:760px}
.app-shot img{display:block;width:100%;height:auto;border-radius:18px;border:1px solid var(--line-2)}

/* 2026-09-24: Windows now shipped — a second prominent button; Guide screenshots */
.button-alt{background:var(--plane-2);color:var(--fg);border:1px solid var(--line-3)}
.button-alt:hover,.button-alt:focus-visible{background:var(--plane-3);border-color:var(--accent)}
.hero-copy>.hero-actions{flex-wrap:wrap}
.guide-shot{margin:18px 0 4px;border:1px solid var(--line-2);border-radius:14px;overflow:hidden;background:var(--plane-1)}
.guide-shot img{display:block;width:100%;height:auto}
@media(max-width:600px){.hero-copy>.hero-actions .button{padding:11px 14px}}

/* 2026-09-24: install steps for both macOS and Windows on the download section */
.install-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px 40px;margin-top:26px;text-align:left}
.install-os{font:600 12px League;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 12px}
@media(max-width:700px){.install-cols{grid-template-columns:1fr;gap:26px}}
