/* Agency structure: React Bits Pro (c) 2026. Motion: React Bits (c) 2026 David Haz.
   Adapted for this website. License notices: third-party/NOTICE.txt. */
:root{--ink:#142331;--muted:#5e6b77;--accent:#146ac9;--line:#dce2e7;--light:#f2f5f7;--paper:#fff}.jd{--ink:#292a27;--muted:#666a64;--accent:#846a32;--line:#dedfd9;--light:#f3f4f0;--paper:#fff}.wrap{width:min(1320px,calc(100% - 96px))}h1,h2,h3{font-weight:500}h2{font-size:clamp(1.8rem,3.2vw,3rem);line-height:1.4;letter-spacing:-.025em}p{font-size:1rem}.section{padding:100px 0}.section-head{margin-bottom:44px}.section-head p{font-size:1rem}.section-label{font-size:.875rem}.small-meta{font-size:.875rem}.footnote{font-size:.8125rem}.masthead{min-height:88px}.brand-mark{width:43px;height:43px}.brand .jd-mark{width:72px}.brand strong{font-size:1.0625rem}.brand-switch{width:290px;gap:4px;padding:5px;border:1px solid var(--line);border-radius:99px}.brand-switch a{border-radius:99px;padding:11px 13px;font-size:.9375rem;min-width:0}.brand-switch a[aria-current]{background:var(--ink);color:#fff;box-shadow:none;border-color:var(--ink)}.nav a{font-size:.875rem}.menu-button{display:none}.navigation-bar{position:static;display:block;box-shadow:none}.navigation-bar>.wrap{min-height:45px}.nav-caption{font-size:.75rem}.contact-link{font-size:.875rem}
/* Full width brand artwork follows a two-column editorial heading. */
.hero:before,.hero-jd:before{display:none}
.teacher-photo-landscape .portrait-button img{aspect-ratio:var(--portrait-ratio)}
.hero,.hero-jd{display:block;position:relative;min-height:0;height:auto;background:var(--paper);padding:44px 0 0;isolation:auto}.hero-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.hero .company-name{font-size:.875rem;margin:0;color:var(--ink)}.hero-topline>span{font-size:.75rem;letter-spacing:.14em;color:var(--muted)}.hero-heading{display:grid;grid-template-columns:1.55fr 1fr;gap:48px;align-items:end;margin-bottom:42px}.hero h1,.hero-jd h1{font-size:clamp(2.7rem,5.4vw,5.2rem);font-weight:500;line-height:1.3;letter-spacing:-.04em}.hero h1 span{display:block}.hero h1 span:last-child{color:var(--accent)}.hero-jd h1{letter-spacing:.015em}.hero-aside{padding-bottom:8px;max-width:330px;justify-self:end}.hero .hero-description{font-size:1.0625rem;line-height:1.85;color:var(--ink);margin:0 0 25px;max-width:none}.hero .hero-art{display:block;position:static;inset:auto;z-index:auto;aspect-ratio:auto;margin:0;width:100%;overflow:hidden;border-radius:22px;background:var(--light)}.hero .hero-art img{display:block;width:100%;height:auto;aspect-ratio:1983/793;object-fit:contain}.hero .hero-bottom{position:static;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:21px 0;border-bottom:1px solid var(--line);font-size:.8125rem;color:var(--muted)}.hero-bottom a{color:var(--ink)}.button,.hero .button,.hero-jd .button{background:var(--ink);border:1px solid var(--ink);border-radius:99px;padding:13px 23px;gap:32px;min-height:48px;font-size:.875rem}.button.outline{background:transparent;color:var(--ink);border-color:var(--line)}
.about-grid,.training-layout{grid-template-columns:1fr 1.12fr;gap:80px}.company-text p{font-size:1.0625rem}.company-text .lead{font-size:1.25rem;line-height:1.85;color:var(--ink)}.company-history{margin-top:65px;padding-top:32px;border-top:1px solid var(--line)}.history-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:36px}.company-history .history-heading h3{margin:0}.company-history .history-note{font-size:.8125rem;margin:0;max-width:580px}.company-history .timeline{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.timeline>div{position:relative;padding-top:25px;border-top:1px solid var(--line)}.timeline>div:before{content:'';position:absolute;top:-3px;left:0;width:5px;height:5px;background:var(--accent);border-radius:50%}.timeline strong{font-size:clamp(2rem,3.5vw,3rem);line-height:1;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-.045em}.company-history .timeline p{font-size:.9375rem;max-width:250px}.history-copy{display:grid;grid-template-columns:1fr 1fr;gap:60px;max-width:none;margin-top:36px}.history-copy p{font-size:.9375rem;margin:0}
/* Numbered, fully expanded service rows. */
.service-rows,.jd-services.service-rows{display:block;border:0;border-bottom:1px solid var(--line)}.service-rows article,.service-grid article:first-child,.service-grid article:last-child,.service-grid article:nth-child(odd),.service-grid article:nth-child(n+3){position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:72px 1fr .9fr;gap:24px;align-items:center;min-height:126px;padding:25px 28px;border:0;border-top:1px solid var(--line)}.service-index{font-size:.875rem;color:var(--accent);font-variant-numeric:tabular-nums;margin:0}.service-rows h3{font-size:clamp(1.6rem,3.2vw,3rem);font-weight:400;letter-spacing:-.025em}.service-english{font-size:.8125rem;letter-spacing:.16em;justify-self:end;color:var(--muted);margin:0}.service-rows p{font-size:1rem;line-height:1.8;justify-self:end;max-width:420px;margin:0}.spotlight-glow{position:absolute;z-index:-1;width:480px;height:480px;left:0;top:0;border-radius:50%;background:radial-gradient(circle,#a8cdf875,transparent 70%);pointer-events:none;opacity:0;transition:opacity 220ms ease;transform:translate(-50%,-50%)}.jd .spotlight-glow{background:radial-gradient(circle,#d8cca16b,transparent 70%)}
.training-section{background:#142a40;color:#fff;--muted:#b9c7d5;--line:#ffffff29;--accent:#91caff}.training-heading p{max-width:370px}.course-list h3{font-size:1.375rem}.course-list p{font-size:.9375rem}.training-directions{margin-top:55px;border-top:1px solid var(--line);padding-top:32px}.training-directions h3{font-size:1.0625rem}.tags span{border-radius:4px;padding:10px 18px;font-size:.9375rem;color:#e1eaf2}.certificate-controls button{min-height:44px;border-radius:99px}.certificate-wall .gallery-item{border-radius:10px}.certificate-wall .image-frame{border-radius:4px}.certificate-track{will-change:auto}.certificate-wall.is-offscreen .certificate-track,.page-hidden .certificate-track{animation-play-state:paused}.qualification-layout{grid-template-columns:1fr 1.12fr;gap:80px}.jd-certificates .image-frame{height:250px;border-radius:8px}.jd-certificates .image-label{font-size:.875rem}.image-frame{border-radius:8px}
#masters{background:#f8f9f6}.teacher-jump{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 26px;margin-bottom:35px;border-bottom:0}.teacher-jump a{display:flex;justify-content:space-between;gap:12px;align-items:center;min-width:0;padding:20px 0;border-bottom:1px solid var(--line);font-size:1rem;text-align:left}.teacher-jump span{font-size:.8125rem;text-align:right;margin:0}.teacher-row{padding:68px 0;scroll-margin-top:150px}.teacher-row:last-child{border-bottom:0;padding-bottom:0}.teacher-profile{grid-template-columns:320px minmax(0,1fr);gap:64px;margin-bottom:60px}.teacher-portrait{min-height:426px}.portrait-button img{border-radius:8px}.teacher-copy h3{font-family:'STSong','SimSun',serif;font-size:2.8rem;font-weight:500;letter-spacing:.04em}.teacher-craft{font-size:1.125rem}.teacher-works .artwork-composition{gap:50px 42px}.artwork-composition .image-frame{border-radius:0}.teacher-works .artwork-composition .gallery-item:nth-child(3n+2){padding-top:60px}.teacher-works .artwork-composition .gallery-item.wide-artwork{padding-top:0}.contact-section{background:var(--paper);padding-bottom:80px}.contact-status{font-size:.875rem!important}.footer,.jd .footer{background:#142331;color:#f5f7fa;padding:62px 0 28px;border:0}.jd .footer{background:#242b28}.footer-wordmark{font-size:clamp(2.2rem,5vw,4.5rem);font-weight:500;letter-spacing:-.035em}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:20px 35px;font-size:.875rem}.footer-bottom{padding-top:25px;margin-top:50px;border-color:#ffffff26;font-size:.8125rem;color:#bac4cd;line-height:1.8}.lightbox{border-radius:10px}
@media(hover:hover) and (pointer:fine){.spotlight-card:hover .spotlight-glow{opacity:1}.button:hover,.hero .button:hover{background:var(--accent);border-color:var(--accent)}.brand-switch a[aria-current]:hover{color:#fff}.teacher-jump a:hover{background:transparent;color:var(--accent)}}
@media(max-width:1150px){.wrap{width:calc(100% - 64px)}.masthead{display:grid;grid-template-columns:1fr auto;gap:20px}.contact-link{display:none}.brand-switch{width:280px}.nav-caption{display:none}.hero-heading{gap:32px}.about-grid,.training-layout,.qualification-layout{gap:48px}.teacher-profile{grid-template-columns:290px minmax(0,1fr);gap:44px}.teacher-portrait{min-height:400px}.teacher-copy h3{font-size:2.3rem}.teacher-affiliations{columns:1}.teacher-jump{gap:0 20px}.teacher-jump a{flex-direction:column;align-items:flex-start;gap:6px}.teacher-jump span{text-align:left}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.hero-heading{grid-template-columns:1.4fr 1fr}.hero h1,.hero-jd h1{font-size:3rem}.hero-aside{max-width:260px}.hero .hero-description{font-size:1rem}.hero .hero-art{border-radius:16px}.section{padding:72px 0}.about-grid{gap:35px;grid-template-columns:1fr 1.1fr}.company-text .lead{font-size:1.125rem}.history-heading{display:block}.company-history .history-note{margin-top:16px}.history-copy{gap:35px}.service-rows article,.service-grid article:first-child,.service-grid article:last-child,.service-grid article:nth-child(odd),.service-grid article:nth-child(n+3){grid-template-columns:42px 1fr 1fr;padding:24px 16px;gap:18px;min-height:110px}.service-rows h3{font-size:2rem}.training-layout{gap:40px}.teacher-profile{grid-template-columns:250px minmax(0,1fr);gap:32px}.teacher-portrait{min-height:370px}.teacher-copy h3{font-size:2rem}.teacher-works .artwork-composition{gap:38px 26px}.qualification-layout{grid-template-columns:1fr;gap:30px}.footer-wordmark{font-size:2.7rem}}
@media(max-width:700px){html{scroll-padding-top:210px}.wrap{width:calc(100% - 36px)}.masthead{display:grid;grid-template-columns:1fr;gap:14px;padding:15px 0 13px}.brand-mark{width:36px;height:36px}.brand strong{font-size:1rem}.brand .jd-mark{width:64px;height:36px}.brand-switch{width:100%;gap:4px;padding:4px}.brand-switch a{padding:9px 10px}.navigation-bar>.wrap{min-height:0}.navigation-bar .nav{padding:5px 0;gap:0 19px}.navigation-bar .nav a{padding:7px 0;font-size:.8125rem}.hero,.hero-jd{padding-top:28px}.hero-topline{margin-bottom:22px}.hero-topline>span{display:none}.hero .company-name{font-size:.8125rem}.hero-heading{grid-template-columns:1fr;gap:23px;margin-bottom:28px}.hero h1,.hero-jd h1{font-size:clamp(2.1rem,8.4vw,3.5rem);line-height:1.35}.hero-aside{justify-self:start;max-width:none;padding:0;display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%}.hero .hero-description{font-size:.9375rem;line-height:1.8;margin:0;max-width:225px}.hero-aside .button{font-size:.8125rem;gap:14px;padding:11px 17px;min-height:44px;flex-shrink:0}.hero .hero-art{border-radius:12px}.hero .hero-bottom{font-size:.75rem;padding:18px 0}.hero-bottom a{gap:12px}.section{padding:56px 0}.section-head{margin-bottom:30px}.section-head p{font-size:.9375rem}.about-grid,.training-layout{grid-template-columns:1fr;gap:26px}.company-text p{font-size:1rem}.company-history{margin-top:38px;padding-top:28px}.history-heading{margin-bottom:26px}.history-copy{grid-template-columns:1fr;gap:18px;margin-top:28px}.company-history .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px}.service-rows article,.service-grid article:first-child,.service-grid article:last-child,.service-grid article:nth-child(odd),.service-grid article:nth-child(n+3){grid-template-columns:30px minmax(0,1fr);gap:14px;padding:24px 4px;min-height:100px}.service-rows h3{font-size:1.8rem}.service-english{grid-column:2;justify-self:start;font-size:.75rem;letter-spacing:.12em}.service-rows p{grid-column:2;font-size:.9375rem;justify-self:start}.service-index{align-self:start;padding-top:8px}.training-heading p{max-width:none}.training-directions{margin-top:36px;padding-top:25px}.tags span{font-size:.875rem;padding:9px 12px}.jd-certificates .image-frame{height:210px}.teacher-jump{gap:0 16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.teacher-jump a{flex-direction:row;align-items:center;font-size:.9375rem;padding:16px 0}.teacher-jump span{font-size:.75rem}.teacher-row{padding:42px 0;scroll-margin-top:210px}.teacher-profile{grid-template-columns:minmax(115px,.8fr) minmax(0,1.3fr);gap:20px;margin-bottom:35px}.teacher-portrait{min-height:290px}.teacher-copy h3{font-size:1.7rem;letter-spacing:.01em}.teacher-craft{font-size:1rem}.teacher-portrait .portrait-button img{object-fit:contain;object-position:top}.teacher-photo-landscape .teacher-profile{grid-template-columns:1fr;gap:24px}.teacher-works .artwork-composition{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px}.teacher-works .artwork-composition .gallery-item:nth-child(3n+2){padding-top:0;width:100%}.teacher-works .artwork-composition .gallery-item:nth-child(even){padding-top:30px;width:90%}.teacher-works .artwork-composition .gallery-item.wide-artwork{grid-column:1/-1;width:100%;padding-top:0}.contact-section{padding-bottom:56px}.footer,.jd .footer{padding:40px 0 25px}.footer-wordmark{font-size:2.1rem}.footer-links{display:flex;flex-wrap:wrap;gap:20px;margin-top:30px;font-size:.8125rem}.footer-bottom{margin-top:32px;padding-top:20px;font-size:.75rem}}
@media(max-width:420px){.hero-aside{display:block}.hero .hero-description{max-width:none;margin-bottom:17px}.teacher-profile{gap:15px;grid-template-columns:minmax(95px,.75fr) minmax(0,1.3fr)}.teacher-copy h3{font-size:1.5rem}.teacher-jump a{flex-direction:column;align-items:start}.jd-certificates .image-frame{height:180px}.hero .hero-bottom{gap:12px}.hero-bottom>span{max-width:68%}}
@media(prefers-reduced-motion:reduce){.spotlight-glow{display:none}html{scroll-behavior:auto}}
