:root{
    --c-green-deep:#0B4D2E;
    --c-green:#176B41;
    --c-green-pale:#E9F4ED;
    --c-gold:#C9A33B;
    --c-gold-pale:#F7EFD9;
    --c-cream:#FAF8F3;
    --c-ink:#1B2420;
    --c-ink-soft:#5B6660;
    --c-white:#FFFFFF;
    --c-line:rgba(11,77,46,.14);
    --shadow:0 14px 34px -16px rgba(11,77,46,.30);
    --radius:12px;
    --font-display:'Fraunces',serif;
    --font-body:'Inter',sans-serif;
    --font-mono:'JetBrains Mono',monospace;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    font-family:var(--font-body);
    color:var(--c-ink);
    background:var(--c-cream);
    -webkit-font-smoothing:antialiased;
  }
  img,svg{display:block;}
  a{color:inherit;text-decoration:none;}
  h1,h2,h3,h4{font-family:var(--font-display);margin:0;color:var(--c-green-deep);}
  p{margin:0;line-height:1.65;color:var(--c-ink-soft);}
  ul{margin:0;padding:0;}
  button{font-family:inherit;}

  .container{max-width:1180px;margin:0 auto;padding:0 24px;}
  .section{padding:88px 0;}
  .section.alt{background:var(--c-green-pale);}
  .page-head{padding-bottom:48px;}

  .eyebrow{
    font-family:var(--font-mono);
    font-size:13px;
    letter-spacing:.06em;
    color:var(--c-green);
    margin:0 0 14px;
    font-weight:600;
  }
  .section-title{
    font-size:clamp(28px,4vw,40px);
    font-weight:600;
    margin-bottom:18px;
    position:relative;
    display:inline-block;
  }
  .section-title::after{
    content:"";
    display:block;
    width:64px;height:3px;
    background:var(--c-gold);
    margin-top:14px;
    border-radius:3px;
    transform:scaleX(0);
    transform-origin:left;
    transition:transform .6s ease .15s;
  }
  .in-view .section-title::after{transform:scaleX(1);}
  .lead{font-size:18px;max-width:680px;color:var(--c-ink-soft);}

  /* icons */
  .icon{width:22px;height:22px;stroke:var(--c-green);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
  .icon-sm{width:16px;height:16px;}
  .icon-lg{width:34px;height:34px;}
  .icon-xl{width:46px;height:46px;}
  .dot{fill:var(--c-green);stroke:none;}
  .btn-primary .dot{fill:#fff;}
  .footer .dot{fill:#fff;}
  .social-row a:hover .dot{fill:#fff;}

  /* reveal animation */
  .reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease;}
  .reveal.in-view{opacity:1;transform:none;}
  .grid > .reveal:nth-child(1),.strip-grid > .reveal:nth-child(1),.gallery-grid > .reveal:nth-child(1),.values-row > .reveal:nth-child(1),.mv-grid > .reveal:nth-child(1),.program-grid > .reveal:nth-child(1),.testimonial-grid > .reveal:nth-child(1){transition-delay:0s;}
  .grid > .reveal:nth-child(2),.strip-grid > .reveal:nth-child(2),.gallery-grid > .reveal:nth-child(2),.values-row > .reveal:nth-child(2),.mv-grid > .reveal:nth-child(2),.program-grid > .reveal:nth-child(2),.testimonial-grid > .reveal:nth-child(2){transition-delay:.07s;}
  .grid > .reveal:nth-child(3),.gallery-grid > .reveal:nth-child(3),.values-row > .reveal:nth-child(3),.testimonial-grid > .reveal:nth-child(3){transition-delay:.14s;}
  .grid > .reveal:nth-child(4),.gallery-grid > .reveal:nth-child(4),.testimonial-grid > .reveal:nth-child(4){transition-delay:.21s;}
  .grid > .reveal:nth-child(5),.gallery-grid > .reveal:nth-child(5){transition-delay:.28s;}
  .grid > .reveal:nth-child(6),.gallery-grid > .reveal:nth-child(6){transition-delay:.35s;}

  /* buttons */
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:13px 22px;border-radius:9px;
    font-weight:600;font-size:15px;
    border:1.5px solid transparent;
    transition:transform .25s ease,box-shadow .25s ease,background .25s ease,color .25s ease,border-color .25s ease;
    cursor:pointer;
  }
  .btn-primary{background:var(--c-green-deep);color:var(--c-white);box-shadow:var(--shadow);}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px -14px rgba(11,77,46,.45);}
  .btn-outline{background:transparent;border-color:var(--c-green-deep);color:var(--c-green-deep);}
  .btn-outline:hover{background:var(--c-green-deep);color:var(--c-white);transform:translateY(-2px);}
  .btn-ghost{background:var(--c-gold-pale);color:#7A5E14;}
  .btn-ghost:hover{background:var(--c-gold);color:var(--c-white);transform:translateY(-2px);}

  /* nav */
  .nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(250,248,243,.85);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s ease,box-shadow .3s ease;}
  .nav.scrolled{border-color:var(--c-line);box-shadow:0 8px 24px -16px rgba(11,77,46,.25);}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px;}
  .brand{display:flex;align-items:center;gap:12px;}
  .brand-badge{width:40px;height:40px;border-radius:10px;background:var(--c-green-deep);border:2px solid var(--c-gold);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .brand-badge .icon{stroke:var(--c-white);width:20px;height:20px;}
  .brand-text{display:flex;flex-direction:column;line-height:1.15;}
  .brand-name{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--c-green-deep);}
  .brand-short{display:none;}
  .brand-tag{font-family:var(--font-mono);font-size:11px;color:var(--c-gold);letter-spacing:.04em;}
  .nav-links{display:flex;align-items:center;gap:30px;}
  .nav-links a{font-weight:600;font-size:15px;color:var(--c-ink);position:relative;padding:6px 2px;}
  .nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--c-gold);transition:width .25s ease;}
  .nav-links a:hover::after,.nav-links a.active::after{width:100%;}
  .nav-links a.active{color:var(--c-green-deep);}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:none;border:none;cursor:pointer;}
  .nav-toggle span{display:block;height:2px;width:100%;background:var(--c-green-deep);border-radius:2px;transition:transform .25s ease,opacity .25s ease;}
  .nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .nav-toggle.active span:nth-child(2){opacity:0;}
  .nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

  /* pages */
  main{padding-top:76px;}
  .page{display:none;}
  .page.active{display:block;animation:pageFade .55s ease both;}
  @keyframes pageFade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:translateY(0);}}

  /* hero */
  .hero{position:relative;overflow:hidden;padding:90px 0 70px;}
  .hero-trace{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
  .trace-line{fill:none;stroke:var(--c-green);stroke-width:2;opacity:.22;stroke-dasharray:8 10;stroke-linecap:round;animation:dash 16s linear infinite;}
  .trace-line2{stroke:var(--c-gold);opacity:.18;animation-duration:20s;animation-direction:reverse;}
  .trace-node{fill:var(--c-gold);opacity:.55;animation:pulse 3s ease-in-out infinite;}
  .trace-node.n2{fill:var(--c-green);animation-delay:1.2s;}
  @keyframes dash{to{stroke-dashoffset:-400;}}
  @keyframes pulse{0%,100%{opacity:.3;}50%{opacity:.85;}}
  .hero-inner{position:relative;z-index:1;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;}
  .hero-title{font-size:clamp(34px,5.2vw,58px);font-weight:600;line-height:1.08;margin-bottom:20px;}
  .cursor{color:var(--c-gold);font-weight:400;animation:blink 1s steps(2) infinite;margin-left:2px;}
  @keyframes blink{50%{opacity:0;}}
  .hero-sub{font-size:19px;color:var(--c-ink-soft);max-width:480px;margin-bottom:32px;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:14px;}
  .hero-visual{position:relative;}

  /* placeholders */
  .ph{
    background:repeating-linear-gradient(135deg,var(--c-green-pale) 0 12px,#ffffff 12px 24px);
    border:2px dashed var(--c-green);
    border-radius:var(--radius);
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:8px;text-align:center;color:var(--c-green-deep);padding:24px;
  }
  .ph .icon{stroke:var(--c-green);}
  .ph span{font-weight:600;font-size:14px;}
  .ph small{font-family:var(--font-mono);font-size:11px;color:var(--c-ink-soft);}
  .ph-hero{aspect-ratio:4/3.4;}
  .ph-banner{aspect-ratio:16/6;margin-top:28px;}
  .ph-gallery{aspect-ratio:4/3;}
  .ph-avatar{width:64px;height:64px;border-radius:50%;padding:0;flex-shrink:0;}
  .ph-avatar .icon{width:24px;height:24px;}

  /* strip */
  .strip{padding:0 0 90px;}
  .strip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .strip-card{
    background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);
    padding:26px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  }
  .strip-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--c-gold);}
  .strip-card h3{font-size:18px;margin:12px 0 6px;}
  .strip-card p{font-size:14px;}

  /* about welcome */
  .about-welcome{margin-top:8px;}

  .mv-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:48px;}
  .mv-card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);padding:30px;}
  .mv-label{font-family:var(--font-mono);font-size:12px;color:var(--c-gold);letter-spacing:.06em;font-weight:600;}
  .mv-card p{margin-top:12px;color:var(--c-ink);}
  .mv-note{font-size:12.5px;font-style:italic;color:var(--c-ink-soft);margin-top:10px;}

  .values-row{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
  .value-badge{background:var(--c-green-deep);color:var(--c-white);border-radius:var(--radius);padding:28px;text-align:center;}
  .value-badge .icon{stroke:var(--c-gold);margin:0 auto 12px;}
  .value-badge h4{color:var(--c-white);font-size:18px;margin-bottom:8px;}
  .value-badge p{color:rgba(255,255,255,.8);font-size:14px;}

  /* grids & cards */
  .grid{display:grid;gap:22px;}
  .grid-2{grid-template-columns:repeat(2,1fr);}
  .grid-3{grid-template-columns:repeat(3,1fr);}
  .grid-5{grid-template-columns:repeat(5,1fr);}
  .card{
    background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);
    padding:28px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
  }
  .card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--c-gold);}
  .card h3{font-size:17px;margin:14px 0 8px;}
  .card p{font-size:14.5px;}

  .facility{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);padding:24px 14px;text-align:center;transition:transform .25s ease,box-shadow .25s ease;}
  .facility:hover{transform:translateY(-4px);box-shadow:var(--shadow);}
  .facility .icon{margin:0 auto 12px;}
  .facility p{font-weight:600;color:var(--c-ink);font-size:13.5px;}

  .gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}

  /* programs */
  .program-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
  .program-card{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);padding:36px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;}
  .program-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--c-gold);}
  .program-card h2{font-size:30px;margin:16px 0 2px;}
  .program-full{font-family:var(--font-mono);font-size:12.5px;color:var(--c-green);margin-bottom:16px;}
  .program-card > p{margin-bottom:18px;}
  .program-card h4{font-family:var(--font-mono);font-size:12px;letter-spacing:.05em;color:var(--c-ink-soft);margin:18px 0 10px;text-transform:uppercase;}
  .chips{display:flex;flex-wrap:wrap;gap:8px;}
  .chip{font-family:var(--font-mono);font-size:12.5px;background:var(--c-green-pale);color:var(--c-green-deep);padding:7px 13px;border-radius:999px;border:1px solid var(--c-line);}
  .chips-gold .chip{background:var(--c-gold-pale);color:#7A5E14;border-color:rgba(201,163,59,.3);}

  .table-wrap{overflow-x:auto;border-radius:var(--radius);box-shadow:var(--shadow);}
  .compare-table{width:100%;border-collapse:collapse;background:var(--c-white);min-width:640px;}
  .compare-table th,.compare-table td{padding:16px 20px;text-align:left;font-size:14.5px;border-bottom:1px solid var(--c-line);}
  .compare-table th{font-family:var(--font-mono);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;background:var(--c-green-deep);color:var(--c-white);}
  .compare-table td:first-child{font-weight:600;color:var(--c-green-deep);white-space:nowrap;}
  .compare-table tr:last-child td{border-bottom:none;}
  .compare-table tbody tr:nth-child(even){background:var(--c-green-pale);}

  /* testimonials */
  .testimonial-grid{margin-top:28px;}
  .testimonial{background:var(--c-white);border:1px solid var(--c-line);border-radius:var(--radius);padding:28px;display:flex;gap:16px;align-items:flex-start;margin:0;}
  .testimonial blockquote{font-family:var(--font-display);font-size:17px;color:var(--c-ink);margin:0 0 10px;line-height:1.5;font-style:italic;}
  .testimonial figcaption{font-family:var(--font-mono);font-size:12.5px;color:var(--c-green);}

  /* contact */
  .contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
  .info-row{display:flex;gap:16px;align-items:flex-start;margin-bottom:22px;}
  .info-row .icon{margin-top:3px;}
  .info-row strong{display:block;color:var(--c-ink);font-size:15px;margin-bottom:3px;}
  .info-row span{font-size:14.5px;color:var(--c-ink-soft);}
  .contact-actions{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 22px;}
  .social-row{display:flex;gap:12px;}
  .social-row a{width:42px;height:42px;border-radius:50%;background:var(--c-green-pale);display:flex;align-items:center;justify-content:center;transition:background .25s ease,transform .25s ease;}
  .social-row a:hover{background:var(--c-green-deep);transform:translateY(-3px);}
  .social-row a:hover .icon{stroke:var(--c-white);}
  .map-wrap{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3.6;border:1px solid var(--c-line);}
  .map-wrap iframe{width:100%;height:100%;border:0;}

  /* footer */
  .footer{background:var(--c-green-deep);color:rgba(255,255,255,.82);padding:64px 0 0;margin-top:0;}
  .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.14);}
  .brand-footer{margin-bottom:14px;}
  .brand-footer .brand-name{color:var(--c-white);}
  .footer p{color:rgba(255,255,255,.65);font-size:14px;}
  .footer h4{color:var(--c-white);font-family:var(--font-mono);font-size:12.5px;letter-spacing:.05em;text-transform:uppercase;margin-bottom:16px;}
  .footer-links{display:flex;flex-direction:column;gap:10px;}
  .footer-links a{font-size:14.5px;color:rgba(255,255,255,.78);transition:color .2s ease;}
  .footer-links a:hover{color:var(--c-gold);}
  .footer .social-row a{background:rgba(255,255,255,.1);}
  .footer .social-row a .icon{stroke:var(--c-white);}
  .footer .social-row a:hover{background:var(--c-gold);}
  .footer-bottom{padding:22px 24px;text-align:center;font-size:13px;color:rgba(255,255,255,.55);}

  /* responsive */
  @media (max-width:900px){
    .hero-inner{grid-template-columns:1fr;}
    .hero-visual{order:-1;}
    .mv-grid,.grid-2,.program-grid,.contact-grid,.footer-grid{grid-template-columns:1fr;}
    .grid-3,.strip-grid,.values-row{grid-template-columns:repeat(2,1fr);}
    .grid-5{grid-template-columns:repeat(3,1fr);}
    .gallery-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:760px){
    .nav-links{position:absolute;top:76px;left:0;right:0;background:var(--c-cream);flex-direction:column;align-items:flex-start;padding:10px 24px 22px;gap:16px;border-bottom:1px solid var(--c-line);transform:translateY(-12px);opacity:0;visibility:hidden;transition:transform .25s ease,opacity .25s ease,visibility .25s;}
    .nav-links.open{transform:translateY(0);opacity:1;visibility:visible;}
    .nav-toggle{display:flex;}
    .brand-name{display:none;}
    .brand-short{display:block;font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--c-green-deep);}
    .section{padding:64px 0;}
    .grid-3,.strip-grid,.values-row,.grid-5{grid-template-columns:repeat(2,1fr);}
    .gallery-grid{grid-template-columns:1fr 1fr;}
  }
  @media (max-width:520px){
    .grid-3,.grid-5,.strip-grid,.values-row,.gallery-grid{grid-template-columns:1fr;}
    .hero-actions{flex-direction:column;align-items:stretch;}
    .contact-actions{flex-direction:column;align-items:stretch;}
  }

  @media (prefers-reduced-motion:reduce){
    *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  }
