/* Self-hosted Vietnamese typography and a clearer editorial hierarchy. */
:root{--bg:#f5f7fc;--surface:#fff;--ink:#142238;--muted:#526078;--line:#dbe2ef;--accent:#2452ce;--soft:#eaf0ff;--teal:#146b67;--sans:'Be Vietnam Pro',system-ui,sans-serif}
html[data-theme=dark]{--bg:#0a0e18;--surface:#131c2c;--ink:#edf2fa;--muted:#b0bdd0;--line:#2c3c55;--accent:#a6c4ff;--soft:#1c2c47;--teal:#86dfcc}
body{font-family:var(--sans);font-size:16px;line-height:1.75;background:radial-gradient(ellipse at 85% 0,color-mix(in srgb,var(--accent) 8%,transparent),transparent 38%),var(--bg);font-synthesis:none}
input,button,select,textarea{font-family:inherit}
h1,h2,h3{font-weight:700;text-wrap:balance;letter-spacing:-.04em}p{ text-wrap:pretty }
.brand{font-size:1.12rem;font-weight:700;letter-spacing:-.045em}.header-row nav a{font-weight:600}.site-header{background:color-mix(in srgb,var(--bg) 92%,transparent)}
.eyebrow{font-weight:600;letter-spacing:.12em}.studio-hero h1{font-size:clamp(2.65rem,4.6vw,4.25rem);line-height:1.18;letter-spacing:-.055em}.studio-hero h1>span{font-family:var(--sans);font-style:normal;font-weight:600;font-size:.9em;color:var(--accent);line-height:1.25;margin-top:14px}
.hero-copy .prose{font-size:1.06rem;line-height:1.85}.hero-actions{margin-top:34px}.hero-location{font-size:.76rem}.studio-strip{border-radius:16px;padding:24px;background:color-mix(in srgb,var(--accent) 4%,var(--surface));font-weight:600}
.section-heading h2{font-size:clamp(1.8rem,3vw,2.6rem)}.section-heading .eyebrow{display:flex;align-items:center;gap:12px}.section-heading .eyebrow:before{content:'';width:26px;height:2px;background:var(--accent)}
.card{box-shadow:0 4px 20px #14223805}.card-body h3{font-size:1.28rem;line-height:1.45;letter-spacing:-.035em}.card-body .eyebrow{font-size:.65rem;color:var(--teal)}.card-date{font-family:var(--sans);font-size:.72rem!important;line-height:1.6}.card-body p:not(.eyebrow):not(.card-date){font-size:.9rem;line-height:1.8;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.text-link{border-top:1px solid var(--line);margin-top:auto;font-weight:600;font-size:.83rem}.journal-grid .journal-card{border:1px solid var(--line);border-radius:18px;background:var(--surface)}.journal-grid .journal-card .card-image{border-radius:0;margin:0;aspect-ratio:1.9;background:var(--soft)}.journal-grid .journal-card .card-body,.journal-grid .journal-card .card-image+.card-body,.journal-grid .journal-card:not(:has(.card-image)) .card-body{padding:26px}.journal-grid .journal-card h3{font-family:var(--sans);font-weight:700;font-size:1.35rem;line-height:1.4;letter-spacing:-.035em}.journal-grid .journal-card:hover{border-color:var(--accent);box-shadow:0 12px 30px #1422380a}
.narrow{max-width:780px}.narrow>h1{font-size:clamp(2.2rem,4.3vw,3.65rem);line-height:1.2;margin-bottom:26px}.lead{font-size:1.13rem;line-height:1.8}.prose{font-size:1.04rem;line-height:1.95;letter-spacing:-.01em}.prose p{color:var(--ink);margin-bottom:1.6rem}.prose h2{font-size:clamp(1.55rem,2.6vw,2rem);line-height:1.35;margin-top:3.2rem;margin-bottom:1.3rem;padding-top:1.6rem;border-top:1px solid var(--line)}.prose h3{font-size:1.23rem;line-height:1.45;margin-top:2.2rem}.prose li{margin-bottom:.6rem}.prose a{text-decoration-thickness:1px;text-underline-offset:4px}.prose blockquote{font-family:var(--sans);font-size:1.1rem;line-height:1.85;border-left:3px solid var(--accent);border-radius:0 12px 12px 0;padding:22px 26px;background:var(--soft)}.prose blockquote p:last-child{margin-bottom:0}.prose :not(pre)>code{font-size:.88em;padding:.15em .35em;border-radius:5px;background:var(--soft);color:var(--ink)}.prose pre{background:var(--surface);box-shadow:inset 3px 0 var(--accent);padding:24px;font-size:.86rem}.prose table th{background:var(--soft);font-weight:600}.prose table td{line-height:1.7;padding:14px}.prose figcaption{line-height:1.7;margin-top:12px}.article-meta{font-size:.76rem;padding:18px 0;border-bottom:1px solid var(--line)}
.about-page{max-width:920px}.about-page>.prose>p:first-child{font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.85;color:var(--ink);border-left:3px solid var(--accent);padding:8px 0 8px 26px}.about-page>.prose>p:nth-child(2){color:var(--muted);max-width:740px}.about-page .prose h2{color:var(--accent);font-size:1.7rem}.about-page .prose h3{font-size:1.25rem}.about-page .prose ul{list-style:none;display:flex;flex-wrap:wrap;gap:10px;padding:0;margin:20px 0 30px}.about-page .prose li{margin:0;padding:10px 16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;font-size:.88rem}.about-page .prose>h3:first-of-type{margin-top:36px}
.about-skill-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0 40px}.about-skill{padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.about-page .about-skill h3{margin:0 0 12px;font-size:1.05rem;color:var(--teal)}.about-skill p{font-size:.92rem;line-height:1.8;margin:0;color:var(--muted)}
@media(max-width:540px){.about-skill-grid{grid-template-columns:1fr}.studio-hero h1{font-size:2.45rem;line-height:1.2}.hero-copy .prose{font-size:1rem}.studio-strip{padding:20px}.prose{font-size:1rem;line-height:1.9}.narrow>h1{font-size:2.25rem}.about-page>.prose>p:first-child{padding-left:18px;font-size:1.15rem}.prose blockquote{padding:18px 20px}.card-date{font-size:.67rem!important}.journal-grid .journal-card .card-body,.journal-grid .journal-card .card-image+.card-body{padding:22px}.brand{font-size:1rem}}
