:root{--c-mist:#e8f0eb;--c-fog:#fcfaf6;--c-surface:#f1f6f2;--c-paper:#fff;--c-ink:#2a2824;--c-ink-mid:#454840;--c-muted:#5c665e;--c-line:#d8e4dc;--c-line-soft:#e9f0eb;--c-blue:#4d8b7a;--c-blue-deep:#3a6b5d;--c-blue-faint:#9dc4b5;--c-blue-wash:#4d8b7a1f;--c-logo:#5fa08c;--c-logo-deep:#3d7264;--c-wa:#25d366;--c-shadow:0 8px 28px #2a4a400f;--c-shadow-hover:0 14px 40px #2a4a401a;--r-sm:12px;--r-md:18px;--r-lg:26px;--font:"Google Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--max:1024px;--space:1.5rem;--ease:cubic-bezier(.4, 0, .2, 1);font-family:var(--font);color:var(--c-ink);background:var(--c-fog);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16.5px;line-height:1.55}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;overflow-x:clip}#root{min-height:100dvh}a{color:inherit}.page{background:var(--c-fog);min-height:100dvh}.shell{width:100%;max-width:var(--max);padding:3.25rem var(--space);margin:0 auto}.shell--narrow{text-align:center;max-width:36rem}.masthead{z-index:50;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--c-line-soft);background:#fcfaf6e6;position:sticky;top:0}.masthead__in{max-width:var(--max);padding:.65rem var(--space);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;display:flex}.logo{color:var(--c-ink);align-items:center;gap:.55rem;text-decoration:none;display:flex}.logo__mark{aspect-ratio:772/931;background:linear-gradient(165deg, #8ec4b4 0%, var(--c-logo) 42%, var(--c-logo-deep) 100%);filter:drop-shadow(0 1px 2px #3a6b5d2e);flex-shrink:0;width:auto;height:3.75rem;max-height:58px;display:block;-webkit-mask-image:url(/sjv-logo.png);mask-image:url(/sjv-logo.png);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-source-type:alpha;mask-mode:alpha}.logo__wordmark{letter-spacing:.07em;color:var(--c-ink);font-size:clamp(.68rem,2.1vw,.8125rem);font-weight:700;line-height:1.25}.menu{flex-wrap:wrap;align-items:center;gap:.2rem;display:flex}.menu a{color:var(--c-ink-mid);border-radius:var(--r-sm);transition:background .2s var(--ease), color .2s var(--ease);padding:.5rem .75rem;font-size:.8125rem;font-weight:500;text-decoration:none}.menu a:hover{background:var(--c-line-soft);color:var(--c-ink)}.btn{border-radius:var(--r-sm);min-height:44px;font-family:var(--font);cursor:pointer;transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease), transform .15s var(--ease);touch-action:manipulation;border:none;justify-content:center;align-items:center;gap:.45rem;padding:.72rem 1.35rem;font-size:.875rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn--sm{min-height:40px;padding:.5rem 1rem;font-size:.8125rem}.btn--solid{background:var(--c-blue);color:#fff;box-shadow:0 4px 18px #4d8b7a47}.btn--solid:hover{background:var(--c-blue-deep);box-shadow:0 6px 22px #3a6b5d52}.btn--ghost{background:var(--c-paper);color:var(--c-blue-deep);border:1px solid var(--c-line)}.btn--ghost:hover{border-color:var(--c-blue-faint);background:#fff}.btn--light{color:var(--c-blue-deep);background:#fff;margin-top:.25rem;box-shadow:0 6px 28px #0000001f}.btn--light:hover{background:var(--c-line-soft)}.btn--outline{color:var(--c-blue-deep);border:1px solid var(--c-line);background:0 0;margin-top:.85rem;padding:.55rem 1rem;font-size:.8125rem}.btn--outline:hover{background:var(--c-blue-wash);border-color:var(--c-blue-faint)}.btn__ico{flex-shrink:0;width:.85rem;height:.85rem}.hero{background:radial-gradient(ellipse 75% 60% at 88% 8%, #78b29e2e, transparent 55%), radial-gradient(ellipse 55% 45% at 8% 88%, #ffe8d259, transparent 50%), linear-gradient(180deg, var(--c-mist) 0%, var(--c-fog) 52%, var(--c-fog) 100%);border-bottom:1px solid var(--c-line-soft);position:relative;overflow:clip}.hero__in{z-index:1;padding-top:2.75rem;padding-bottom:3.5rem;position:relative}.hero__tag{letter-spacing:.14em;text-transform:uppercase;color:var(--c-blue);margin:0 0 1rem;font-size:.6875rem;font-weight:600}.hero__title{letter-spacing:-.03em;max-width:22ch;color:var(--c-ink);margin:0;font-size:clamp(1.9rem,4.5vw,2.85rem);font-weight:600;line-height:1.12}.hero__accent{color:var(--c-blue-deep);font-weight:700}.hero__lead{max-width:32rem;color:var(--c-ink-mid);margin:1.2rem 0 0;font-size:1.0625rem;line-height:1.6}.hero__cta{flex-wrap:wrap;gap:.75rem;margin:1.75rem 0 0;display:flex}.hero__stats{border-top:1px solid var(--c-line);grid-template-columns:repeat(3,1fr);gap:.85rem;max-width:48rem;margin-top:2.5rem;padding-top:2rem;display:grid}.hero__stat{background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--r-md);border-left:3px solid var(--c-blue);box-shadow:var(--c-shadow);flex-direction:column;gap:.35rem;padding:1rem 1.15rem;display:flex}.hero__stat strong{color:var(--c-blue-deep);letter-spacing:-.02em;font-size:1.02rem;font-weight:700;line-height:1.25}.hero__stat span{color:var(--c-ink-mid);font-size:.8125rem;font-weight:500;line-height:1.4}.band{background:var(--c-surface);border-bottom:1px solid var(--c-line-soft)}.band--tint{background:linear-gradient(180deg, var(--c-mist) 0%, var(--c-fog) 100%)}.band--deep{color:#f5faf8;background:linear-gradient(135deg,#6aad98 0%,#4d8b7a 46%,#2f5548 100%);border:none}.band--deep .deep__h,.band--deep .deep__p{color:inherit}.band--bottom{background:var(--c-fog);border:none;padding-bottom:0}.deep__h{letter-spacing:-.02em;margin:0;font-size:clamp(1.35rem,3vw,1.75rem);font-weight:600}.deep__p{opacity:.92;margin:.85rem 0 0;font-size:.9375rem;line-height:1.6}.eyebrow{background:linear-gradient(90deg, var(--c-blue) 0%, var(--c-blue-faint) 100%);border-radius:2px;width:2.5rem;height:3px;margin:0 0 .85rem}.block-head__h{letter-spacing:-.02em;color:var(--c-ink);margin:0 0 .4rem;font-size:clamp(1.45rem,2.8vw,1.9rem);font-weight:600}.block-head__p{max-width:34rem;color:var(--c-muted);margin:0;font-size:.9375rem;line-height:1.58}.prog-grid{grid-template-columns:1fr 1fr;gap:1.35rem;margin-top:.5rem;display:grid}.card{background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--r-lg);box-shadow:var(--c-shadow);transition:box-shadow .25s var(--ease), border-color .25s var(--ease), transform .25s var(--ease)}.card--prog{border:1px solid var(--c-line);border-left:3px solid var(--c-blue);flex-direction:column;align-items:flex-start;padding:1.75rem 1.65rem;display:flex}.card--prog:hover{box-shadow:var(--c-shadow-hover);border-color:var(--c-line);border-left-color:var(--c-blue)}.card--prog-main{box-shadow:var(--c-shadow-hover)}.card__label{letter-spacing:.1em;text-transform:uppercase;color:var(--c-muted);margin:0 0 .5rem;font-size:.6875rem;font-weight:700}.card--prog .card__label{color:var(--c-blue-deep)}.card__h{color:var(--c-ink);margin:0 0 .45rem;font-size:1.25rem;font-weight:600}.card__p{color:var(--c-muted);margin:0;font-size:.875rem;line-height:1.55}.card__ul{color:var(--c-ink-mid);margin:.85rem 0 0;padding-left:1.15rem;font-size:.875rem;line-height:1.45}.card__ul li{margin-bottom:.35rem}.card__link{color:var(--c-blue-deep);margin-top:auto;padding-top:1.1rem;font-size:.8125rem;font-weight:600;text-decoration:none}.card__link:hover{color:var(--c-blue)}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:.5rem;display:grid}.card--tile{padding:1.35rem}.card--tile__h{color:var(--c-ink);margin:0 0 .45rem;font-size:.9375rem;font-weight:700}.card--tile__p{color:var(--c-muted);margin:0;font-size:.875rem;line-height:1.52}.fac-grid{grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:.5rem;display:grid}.card--fac{grid-template-columns:auto 1fr;align-items:center;gap:1.35rem;padding:1.5rem;display:grid}.faculty-card__img,.faculty-card__ph{border-radius:var(--r-md);object-fit:cover;object-position:center top;border:1px solid var(--c-line);background:var(--c-surface);width:118px;height:118px}.faculty-card__ph{color:var(--c-muted);text-align:center;white-space:pre-line;border-style:dashed;justify-content:center;align-items:center;padding:.5rem;font-size:.65rem;font-weight:600;line-height:1.35;display:flex}.faculty-card__role{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);margin:0 0 .2rem;font-size:.6875rem;font-weight:700}.faculty-card__name{color:var(--c-ink);margin:0 0 .25rem;font-size:1.15rem;font-weight:600}.faculty-card__qual{color:var(--c-muted);margin:0 0 .35rem;font-size:.875rem;font-weight:500}.faculty-card__exp{color:var(--c-ink-mid);margin:0;font-size:.875rem;line-height:1.45}.contact-layout{grid-template-columns:1fr 1fr;gap:1.25rem;margin-top:.75rem;display:grid}.card--contact{padding:1.6rem 1.5rem}.mini-h{letter-spacing:.1em;text-transform:uppercase;color:var(--c-ink-mid);align-items:center;gap:.45rem;margin:0;font-size:.6875rem;font-weight:700;display:flex}.mini-h--sp{margin-top:1.65rem}.mini-h__ico{width:1rem;height:1rem;color:var(--c-ink-mid);flex-shrink:0}.contact-addr{color:var(--c-ink);margin:.55rem 0 0;font-size:1rem;font-style:normal;font-weight:600;line-height:1.5}.contact-copy{color:var(--c-muted);margin:.55rem 0 0;font-size:.875rem;line-height:1.55}.contact-copy--tight{margin-top:.4rem;font-size:.8125rem}.dial-list{margin:.6rem 0 0;padding:0;list-style:none}.dial{color:inherit;border-bottom:1px solid var(--c-line-soft);min-height:48px;transition:color .2s var(--ease);-webkit-tap-highlight-color:transparent;justify-content:space-between;align-items:center;gap:1rem;padding:.72rem 0;text-decoration:none;display:flex}.dial:first-child{border-top:1px solid var(--c-line-soft)}.dial:hover{color:var(--c-blue-deep)}.dial__num{letter-spacing:.03em;font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}.dial__tag{letter-spacing:.08em;text-transform:uppercase;color:var(--c-muted);font-size:.625rem;font-weight:700}.dial--wa .dial__tag{color:var(--c-wa)}.dial:hover .dial__num{color:var(--c-blue-deep)}.contact-foot{border-top:1px solid var(--c-line-soft);color:var(--c-muted);margin:1.1rem 0 0;padding-top:1rem;font-size:.8125rem;line-height:1.45}.foot{text-align:center;border-top:1px solid var(--c-line);margin-top:2.5rem;padding:1.25rem 0 2rem}.foot p{color:var(--c-muted);margin:0;font-size:.75rem}@media (width<=820px){.prog-grid,.fac-grid,.contact-layout{grid-template-columns:1fr}.hero__title{max-width:none}.hero__stats{grid-template-columns:1fr;gap:1.1rem}}@media (width<=720px){.masthead__in{padding-left:max(1rem, env(safe-area-inset-left,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));grid-template-columns:1fr auto;grid-template-areas:"logo btn""nav nav";display:grid}.logo{grid-area:logo}.masthead__in .btn--sm{grid-area:btn;justify-self:end}.menu{border-top:1px solid var(--c-line-soft);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;grid-area:nav;gap:0;margin-top:.25rem;padding:.4rem 0 .2rem;overflow-x:auto}.menu::-webkit-scrollbar{display:none}.menu a{flex-shrink:0}.hero__cta{flex-direction:column}.hero__cta .btn{justify-content:center;width:100%}.card--fac{text-align:center;grid-template-columns:1fr}.faculty-card__img,.faculty-card__ph{margin:0 auto}.btn--outline{justify-content:center;width:100%}.shell{padding-left:max(1rem, env(safe-area-inset-left,0px));padding-right:max(1rem, env(safe-area-inset-right,0px));padding-top:2.5rem;padding-bottom:2.5rem}.card__link{text-align:center;background:var(--c-line-soft);border-radius:var(--r-sm);margin-top:1rem;padding:.65rem;display:block}}@media (hover:none) and (pointer:coarse){.card--prog:hover,.card--tile:hover{transform:none}.dial:hover{color:inherit}.dial:hover .dial__num{color:var(--c-ink)}}
