

:root { --ink:#20241f; --paper:#f3f0e8; --lime:#dbe882; --hero-green:#d4dccb; --sage:#aebd9f; --line:rgba(32,36,31,.2); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.top-contact { min-height:36px; padding:0 4.5vw; display:flex; align-items:center; justify-content:flex-end; gap:12px; background:var(--ink); color:var(--paper); font-size:11px; letter-spacing:.08em; }
.top-contact span { opacity:.62; margin-right:4px; }
.top-contact i { font-style:normal; opacity:.35; }
.top-contact a { transition:opacity .2s; }
.top-contact a:hover { opacity:.65; }
.site-header { height:88px; padding:0 4.5vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border-bottom:1px solid var(--line); position:relative; z-index:10; background:rgba(243,240,232,.94); backdrop-filter:blur(12px); }
.brand img { width:220px; height:65px; object-fit:contain; object-position:left center; }
nav { display:flex; gap:30px; font-size:14px; }
nav a,.footer-nav a { position:relative; }
nav a:after,.footer-nav a:after { content:""; position:absolute; left:0; bottom:-7px; width:0; height:1px; background:currentColor; transition:.25s; }
nav a:hover:after,.footer-nav a:hover:after { width:100%; }
.nav-cta { justify-self:end; font-size:14px; border-bottom:1px solid var(--ink); padding-bottom:6px; }
.nav-cta span,.button span { margin-left:18px; }
.hero { min-height:calc(100vh - 124px); display:grid; grid-template-columns:57% 43%; position:relative; background:var(--hero-green); }
.hero-media { min-height:700px; overflow:hidden; }
.hero-media img { height:100%; object-fit:cover; object-position:55% 50%; filter:saturate(.76) contrast(.96); }
.hero-copy { padding:8vw 8vw 6vw 6vw; display:flex; flex-direction:column; justify-content:center; }
.eyebrow { font-size:11px; letter-spacing:.22em; font-weight:600; margin:0 0 28px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-family:"Songti SC","Noto Serif CJK SC",serif; font-size:clamp(58px,6.4vw,104px); line-height:1.04; letter-spacing:-.05em; font-weight:500; margin-bottom:40px; }
.hero-lead { max-width:480px; font-size:18px; line-height:1.9; opacity:.78; }
.hero-actions { display:flex; align-items:center; gap:34px; margin-top:34px; }
.button { border:0; display:inline-flex; align-items:center; justify-content:space-between; padding:18px 24px; min-width:178px; font-size:14px; cursor:pointer; transition:transform .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.dark { background:var(--ink); color:#fff; }
.light { background:var(--lime); color:var(--ink); }
.text-link { font-size:14px; border-bottom:1px solid var(--ink); padding:0 0 6px; }
.text-link span { margin-left:18px; }
.vertical-note { position:absolute; right:20px; bottom:30px; writing-mode:vertical-rl; font-size:9px; letter-spacing:.18em; }
.section-shell { padding:130px 8vw; }
.manifesto { display:grid; grid-template-columns:1fr 1.08fr; gap:10vw; }
h2 { font-family:"Songti SC","Noto Serif CJK SC",serif; font-weight:500; font-size:clamp(44px,5.2vw,78px); line-height:1.12; letter-spacing:-.04em; }
.manifesto-copy>p:first-child { font-family:"Songti SC",serif; font-size:25px; line-height:1.55; }
.manifesto-copy>p:nth-child(2) { font-size:16px; line-height:2; opacity:.7; max-width:600px; }
.benefits { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); margin-top:50px; padding-top:22px; gap:18px; }
.benefits span { font-size:11px; line-height:2.3; opacity:.6; }
.benefits b { font-size:14px; opacity:1; font-weight:500; }
.courses { background:var(--ink); color:#f7f4ec; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:70px; }
.section-heading h2 { margin-bottom:0; }
.section-heading>p { max-width:370px; opacity:.58; line-height:1.8; }
.course-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.course-card { border-top:1px solid rgba(255,255,255,.25); padding-top:18px; }
.course-image { aspect-ratio:4/3; overflow:hidden; margin-bottom:22px; }
.course-image img { height:100%; object-fit:cover; filter:saturate(.65); transition:transform .7s,filter .4s; }
.course-card:hover img { transform:scale(1.035); filter:saturate(.9); }
.course-top { display:flex; justify-content:space-between; font-size:10px; letter-spacing:.14em; opacity:.55; }
.course-card h3 { font-family:"Songti SC",serif; font-weight:500; font-size:29px; margin:25px 0 15px; }
.course-card p { opacity:.6; line-height:1.8; font-size:14px; min-height:75px; }
.course-meta { font-size:10px; letter-spacing:.16em; border-top:1px solid rgba(255,255,255,.18); padding-top:17px; margin-top:25px; opacity:.68; }
.studio-story { display:grid; grid-template-columns:55% 45%; background:var(--sage); }
.story-image { min-height:720px; }
.story-image img { height:100%; object-fit:cover; filter:saturate(.65); }
.story-copy { padding:9vw 7vw; display:flex; justify-content:center; flex-direction:column; }
.story-copy>p:not(.eyebrow) { line-height:2; opacity:.72; max-width:520px; }
.story-stats { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); margin-top:45px; padding-top:25px; }
.story-stats span { font-size:12px; }
.story-stats b { display:block; font-family:serif; font-size:36px; font-weight:500; margin-bottom:7px; }
.booking { display:grid; grid-template-columns:.85fr 1.15fr; gap:10vw; background:#ebe6da; }
.booking-intro>p:not(.eyebrow) { line-height:1.9; opacity:.68; max-width:460px; }
.booking-steps { margin-top:45px; display:flex; flex-direction:column; gap:18px; }
.booking-steps span { padding-bottom:16px; border-bottom:1px solid var(--line); font-size:14px; }
.booking-steps b { display:inline-block; width:52px; font-size:10px; opacity:.5; }
.booking-form { display:grid; grid-template-columns:1fr 1fr; gap:28px 24px; align-content:start; padding-top:25px; }
.booking-form label { display:flex; flex-direction:column; gap:10px; }
.booking-form label span { font-size:11px; letter-spacing:.08em; }
.booking-form input,.booking-form select,.booking-form textarea { width:100%; border:0; border-bottom:1px solid var(--ink); background:transparent; border-radius:0; padding:13px 0; font:inherit; color:inherit; outline:none; }
.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus { border-bottom-width:2px; }
.booking-form textarea { resize:vertical; }
.full { grid-column:1/-1; }
.booking-form button { width:100%; margin-top:8px; }
.booking-form button:disabled { cursor:wait; opacity:.68; transform:none; }
.booking-honeypot { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.booking-privacy { margin:-12px 0 0; font-size:11px; line-height:1.7; opacity:.52; }
.form-success { background:var(--lime); padding:14px; margin:0; font-size:13px; }
.form-error { background:#ead3ce; color:#7e2f25; padding:14px; margin:0; font-size:13px; }
.faq { display:grid; grid-template-columns:.78fr 1.22fr; gap:10vw; background:var(--paper); }
.faq-intro { position:sticky; top:130px; align-self:start; }
.faq-intro>p:not(.eyebrow) { max-width:440px; line-height:1.9; opacity:.68; margin-bottom:34px; }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { display:grid; grid-template-columns:48px 1fr 28px; align-items:center; gap:16px; padding:28px 0; cursor:pointer; list-style:none; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary>span { font-size:10px; letter-spacing:.15em; opacity:.45; }
.faq-item summary h3 { margin:0; font-family:"Songti SC","Noto Serif CJK SC",serif; font-size:22px; line-height:1.5; font-weight:500; }
.faq-item summary i { justify-self:end; font-style:normal; font-size:22px; font-weight:300; transition:transform .25s; }
.faq-item[open] summary i { transform:rotate(45deg); }
.faq-item>p { margin:0 44px 28px 64px; max-width:680px; font-size:14px; line-height:2; opacity:.68; }
.faq-item summary:hover h3 { opacity:.62; }
.contact { display:grid; grid-template-columns:45% 55%; background:var(--ink); color:#f6f2e7; }
.contact-image { min-height:710px; }
.contact-image img { height:100%; object-fit:cover; object-position:55% center; filter:saturate(.45); }
.contact-copy { padding:8vw; }
.contact-list { margin:50px 0; border-top:1px solid rgba(255,255,255,.22); }
.contact-list div { display:grid; grid-template-columns:120px 1fr; padding:23px 0; border-bottom:1px solid rgba(255,255,255,.22); }
.contact-list span { font-size:11px; opacity:.48; }
.contact-list p { font-size:14px; line-height:1.8; margin:0; opacity:.76; }
footer { background:#151815; color:#f2efe6; padding:65px 6vw 35px; display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; align-items:end; }
.footer-brand img { width:255px; height:auto; object-fit:contain; object-position:left center; }
.footer-nav { display:grid; grid-template-columns:1fr 1fr; gap:18px; font-size:13px; }
.footer-note { justify-self:end; font-size:9px; letter-spacing:.14em; opacity:.45; text-align:right; }
.footer-note p { margin-bottom:6px; }
.footer-note a { display:inline-block; margin-top:7px; padding-bottom:3px; border-bottom:1px solid rgba(255,255,255,.35); }

.admin-page { min-height:100vh; background:#ebe6da; padding:48px 5vw 80px; }
.admin-shell { max-width:1240px; margin:0 auto; }
.admin-header { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; padding-bottom:28px; border-bottom:1px solid var(--line); }
.admin-header h1 { font-size:clamp(40px,5vw,68px); margin:0; }
.admin-back { font-size:13px; border-bottom:1px solid currentColor; padding-bottom:5px; }
.admin-login { width:min(460px,100%); margin:12vh auto 0; background:var(--paper); padding:45px; }
.admin-login h1 { font-size:42px; margin-bottom:18px; }
.admin-login p { line-height:1.8; opacity:.66; }
.admin-login label { display:flex; flex-direction:column; gap:10px; margin:32px 0 20px; font-size:12px; }
.admin-login input,.admin-search { border:0; border-bottom:1px solid var(--ink); background:transparent; padding:13px 0; font:inherit; outline:none; }
.admin-login button { width:100%; }
.admin-toolbar { display:flex; align-items:center; gap:14px; margin:30px 0 22px; }
.admin-search { min-width:280px; flex:1; }
.admin-toolbar button { border:1px solid var(--ink); background:transparent; padding:11px 16px; cursor:pointer; }
.admin-summary { font-size:12px; opacity:.58; white-space:nowrap; }
.admin-table-wrap { overflow:auto; background:var(--paper); }
.admin-table { width:100%; border-collapse:collapse; min-width:920px; font-size:13px; }
.admin-table th { padding:15px; text-align:left; background:var(--ink); color:var(--paper); font-size:10px; letter-spacing:.12em; font-weight:500; }
.admin-table td { padding:17px 15px; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.6; }
.admin-table td:first-child { white-space:nowrap; }
.admin-table td:nth-child(3) { white-space:nowrap; }
.admin-empty { background:var(--paper); padding:50px 24px; text-align:center; opacity:.6; }
.admin-error { margin-top:18px; padding:14px; background:#ead3ce; color:#7e2f25; font-size:13px; }
@media (max-width:900px) {
  .site-header { grid-template-columns:1fr auto; height:76px; } nav { display:none; } .brand img{width:180px;height:58px}
  .hero { min-height:calc(100vh - 112px); grid-template-columns:1fr; } .hero-media { min-height:58vh; } .hero-copy { padding:64px 7vw 80px; } .vertical-note{display:none}
  .manifesto,.booking,.faq { grid-template-columns:1fr; gap:45px; }
  .faq-intro { position:static; }
  .section-shell { padding:90px 7vw; }
  .section-heading { align-items:start; flex-direction:column; }
  .course-grid { grid-template-columns:1fr; gap:65px; }
  .course-card p { min-height:0; }
  .studio-story,.contact { grid-template-columns:1fr; }
  .story-image,.contact-image { min-height:58vh; }
  .story-copy,.contact-copy { padding:85px 7vw; }
  footer { grid-template-columns:1fr 1fr; } .footer-note { grid-column:1/-1; justify-self:start; text-align:left; }
}
@media (max-width:560px) {
  .top-contact { justify-content:center; gap:8px; font-size:10px; letter-spacing:.04em; }
  h1 { font-size:52px; } h2 { font-size:43px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .manifesto { padding-top:80px; } .benefits { grid-template-columns:1fr 1fr; }
  .booking-form { grid-template-columns:1fr; } .booking-form>* { grid-column:1; }
  .contact-list div { grid-template-columns:80px 1fr; }
  .faq-item summary { grid-template-columns:35px 1fr 24px; gap:10px; }
  .faq-item summary h3 { font-size:19px; }
  .faq-item>p { margin-left:45px; margin-right:0; }
  footer { grid-template-columns:1fr; } .footer-note { grid-column:1; }
  .admin-page { padding:30px 5vw 60px; }
  .admin-header { align-items:flex-start; flex-direction:column; }
  .admin-login { padding:32px 24px; }
  .admin-toolbar { align-items:stretch; flex-wrap:wrap; }
  .admin-search { min-width:100%; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
