/* PSD 900 × 7842px의 좌표와 타이포그래피를 기준으로 합니다. */
@font-face{font-family:'NanumBarunGothic';src:url('assets/fonts/NanumBarunGothicLight.otf') format('opentype');font-weight:300;font-display:swap}
@font-face{font-family:'NanumBarunGothic';src:url('assets/fonts/NanumBarunGothic.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'NanumBarunGothic';src:url('assets/fonts/NanumBarunGothicBold.otf') format('opentype');font-weight:700;font-display:swap}
@font-face{font-family:'NanumMyeongjo';src:url('assets/fonts/NanumMyeongjo.otf') format('opentype');font-weight:400;font-display:swap}
@font-face{font-family:'NanumMyeongjo';src:url('assets/fonts/NanumMyeongjoBold.otf') format('opentype');font-weight:700;font-display:swap}
:root{--u:min(1px,.1111111111vw);--bg:#2f2f2f;--gold-bg:#776037;--gold:#e2b662;--teal:#02fbfc;--sans:'NanumBarunGothic',sans-serif;--serif:'NanumMyeongjo',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:20px}body{margin:0;background:var(--bg);color:#fff;font-family:var(--sans);font-size:calc(26 * var(--u));font-weight:300;line-height:calc(46 * var(--u));word-break:keep-all;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,p,figure,dl,dd{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400}h2,h3{font-size:calc(29.7253 * var(--u));line-height:calc(46 * var(--u))}ul,ol{list-style:none;margin:0;padding:0}em{font-style:normal;color:var(--gold)}[hidden]{display:none!important}a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--teal);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;left:20px;top:-100px;background:var(--teal);color:var(--bg);padding:12px;z-index:100;font-size:16px}.skip-link:focus{top:15px}.page-shell{max-width:900px;margin:auto;position:relative}.container{width:calc(746 * var(--u));margin-inline:auto}.section-gold{background:var(--gold-bg)}
.button{display:inline-flex;justify-content:center;align-items:center;width:calc(261 * var(--u));height:calc(104 * var(--u));border:2px solid #fff;background:transparent;font-family:var(--sans);font-weight:300;font-size:calc(28 * var(--u));line-height:1.5;white-space:nowrap;transition:background .2s,color .2s}.button:hover{background:#fff;color:var(--bg)}.button-accent{border-color:var(--teal);color:var(--teal)}.button-accent:hover{background:var(--teal);color:var(--bg)}
.header{height:calc(138 * var(--u));position:relative;z-index:20}.header-inner{height:100%;width:calc(800 * var(--u));margin:auto;border-bottom:1px solid #666;position:relative}.brand{position:absolute;left:calc(10 * var(--u));top:calc(49 * var(--u));z-index:2}.brand img{width:calc(116 * var(--u));height:calc(51 * var(--u))}.header nav{position:absolute;inset:0}.header nav a{position:absolute;top:calc(34 * var(--u));font-size:calc(28 * var(--u));line-height:calc(80 * var(--u));letter-spacing:-.025em}.header nav a:nth-child(1){left:calc(272 * var(--u))}.header nav a:nth-child(2){left:calc(399 * var(--u))}.header nav a:nth-child(3){left:calc(600 * var(--u))}.header nav a:nth-child(4){left:calc(725 * var(--u));color:var(--teal)}.header nav a:hover{color:var(--gold)}.menu-toggle{display:none}
.hero{height:calc(886 * var(--u));background:url('assets/hero-background.webp') center bottom/calc(900 * var(--u)) calc(1024 * var(--u)) no-repeat;overflow:hidden}.hero-inner{height:100%;position:relative}.hero-copy h1{position:absolute;left:0;top:calc(83 * var(--u));font-size:calc(52 * var(--u));line-height:calc(80 * var(--u));letter-spacing:-.025em}.hero-description{position:absolute;left:0;top:calc(265 * var(--u));font-size:calc(23 * var(--u));line-height:calc(46 * var(--u));color:#a2a1a1}.private-note{position:absolute;left:calc(-2 * var(--u));top:calc(552 * var(--u));font-size:calc(23 * var(--u));line-height:calc(46 * var(--u));color:var(--gold)}.private-note:before{content:'';position:absolute;top:calc(-28 * var(--u));left:calc(2 * var(--u));width:calc(34 * var(--u));height:1px;background:#a7894d}.hero-actions{position:absolute;left:0;top:calc(685 * var(--u));display:flex;gap:calc(20 * var(--u))}
.about{padding:calc(68 * var(--u)) 0 calc(77 * var(--u))}.about h2{color:var(--gold);white-space:nowrap;margin-left:calc(-3 * var(--u));font-size:calc(29.7253 * var(--u))}.about-copy>p{margin-top:calc(31 * var(--u));line-height:calc(46 * var(--u));letter-spacing:0}.film-frame{width:100%;aspect-ratio:746/1326;margin-top:calc(64 * var(--u));background:#000;overflow:hidden}.film-frame video{width:100%;height:100%;display:block;object-fit:contain}.media-empty,.portfolio-empty{height:100%;padding:calc(41 * var(--u)) calc(49 * var(--u));font-size:calc(23 * var(--u));line-height:calc(46 * var(--u));font-weight:300}.media-empty{background:#000}
.portfolio{padding:calc(68 * var(--u)) 0 calc(69 * var(--u))}.section-heading{display:flex;align-items:center;justify-content:space-between;min-height:calc(46 * var(--u));margin-bottom:calc(67 * var(--u))}.section-heading h2{margin-left:calc(-3 * var(--u))}.swipe-hint{font-size:calc(23 * var(--u));color:#999}.portfolio-view{width:100%;overflow:hidden;touch-action:pan-y}.portfolio-track{display:flex;transition:transform .4s ease;align-items:stretch}.portfolio-empty{flex:0 0 100%;min-width:0;aspect-ratio:746/933;background:#5c5c5c}.portfolio-slide{flex:0 0 100%;min-width:0;position:relative}.portfolio-slide img{width:100%;aspect-ratio:4/5;object-fit:contain;background:#5c5c5c}.portfolio-slide figcaption{position:absolute;bottom:0;left:0;right:0;padding:10px 20px;background:#0009;font-size:16px;line-height:1.6}.empty-pagination{display:flex;justify-content:center;gap:calc(6 * var(--u));margin-top:calc(38 * var(--u));height:calc(14 * var(--u))}.empty-pagination i{display:block;width:calc(14 * var(--u));height:calc(14 * var(--u));border-radius:50%;background:#5c5c5c}.carousel-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:20px;min-height:44px}.carousel-arrow{background:none;border:0;width:44px;height:44px;font-size:22px}.carousel-arrow:disabled{opacity:.3;cursor:default}.carousel-dots{display:flex;flex-wrap:wrap;justify-content:center}.carousel-dots button{width:28px;height:44px;background:none;border:0;display:grid;place-items:center}.carousel-dots button:after{content:'';width:10px;height:10px;border-radius:50%;background:#5c5c5c}.carousel-dots button[aria-current=true]:after{background:var(--gold)}.portfolio-filters{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.portfolio-filters button{background:none;border:1px solid #777;padding:5px 12px;font-size:16px;line-height:1.6}.portfolio-filters button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.curriculum{padding:calc(68 * var(--u)) 0 calc(77 * var(--u))}.class-intro h2{margin-left:calc(-2 * var(--u))}.class-intro>p{margin-top:calc(40 * var(--u));line-height:calc(46 * var(--u))}.class-benefits{display:flex;flex-direction:column;gap:calc(20 * var(--u));margin-top:calc(63 * var(--u))}.class-benefits li{border:2px solid #04fffb;height:calc(84 * var(--u));display:flex;align-items:center;justify-content:space-between;padding:0 calc(24 * var(--u))}.class-benefits h3{font-size:calc(29.72 * var(--u));font-weight:700;color:#04fffb;line-height:calc(46 * var(--u))}.class-benefits p{font-size:calc(26 * var(--u));white-space:nowrap}.schedule-heading{display:flex;justify-content:space-between;align-items:center;gap:calc(12 * var(--u));margin-top:calc(68 * var(--u));margin-bottom:calc(50 * var(--u));height:calc(46 * var(--u))}.schedule-heading h3{white-space:nowrap;margin-left:calc(-2 * var(--u))}.schedule-heading p{font-size:calc(18 * var(--u));line-height:calc(46 * var(--u));color:var(--gold);white-space:nowrap}
.course-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #c7a057;background:#c7a057;gap:1px}.course-card{background:#534326;min-width:0}.course-card:nth-child(-n+2){grid-column:span 2}.course-card header{background:#c7a057;color:#000;height:calc(79 * var(--u));padding:calc(11 * var(--u)) calc(10 * var(--u))}.course-number{font-family:var(--serif);font-size:calc(22 * var(--u));line-height:calc(30 * var(--u));font-weight:700}.course-card h4{font-family:var(--sans);font-size:calc(16 * var(--u));font-weight:700;line-height:calc(24 * var(--u));white-space:nowrap;letter-spacing:-.03em}.course-card ul{height:calc(148 * var(--u));padding:calc(13 * var(--u)) calc(9 * var(--u));font-size:calc(15 * var(--u));font-weight:700;line-height:calc(26 * var(--u));letter-spacing:-.035em}.course-card li:before{content:'· '}.course-card:nth-child(3) li:not(:first-child):before{content:'- '}.materials-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#c7a057;border:1px solid #c7a057;margin-top:calc(34 * var(--u))}.material-block{background:var(--gold-bg)}.material-block h4{background:#c7a057;color:#000;font-size:calc(16 * var(--u));font-weight:700;line-height:calc(47 * var(--u));height:calc(47 * var(--u));text-align:center}.material-block ul{height:calc(257 * var(--u));font-size:calc(15 * var(--u));line-height:calc(26 * var(--u));font-weight:700;padding:calc(10 * var(--u)) calc(9 * var(--u));letter-spacing:-.03em}.material-block li:before{content:'· '}.class-bottom{display:flex;justify-content:flex-end;margin-top:calc(30 * var(--u))}
.contact{padding:calc(68 * var(--u)) 0 calc(289 * var(--u))}.contact h2{margin-left:calc(-3 * var(--u));white-space:nowrap}.contact-intro{margin-top:calc(40 * var(--u));line-height:calc(46 * var(--u))}.contact-grid{margin-top:calc(64 * var(--u))}.map-link{display:block;width:100%}.map-link img{width:100%;height:auto}.contact-details{margin-top:calc(64 * var(--u))}.contact-details dl>div{display:flex;gap:calc(7 * var(--u));line-height:calc(46 * var(--u))}.contact-details dt{white-space:nowrap}.contact-details dd{font-weight:300}.hours-note{color:#999}.contact-actions{display:flex;align-items:center;justify-content:space-between;margin-top:calc(65 * var(--u))}.social-links{display:flex;gap:calc(20 * var(--u))}.social-links a,.social-links button{display:grid;place-items:center;width:calc(104 * var(--u));height:calc(104 * var(--u));border:2px solid #666;background:var(--bg);padding:0}.social-links button:disabled{cursor:default;opacity:1}.social-links img{width:calc(62 * var(--u));height:calc(62 * var(--u));object-fit:contain}.social-links a:hover{border-color:var(--gold)}
footer{padding-bottom:calc(73 * var(--u))}.footer-inner{width:calc(800 * var(--u));margin:auto;border-top:1px solid #666;padding-top:calc(58 * var(--u))}.footer-meta{color:#999;line-height:calc(46 * var(--u))}.copyright{margin-top:calc(46 * var(--u))}
/* 휴대폰에서도 소개 문구는 PSD의 두 줄을 유지합니다. 질문 제목은 PSD의 실효 크기 29.7253px을 본문 폭 746px에 비례해 한 줄로 축소합니다. */
@media(max-width:600px){body{font-size:14px;line-height:1.8}.container{width:calc(100% - 40px)}h2,h3{font-size:19px;line-height:1.6}.button{height:48px;font-size:16px;border-width:1px;width:calc(261 * var(--u));min-width:130px}.hero{height:560px;background-size:auto 650px;background-position:58% bottom}.hero h1{top:38px;font-size:32px;line-height:1.55}.hero-description{top:163px;font-size:14px;line-height:1.9;max-width:100%}.hero-description{white-space:nowrap}.private-note{top:335px;font-size:15px;line-height:1.9}.private-note:before{top:-20px;width:25px}.hero-actions{top:437px;gap:12px}.about,.curriculum{padding:42px 0}.about h2{white-space:nowrap;font-size:calc(29.7253 * (100vw - 40px) / 746);letter-spacing:calc(-.22 * (100vw - 40px) / 746);line-height:1.6}.about-copy>p{margin-top:24px;line-height:1.9}.psd-break{display:none}.film-frame{margin-top:28px}.media-empty,.portfolio-empty{font-size:13px;line-height:1.8;padding:24px 20px}.portfolio{padding:42px 0}.section-heading{height:auto;min-height:30px;margin-bottom:28px;gap:16px}.swipe-hint{font-size:12px;line-height:1.6}.class-intro>p{margin-top:24px;line-height:1.9}.class-benefits{margin-top:30px;gap:12px}.class-benefits li{height:auto;min-height:62px;padding:10px 12px;gap:12px;border-width:1px}.class-benefits h3{font-size:17px;line-height:1.5}.class-benefits p{font-size:13px;line-height:1.6;white-space:normal;text-align:right}.schedule-heading{height:auto;flex-direction:column;align-items:flex-start;gap:8px;margin-top:35px;margin-bottom:24px}.schedule-heading h3{font-size:19px;white-space:normal}.schedule-heading p{font-size:12px;white-space:normal;line-height:1.6}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-card:nth-child(-n+2){grid-column:span 1}.course-card header{height:auto;min-height:93px;padding:12px 9px}.course-number{font-size:19px;line-height:1.5}.course-card h4{font-size:13px;line-height:1.6;white-space:normal}.course-card ul{height:auto;min-height:150px;padding:12px 9px;font-size:13px;line-height:1.9;letter-spacing:-.025em}.materials-grid{margin-top:20px;grid-template-columns:1fr}.material-block h4{height:auto;font-size:14px;line-height:40px}.material-block ul{height:auto;font-size:13px;line-height:1.9;padding:13px}.class-bottom{margin-top:24px}.contact{padding:42px 0 95px}.contact h2{white-space:normal;font-size:20px;line-height:1.7}.contact-intro{margin-top:25px;line-height:1.9}.contact-grid{margin-top:30px}.contact-details{margin-top:28px}.contact-details dl>div{font-size:14px;line-height:1.8;gap:5px;margin-bottom:6px}.contact-actions{margin-top:30px;gap:14px;flex-wrap:wrap}.social-links{gap:10px}.social-links a,.social-links button{width:44px;height:44px;border-width:1px}.social-links img{width:28px;height:28px}.contact-actions .button{width:140px;min-width:120px;font-size:16px}.footer-inner{width:calc(100% - 36px);padding-top:30px}.footer-meta{width:calc(100% - 4px);font-size:14px;line-height:1.9}.copyright{margin-top:26px;font-size:13px}footer{padding-bottom:40px}}
@media(max-width:480px){.header{height:76px}.header-inner{width:calc(100% - 40px)}.brand{left:0;top:24px}.brand img{width:80px;height:auto}.menu-toggle{position:absolute;right:0;top:17px;z-index:22;display:flex;flex-direction:column;justify-content:center;gap:6px;width:44px;height:44px;padding:10px;border:0;background:none}.menu-toggle span{width:24px;height:1px;background:#fff;transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(3.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-3.5px) rotate(-45deg)}.header nav{display:none;inset:76px -20px auto;background:var(--bg);padding:16px 20px;border-bottom:1px solid #666}.header nav.is-open{display:flex;flex-direction:column}.header nav a:nth-child(n){position:static;font-size:17px;line-height:45px;letter-spacing:0}.hero h1{font-size:30px}.hero-description{font-size:13px}.hero-actions .button{flex:1;min-width:0;width:auto;padding-inline:15px;font-size:15px}.hero-actions{right:0}.class-benefits h3{font-size:16px}.class-benefits p{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Photoshop과 브라우저의 글꼴 메트릭 차이를 보정합니다. 요소의 영역은 PSD 좌표를 유지합니다. */
@media(min-width:601px){
  .hero-copy h1{left:calc(-3 * var(--u));letter-spacing:calc(-1.85 * var(--u))}
  .hero-description{top:calc(261 * var(--u));letter-spacing:calc(-.15 * var(--u))}
  .private-note{top:calc(548 * var(--u));letter-spacing:calc(-.15 * var(--u))}
  .private-note:before{top:calc(-24 * var(--u))}
  .about-copy>p,.class-intro>p{letter-spacing:calc(-.4 * var(--u));transform:translateY(calc(-3 * var(--u)))}
  .film-frame{margin-top:calc(63 * var(--u))}
  .portfolio{padding-bottom:calc(75 * var(--u))}
  .contact-grid{margin-top:calc(63 * var(--u))}
  .contact-intro,.contact-details dl{letter-spacing:calc(-.25 * var(--u));transform:translateY(calc(-3 * var(--u)))}
  .footer-inner{padding-top:calc(55 * var(--u))}
  footer{padding-bottom:calc(70 * var(--u))}
}

.course-card ul,.material-block ul{font-weight:400;letter-spacing:0}
@media(min-width:601px){
  .about h2{letter-spacing:calc(-.22 * var(--u))}
  .about-copy>p,.class-intro>p{transform:translateY(calc(-1 * var(--u)))}
  .class-benefits h3{letter-spacing:calc(-.5 * var(--u))}
}
