:root{--bg:#f6f4ef;--fg:#16161a;--mut:#6b6a66;--line:#dcd8cf;--card:#fff;--acc:#e8462b}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 "Be Vietnam Pro",system-ui,sans-serif}
a{color:inherit}
.top{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:14px 24px;background:rgba(246,244,239,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.logo{font:700 24px Fraunces,serif;text-decoration:none}.logo span{color:var(--acc)}
nav a{margin-left:18px;text-decoration:none;font-weight:500;color:var(--mut)}nav a:hover,nav a.on{color:var(--fg)}
main{max-width:1200px;margin:0 auto;padding:32px 24px 64px}
footer{text-align:center;color:var(--mut);font-size:13px;padding:24px;border-top:1px solid var(--line)}
h1{font:700 clamp(36px,6vw,68px)/1.05 Fraunces,serif;margin:0 0 16px;letter-spacing:-.02em}
h2{font:700 32px/1.15 Fraunces,serif;margin:0 0 8px}h3{margin:0 0 4px;font-size:19px}
.lead{font-size:19px;color:var(--mut);max-width:720px}
.eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--acc);font-weight:700}
canvas{display:block;width:100%;border-radius:10px;background:#ddd}
.grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;text-decoration:none;display:block;transition:transform .2s,box-shadow .2s}
a.card:hover{transform:translateY(-3px);box-shadow:0 10px 30px rgba(0,0,0,.08)}
.card canvas{aspect-ratio:4/3;margin-bottom:12px}
.card p{margin:4px 0 0;color:var(--mut);font-size:14px}
.dimrow{margin:56px 0}.dimhead{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.strip{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.strip a{text-decoration:none}.strip canvas{aspect-ratio:1}.strip span{display:block;font-size:13px;font-weight:600;margin-top:6px}
.strip small{color:var(--mut);font-weight:400}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.tabs a{padding:8px 14px;border:1px solid var(--line);border-radius:99px;text-decoration:none;font-size:14px;background:#fff}
.tabs a.on{background:var(--fg);color:#fff;border-color:var(--fg)}
.dir{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;padding:28px 0;border-top:1px solid var(--line)}
.gallery{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:10px}
.gallery canvas:first-child{grid-row:span 2;height:100%;min-height:300px}.gallery canvas{height:100%;min-height:140px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.chip{font-size:12px;padding:4px 10px;border-radius:99px;background:#ece8df}
.brands{font-size:14px;color:var(--mut)}.brands b{color:var(--fg)}
.btn{cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:99px;padding:6px 14px;font:inherit;font-size:14px}
.btn:hover{background:var(--fg);color:#fff}
.q{background:#fff;border-left:4px solid var(--acc);padding:12px 16px;border-radius:8px;margin:16px 0}
table{width:100%;border-collapse:collapse;background:#fff;border-radius:12px;overflow:hidden;font-size:14px;margin-top:12px}
th,td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#ece8df;font-size:12px;text-transform:uppercase;letter-spacing:.06em}
td canvas{width:64px;height:48px;border-radius:6px}
.matrix{overflow-x:auto}.matrix table td{min-width:120px}
.mix{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:16px}.mix select{width:100%;padding:8px;border-radius:8px;border:1px solid var(--line);font:inherit;font-size:14px}
.mix canvas{aspect-ratio:1;margin-top:8px}
.prog{display:grid;grid-template-columns:280px 1fr;gap:24px;padding:32px 0;border-top:1px solid var(--line)}
.prog canvas{aspect-ratio:1}
.courses{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lesson{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:12px 0}
.lesson h3 span{color:var(--acc);margin-right:8px}
.crumb{font-size:14px;color:var(--mut);margin-bottom:12px}
@media(max-width:800px){.strip,.mix{grid-template-columns:repeat(2,1fr)}.dir,.prog{grid-template-columns:1fr}.courses{grid-template-columns:1fr}nav a{margin-left:10px;font-size:14px}main{padding:24px 16px}}
.dir{scroll-margin-top:72px}
