:root{
  --ink:#15243b;
  --ink-2:#1e3554;
  --teal:#15747d;
  --paper:#f6f8fa;
  --surface:#fbfcfd;
  --soft:#edf2f4;
  --line:#d7e0e5;
  --muted:#5f6b78;
  --white:#ffffff;
  --display:60px;
  --page-title:48px;
  --heading:40px;
  --title:24px;
  --body:16px;
  --small:14px;
  --caption:12px;
  --sans:"Pretendard",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:400 var(--body)/1.75 var(--sans);word-break:keep-all}
body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
:focus-visible{outline:3px solid var(--teal);outline-offset:4px}
.skip-link{position:fixed;left:16px;top:-80px;z-index:1000;padding:12px 16px;background:var(--ink);color:#fff}
.skip-link:focus{top:16px}
.site-header{position:sticky;top:0;z-index:100;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:36px;width:min(calc(100% - 48px),var(--max));min-height:72px;margin:18px auto 0;padding:10px 12px 10px 18px;border:1px solid #b9c4cb;background:rgba(251,252,253,.96);backdrop-filter:blur(12px)}
.brand{display:flex;align-items:center;gap:12px;min-width:230px}
.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:var(--ink);color:var(--teal);font:900 24px/1 var(--sans)}
.brand b{display:block;font-size:var(--small);letter-spacing:.12em;line-height:1.2}
.brand small{display:block;margin-top:4px;color:var(--muted);font:500 var(--caption)/1.2 var(--mono);letter-spacing:.12em}
.site-nav{display:flex;justify-content:center;gap:30px;font-size:var(--small);font-weight:700}
.site-nav a{position:relative;padding:12px 0}
.site-nav a[aria-current="page"]::after,.site-nav a:hover::after{position:absolute;right:0;bottom:5px;left:0;height:2px;background:var(--teal);content:""}
.header-cta,.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 20px;border:1px solid var(--ink);font-size:var(--small);font-weight:800}
.header-cta,.button-primary{background:var(--ink);color:#fff}
.button-secondary{background:transparent;color:var(--ink)}
.button-teal{border-color:var(--teal);background:var(--teal);color:#fff}
.button:hover,.header-cta:hover{transform:translateY(-2px)}
.menu-toggle{display:none;width:48px;height:48px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:var(--caption);font-weight:800}
.portfolio-notice,.eyebrow,.data-label{margin:0;color:var(--teal);font:600 var(--caption)/1.5 var(--mono);letter-spacing:.04em}
.portfolio-notice{display:inline-block;padding-bottom:7px;border-bottom:1px solid var(--teal)}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{letter-spacing:-.05em;line-height:1.12}
h1{font-size:var(--display)}
h2{font-size:var(--heading)}
h3{font-size:var(--title)}
.accent{color:var(--teal)}
.section-shell{width:min(calc(100% - 96px),1180px);margin:0 auto}
.home-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(520px,1.08fr);width:min(calc(100% - 48px),var(--max));min-height:670px;margin:0 auto;background:var(--surface)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:72px 48px}
.hero-copy h1{max-width:620px;margin:34px 0 24px}
.hero-copy>p:not(.portfolio-notice){max-width:560px;color:var(--muted)}
.hero-actions{display:flex;gap:10px;margin-top:28px}
.hero-photo{min-height:670px;overflow:hidden;background:var(--line)}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:52% center}
.fact-rail{display:grid;grid-template-columns:repeat(4,1fr);width:min(calc(100% - 48px),var(--max));margin:0 auto;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.fact-rail div{padding:22px 28px;border-right:1px solid var(--line)}
.fact-rail div:last-child{border-right:0}
.fact-rail dt{color:var(--muted);font-size:var(--caption)}
.fact-rail dd{margin:5px 0 0;font-size:var(--small);font-weight:800}
.section{padding:104px 0}
.section-soft{background:var(--soft)}
.section-intro{display:grid;grid-template-columns:minmax(0,.8fr) minmax(340px,.55fr);gap:80px;align-items:end;margin-bottom:52px}
.section-intro h2{max-width:680px;margin:18px 0 0}
.section-intro>p{margin:0;color:var(--muted)}
.proof-split,.portrait-split{display:grid;grid-template-columns:1.08fr .92fr;background:var(--surface)}
.proof-media,.portrait-media{min-height:620px;overflow:hidden}
.proof-media img,.portrait-media img{width:100%;height:100%;object-fit:cover}
.proof-copy,.portrait-copy{display:flex;flex-direction:column;justify-content:center;padding:72px 7vw}
.proof-copy h2,.portrait-copy h2{margin:18px 0 24px}
.proof-copy>p,.portrait-copy>p{color:var(--muted)}
.proof-points{margin:30px 0 0;padding:0;border-top:1px solid var(--line);list-style:none}
.proof-points li{display:grid;grid-template-columns:100px 1fr;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.proof-points b{color:var(--teal);font-size:var(--small)}
.proof-points span{font-size:var(--small);font-weight:700}
.program-list{border-top:1px solid var(--ink)}
.program-row{display:grid;grid-template-columns:150px minmax(240px,.75fr) minmax(320px,1.1fr) auto;gap:36px;align-items:center;padding:30px 0;border-bottom:1px solid var(--line)}
.program-row .program-code{font:600 var(--caption)/1.5 var(--mono);color:var(--teal)}
.program-row h3{margin:0}
.program-row p{margin:0;color:var(--muted);font-size:var(--small)}
.program-row .text-link{white-space:nowrap}
.text-link{display:inline-flex;align-items:center;gap:8px;margin-top:24px;border-bottom:1px solid var(--ink);font-size:var(--small);font-weight:800}
.section-action-row{margin-top:32px}
.spaced-panel,.path-result{margin-top:64px}
.method-flow{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.method-step{padding:28px;border-right:1px solid var(--line)}
.method-step:last-child{border-right:0}
.method-step .symbol{display:grid;place-items:center;width:48px;height:48px;margin-bottom:48px;border:1px solid var(--teal);color:var(--teal);font:600 var(--small)/1 var(--mono)}
.method-step h3{margin-bottom:14px}
.method-step p{margin:0;color:var(--muted);font-size:var(--small)}
.record-feature{display:grid;grid-template-columns:.72fr 1.28fr;gap:64px;align-items:center;padding:72px;background:var(--ink);color:#fff}
.record-feature h2{margin:18px 0 20px}
.record-feature>div:first-child>p:last-child{color:#cbd4dc}
.record-sheet{padding:34px;background:var(--surface);color:var(--ink)}
.record-sheet-head{display:flex;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--ink);font:600 var(--caption)/1.4 var(--mono)}
.record-sheet-body{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;padding:34px 0}
.record-sheet-body p{margin:8px 0 0;font-weight:800}
.record-arrow{color:var(--teal);font-size:var(--heading)}
.record-tags{display:flex;flex-wrap:wrap;gap:8px;padding-top:16px;border-top:1px solid var(--line)}
.record-tags span{padding:6px 9px;background:var(--soft);font-size:var(--caption);font-weight:700}
.portrait-copy blockquote{margin:28px 0;padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:var(--title);font-weight:800;line-height:1.55}
.admission-path{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.admission-path li{padding:28px;border-bottom:1px solid var(--ink);list-style:none}
.admission-path li+li{border-left:1px solid var(--line)}
.admission-path b{display:block;margin:36px 0 12px;font-size:var(--title)}
.admission-path p{margin:0;color:var(--muted);font-size:var(--small)}
.contact-panel{display:grid;grid-template-columns:.9fr 1.1fr auto;gap:60px;align-items:center;padding:54px;background:var(--soft)}
.contact-panel h2{margin:12px 0 0}
.contact-panel dl{display:grid;gap:10px;margin:0}
.contact-panel dl div{display:grid;grid-template-columns:70px 1fr;gap:14px}
.contact-panel dt{color:var(--muted);font-size:var(--small)}
.contact-panel dd{margin:0;font-size:var(--small);font-weight:700}
.site-footer{display:grid;grid-template-columns:.7fr 1fr 1fr;gap:60px;width:min(calc(100% - 48px),var(--max));margin:0 auto 24px;padding:56px;background:var(--ink);color:#fff}
.footer-brand{font-size:var(--heading);font-weight:900;letter-spacing:-.04em}
.site-footer p{color:#cbd4dc;font-size:var(--small)}
.footer-links{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;font-size:var(--small)}
.footer-meta{grid-column:1/-1;padding-top:26px;border-top:1px solid rgba(255,255,255,.2);color:#9eabb7;font-size:var(--caption)}

/* sub pages */
.page-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;width:min(calc(100% - 96px),1180px);margin:0 auto;padding:110px 0 80px;border-bottom:1px solid var(--ink)}
.page-hero h1{margin:22px 0 0;font-size:var(--page-title)}
.page-hero>div:last-child{align-self:end;color:var(--muted)}
.page-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;width:min(calc(100% - 96px),1180px);margin:0 auto;background:var(--line)}
.page-summary div{padding:24px;background:var(--surface)}
.page-summary b{display:block;margin-top:6px;font-size:var(--small)}
.principle-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.principle-grid article{padding:32px;border-right:1px solid var(--line);border-bottom:1px solid var(--ink)}
.principle-grid article:last-child{border-right:0}
.principle-grid h3{margin:44px 0 14px}
.principle-grid p{margin:0;color:var(--muted);font-size:var(--small)}
.info-list{margin:0;border-top:1px solid var(--ink)}
.info-list div{display:grid;grid-template-columns:160px 1fr;gap:40px;padding:20px 0;border-bottom:1px solid var(--line)}
.info-list dt{font-weight:800}
.info-list dd{margin:0;color:var(--muted)}
.program-detail{padding:64px 0;border-top:1px solid var(--ink)}
.program-detail-grid{display:grid;grid-template-columns:150px .8fr 1.2fr;gap:52px}
.program-detail h2{margin:0}
.program-detail .program-description{color:var(--muted)}
.program-facts{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin-top:36px;background:var(--line)}
.program-facts div{padding:18px;background:var(--surface)}
.program-facts dt{color:var(--muted);font-size:var(--caption)}
.program-facts dd{margin:4px 0 0;font-size:var(--small);font-weight:800}
.week-list{margin:0;padding:0;border-top:1px solid var(--line);list-style:none}
.week-list li{display:grid;grid-template-columns:72px 1fr;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:var(--small)}
.week-list span{color:var(--teal);font:600 var(--caption)/1.5 var(--mono)}
.method-detail{display:grid;grid-template-columns:150px .8fr 1.2fr;gap:52px;padding:52px 0;border-top:1px solid var(--ink)}
.method-detail h2{margin:0}
.method-detail p{color:var(--muted)}
.method-detail ul{margin:22px 0 0;padding-left:20px}
.method-detail li{margin:8px 0}
.artifact-wide{display:grid;grid-template-columns:1.2fr .8fr;background:var(--surface)}
.artifact-wide img{width:100%;height:100%;min-height:560px;object-fit:cover}
.artifact-wide-copy{padding:70px 6vw}
.artifact-wide-copy h2{margin:18px 0 22px}
.artifact-wide-copy p{color:var(--muted)}
.timeline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.timeline article{padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--ink)}
.timeline article:last-child{border-right:0}
.timeline h3{margin:38px 0 12px}
.timeline p{color:var(--muted);font-size:var(--small)}
.two-column{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px}
.two-column h2{margin:18px 0 0}
.schedule-table{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}
.schedule-table th,.schedule-table td{padding:18px 12px;border-bottom:1px solid var(--line);text-align:left;font-size:var(--small)}
.schedule-table th{color:var(--muted);font-size:var(--caption)}
.reservation-wrap{display:grid;grid-template-columns:.78fr 1.22fr;background:var(--ink);color:#fff}
.reservation-copy{padding:70px 6vw}
.reservation-copy h2{margin:18px 0 22px}
.reservation-copy>p{color:#cbd4dc}
.reservation-copy dl{margin:30px 0 0;border-top:1px solid rgba(255,255,255,.22)}
.reservation-copy dl div{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.22)}
.reservation-copy dt{font-size:var(--small);color:#cbd4dc}
.reservation-copy dd{margin:0;font-size:var(--small);font-weight:700}
.consult-panel{padding:54px;background:var(--surface);color:var(--ink)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.consult-panel label,.consult-panel legend{display:block;margin-bottom:16px;font-size:var(--small);font-weight:800}
.consult-panel input,.consult-panel select,.consult-panel textarea{width:100%;min-height:48px;margin-top:7px;padding:12px;border:1px solid #aebbc4;border-radius:0;background:#fff;color:var(--ink)}
.consult-panel fieldset{margin:0 0 18px;padding:0;border:0}
.interest-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.interest-options label{position:relative;margin:0}
.interest-options input{position:absolute;opacity:0}
.interest-options span{display:grid;place-items:center;min-height:48px;border:1px solid #aebbc4;background:#fff;font-size:var(--small)}
.interest-options input:checked+span{border-color:var(--teal);background:var(--teal);color:#fff}
.consent{display:flex!important;gap:10px;align-items:flex-start;font-weight:500!important}
.consent input{width:20px;min-height:20px;margin:2px 0 0}
.consult-panel .button{width:100%;margin-top:8px}
.form-error{min-height:24px;margin:10px 0 0;color:#a73939;font-size:var(--small)}
.form-success{padding:20px 0}
.form-success h3{margin:18px 0 26px;font-size:var(--heading)}
.form-success dl{border-top:1px solid var(--ink)}
.form-success dl div{display:grid;grid-template-columns:90px 1fr;padding:12px 0;border-bottom:1px solid var(--line)}
.form-success dt{font-size:var(--small);color:var(--muted)}
.form-success dd{margin:0;font-weight:800}
.text-button{padding:0;border:0;border-bottom:1px solid var(--ink);background:transparent;font-size:var(--small);font-weight:800;cursor:pointer}
.faq-list{border-top:1px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item button{display:flex;justify-content:space-between;width:100%;padding:20px 0;border:0;background:transparent;color:var(--ink);text-align:left;font-size:var(--body);font-weight:800;cursor:pointer}
.faq-answer{max-width:760px;padding:0 0 22px;color:var(--muted)}

@media(max-width:1024px){
  .site-header{grid-template-columns:auto auto;justify-content:space-between}
  .site-nav{position:fixed;inset:90px 24px auto;display:none;flex-direction:column;gap:0;padding:18px;background:var(--surface);border:1px solid var(--ink);box-shadow:0 20px 60px rgba(21,36,59,.18)}
  .site-nav.is-open{display:flex}
  .site-nav a{padding:14px 8px;border-bottom:1px solid var(--line)}
  .header-cta{display:none}.menu-toggle{display:block}
  .home-hero{grid-template-columns:1fr 1fr}.hero-copy{padding:58px 36px}.home-hero h1{font-size:var(--page-title)}
  .section-shell{width:min(calc(100% - 64px),1180px)}
  .section-intro{gap:48px}.program-row{grid-template-columns:120px .8fr 1fr}.program-row .text-link{grid-column:2/4;justify-self:start;margin-top:0}
  .record-feature{padding:52px;gap:44px}.contact-panel{grid-template-columns:1fr 1fr}.contact-panel .button{grid-column:1/-1;justify-self:start}
  .page-hero,.page-summary{width:min(calc(100% - 64px),1180px)}
  .program-detail-grid,.method-detail{grid-template-columns:110px 1fr}.program-detail-grid>div:last-child,.method-detail>div:last-child{grid-column:2}
}
@media(max-width:768px){
  :root{--display:40px;--page-title:40px;--heading:32px;--title:20px}
  .site-header{width:calc(100% - 24px);margin-top:10px;min-height:60px;padding:8px 10px}.brand{min-width:0}.brand small{display:none}
  .home-hero{grid-template-columns:1fr;width:100%;min-height:0}.hero-copy{padding:64px 22px 44px}.hero-copy h1{margin:28px 0 20px}.hero-actions{display:grid;grid-template-columns:1fr 1fr}.hero-photo{min-height:0;aspect-ratio:1/1}.hero-photo img{object-position:54% center}
  .fact-rail{grid-template-columns:1fr 1fr;width:100%}.fact-rail div:nth-child(2){border-right:0}.fact-rail div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .section{padding:64px 0}.section-shell{width:calc(100% - 44px)}.section-intro{grid-template-columns:1fr;gap:18px;margin-bottom:30px}
  .proof-split,.portrait-split{grid-template-columns:1fr}.proof-media,.portrait-media{min-height:0;aspect-ratio:4/3}.proof-copy,.portrait-copy{padding:48px 22px}
  .program-row{grid-template-columns:1fr;gap:10px;padding:22px 0}.program-row .text-link{grid-column:auto}.method-flow{grid-template-columns:1fr 1fr}.method-step{padding:24px}.method-step:nth-child(2){border-right:0}.method-step:nth-child(-n+2){border-bottom:1px solid var(--line)}.method-step .symbol{margin-bottom:20px}
  .record-feature{grid-template-columns:1fr;padding:40px 22px}.record-sheet{padding:24px}.record-sheet-body{grid-template-columns:1fr}.record-arrow{transform:rotate(90deg)}
  .admission-path{grid-template-columns:1fr}.admission-path li+li{border-left:0}.contact-panel{grid-template-columns:1fr;gap:28px;padding:42px 22px}
  .site-footer{grid-template-columns:1fr;width:100%;margin-bottom:0;padding:48px 22px;gap:24px}.footer-links{grid-template-columns:1fr 1fr}
  .page-hero{grid-template-columns:1fr;gap:22px;width:calc(100% - 44px);padding:58px 0 40px}.page-summary{grid-template-columns:1fr;width:calc(100% - 44px)}
  .principle-grid,.timeline{grid-template-columns:1fr}.principle-grid article,.timeline article{border-right:0}.program-detail,.method-detail{padding:44px 0}.program-detail-grid,.method-detail{grid-template-columns:1fr;gap:18px}.program-detail-grid>div:last-child,.method-detail>div:last-child{grid-column:auto}.program-facts{grid-template-columns:1fr 1fr}
  .artifact-wide{grid-template-columns:1fr}.artifact-wide img{min-height:0;aspect-ratio:4/3}.artifact-wide-copy{padding:48px 22px}.two-column{grid-template-columns:1fr;gap:28px}
  .reservation-wrap{grid-template-columns:1fr}.reservation-copy,.consult-panel{padding:46px 22px}.field-row{grid-template-columns:1fr}.interest-options{grid-template-columns:1fr}
  .spaced-panel,.path-result{margin-top:36px}
}
@media(max-width:390px){
  .hero-actions{grid-template-columns:1fr}.fact-rail{grid-template-columns:1fr}.fact-rail div{border-right:0!important;border-bottom:1px solid var(--line)}
  .method-flow{grid-template-columns:1fr}.method-step{border-right:0!important;border-bottom:1px solid var(--line)}
  .program-facts{grid-template-columns:1fr}.record-sheet-head{display:grid;gap:8px}.footer-links{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button:hover,.header-cta:hover{transform:none}}
