
:root{--bg:#1b1c1d;--bg2:#151617;--panel:#222426;--ink:#f3f1eb;--soft:#d2cfc7;--muted:#969895;--rule:#393b3d;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55}button,input,textarea,select{font:inherit}img{display:block;width:100%}
.wrap{width:min(1160px,92vw);margin:auto}nav{position:sticky;top:0;z-index:30;background:rgba(27,28,29,.95);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}.nav{height:68px;display:flex;align-items:center;justify-content:space-between;gap:20px}.logo{font:24px var(--serif);letter-spacing:.08em;cursor:pointer}.links{display:flex;gap:22px;align-items:center}.navbtn{background:none;border:0;color:#bbb;cursor:pointer;font-size:11px;letter-spacing:.13em;text-transform:uppercase;padding:8px 0}
.page{display:block}.page[hidden]{display:none}
.hero{min-height:84vh;display:grid;grid-template-columns:1.05fr .95fr;gap:68px;align-items:center;padding:70px 0}.hero img{height:620px;object-fit:cover;filter:saturate(.72)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}h1{font:400 clamp(64px,9vw,118px)/.88 var(--serif);letter-spacing:-.04em;margin:12px 0}.tag{font:italic clamp(28px,3.5vw,43px) var(--serif);margin:24px 0}.lead,.copy{font-size:18px;color:#d7d4cd}.lead{font-size:20px;max-width:650px}.pull{font:clamp(27px,3vw,38px)/1.25 var(--serif);margin:34px 0;color:white}.btn{display:inline-block;background:none;color:white;border:1px solid #d8d4cb;padding:13px 18px;font-size:11px;letter-spacing:.15em;text-transform:uppercase;cursor:pointer}
section{padding:100px 0;border-top:1px solid var(--rule)}.grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:78px}h2{font:400 clamp(42px,5vw,68px)/1.02 var(--serif);margin:8px 0 24px}h3{font:400 31px var(--serif);margin:0 0 10px}.num{font-size:11px;color:#747679;letter-spacing:.16em}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.tile{background:var(--panel);border:1px solid #303234;padding:28px}.price{font:italic 21px var(--serif);margin-bottom:15px}.offer{padding:38px 0;border-top:1px solid var(--rule)}.offer:first-child{border-top:0}.offer h3{font-size:36px}
.form{max-width:800px;margin:35px auto}label{display:block;margin:20px 0 7px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#bbb}input,textarea,select{width:100%;background:var(--bg2);border:1px solid #47494b;color:white;padding:14px;font-size:16px}textarea{min-height:125px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.check{display:flex;gap:10px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:14px}.check input{width:auto;margin-top:5px}
.about-grid{display:grid;grid-template-columns:1fr .9fr;gap:70px;align-items:start}.about-photo{position:sticky;top:95px}.about-photo img{aspect-ratio:4/5;object-fit:cover;filter:saturate(.7)}
.faculty-intro{max-width:820px;margin-bottom:60px}.instructor{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--rule);min-height:500px}.instructor:nth-child(even) .photo{order:2}.instructor:nth-child(even) .bio{order:1}.photo img{height:100%;min-height:500px;object-fit:cover;filter:saturate(.75)}.bio{background:var(--bg2);padding:48px;display:flex;flex-direction:column;justify-content:center}.bio h3{font-size:40px}.meta{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:20px}.subject{font:italic 24px/1.25 var(--serif);margin-bottom:20px}.bio p{color:#c8c6c0;margin:0 0 15px}.lesson{font:23px/1.25 var(--serif);margin-top:10px}.desensei{font:50px var(--serif);margin-top:20px}
footer{border-top:1px solid var(--rule);padding:28px 0;color:#777;font-size:11px;text-transform:uppercase;letter-spacing:.12em}
@media(max-width:820px){.hero,.grid,.about-grid,.instructor{grid-template-columns:1fr}.hero img{height:450px}.tiles{grid-template-columns:1fr}.row{grid-template-columns:1fr}.links{gap:10px}.about-photo{position:static}.instructor:nth-child(even) .photo,.instructor:nth-child(even) .bio{order:initial}.bio{padding:32px 25px}.photo img{min-height:380px}}

.about-story-image{margin:34px 0 42px}
.about-story-image img{width:100%;display:block;object-fit:cover;filter:saturate(.86) contrast(1.02)}
.about-story-image.wide img{aspect-ratio:16/9}
.about-story-image.tall img{aspect-ratio:4/5}
.about-story-image.medium img{aspect-ratio:3/2}
.about-story-image.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.about-story-image.split img{height:100%;aspect-ratio:4/5}
.about-story-caption{font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:#777;margin-top:9px}
@media(max-width:820px){.about-story-image.split{grid-template-columns:1fr}.about-story-image.split img{aspect-ratio:4/5}}



#doglab .page-inner{max-width:1180px;margin:0 auto}
#doglab .doglab-hero{margin:36px 0 52px}
#doglab .doglab-hero img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover}
#doglab .doglab-caption{margin-top:10px;font-size:11px;letter-spacing:.11em;text-transform:uppercase;opacity:.58}
#doglab .doglab-copy{max-width:780px}
#doglab .doglab-copy p{margin-bottom:24px}
#doglab .pull{margin:42px 0;font-size:clamp(24px,3vw,38px);line-height:1.2}


#about .about-signature{
  margin-top:34px;
  margin-bottom:8px;
  font-family:"Segoe Print","Bradley Hand","Comic Sans MS",cursive;
  font-size:clamp(22px,2.4vw,31px);
  line-height:1.08;
  font-weight:400;
  letter-spacing:-.035em;
  transform:rotate(-1.2deg) skewX(-5deg);
  transform-origin:left center;
  display:inline-block;
  opacity:.92;
  white-space:nowrap;
}


#contact .form-status{
  margin-top:14px;
  min-height:1.3em;
  font-size:13px;
  opacity:.72;
}
#contact .form-status.ok{opacity:1;}
#contact .form-status.error{opacity:1;}


#about .privacy-block{
  margin-top:72px;
  padding-top:42px;
  border-top:1px solid var(--rule);
}
#about .privacy-block h3{
  margin:8px 0 26px;
  font-size:clamp(30px,4vw,48px);
  line-height:1.05;
}
#contact .contact-privacy{
  margin:26px 0 30px;
  padding:18px 20px;
  border-left:2px solid var(--soft);
  font-size:14px;
  line-height:1.65;
}
/* Production accessibility and responsive corrections; recovered design retained. */
a{color:inherit}
/* Keep the side inset inside the content viewport, including desktop scrollbars. */
.wrap{width:min(1160px,92%)}
img{height:auto}
a.logo,a.navbtn,a.btn{text-decoration:none}
.logo{display:inline-flex;align-items:center;min-height:44px}
.page:not(#doglab){padding:0;border:0}
.view-title{font:400 clamp(42px,5vw,68px)/1.02 var(--serif);letter-spacing:normal;margin:8px 0 24px}
.navbtn{display:inline-flex;align-items:center;min-height:44px}
.navbtn[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:6px}
:focus-visible{outline:2px solid var(--ink);outline-offset:5px}
.skip-link{position:fixed;left:12px;top:-100px;z-index:100;background:var(--ink);color:var(--bg);padding:12px 18px}
.skip-link:focus{top:12px}
#main-content:focus,.page h1:focus{outline:none}
.btn:disabled{opacity:.6;cursor:not-allowed}
#doglab .page-inner{width:min(1180px,92%)}
.hero>*,.grid>*,.about-grid>*,.instructor>*,.row>*{min-width:0}
.form input,.form select,.form textarea{max-width:100%}
#contact .form-status{color:var(--soft);opacity:1}
@media(max-width:820px){
  .nav{height:auto;min-height:68px;flex-wrap:wrap;gap:0 20px;padding:10px 0}
  .logo{display:inline-flex;align-items:center;min-height:44px}
  .links{display:flex;flex-wrap:wrap;gap:0 18px;width:100%}
  .links .navbtn{display:inline-flex;min-height:44px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media(max-width:360px){#home h1{font-size:clamp(48px,16vw,58px)}}
.num,footer,.about-story-caption{color:var(--muted)}
.bio h2{font:400 40px var(--serif);margin:0 0 10px}
#about .privacy-block h2{font:400 clamp(30px,4vw,48px)/1.05 var(--serif);margin:8px 0 26px}
.media-choice{border:0;padding:0;margin:20px 0 7px;min-width:0}
.media-choice legend{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#bbb}
.media-options{display:flex;gap:28px;flex-wrap:wrap}
.media-options label{min-height:44px;align-items:center;margin:4px 0}
.media-options input{margin-top:0}
