
:root{
  --color-navy:#1E2A38; --color-navy-deep:#141D28; --color-gold:#C9A227; --color-parchment:#F4E7C1;
  --color-background:#FAF4E4; --color-surface:#FFFCF4; --color-border:#E5D8B8;
  --color-bg-sky:#E3EDF5; --color-bg-sage:#E3EDE0; --color-bg-blush:#F8E7DA; /* 띠마다 밝고 은은한 바탕으로 리듬을 준다(2026-10-31) */
  --color-text-primary:#1E2A38; --color-text-secondary:#4E5866; --color-text-muted:#6B6555;
  --color-text-inverse:#F7EFD8; --color-text-inverse-muted:#C9C2AE;
  --color-primary:#1E2A38; --color-on-primary:#FBF4E0; --color-accent-text:#7A5C0A; --color-focus:#C9A227;
  --font-sans:'Geist','Pretendard Variable','Pretendard',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --font-mono:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --font-quote:'Noto Serif KR','AppleMyungjo','Batang',serif; /* 예외: 교수님 말씀 인용에만 */
  --font-greek:'Gentium Plus','Times New Roman',serif;
  --radius-sm:6px; --radius-md:10px; --radius-lg:14px;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-sans);font-size:17px;line-height:1.75;word-break:keep-all}
a{color:inherit;text-underline-offset:3px}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.narrow{max-width:820px}
.mock{background:var(--color-navy-deep);color:var(--color-text-inverse-muted);font-size:13px;text-align:center;padding:6px 16px;border-bottom:1px solid rgba(201,162,39,.25)}
.eyebrow{font-family:var(--font-mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent-text);margin:0 0 10px}

/* 머리 · 메뉴 */
header.site{background:var(--color-navy);color:var(--color-text-inverse);position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(201,162,39,.25)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{text-decoration:none;display:flex;flex-direction:column;justify-content:center;min-height:44px;line-height:1.25}
.brand b{font-size:16px;font-weight:700}
.brand span{font-size:12px;color:var(--color-gold);letter-spacing:.04em}
#nav{display:flex;align-items:center;gap:2px}
.brand{flex-direction:row!important;align-items:center;gap:10px}
.brand .bt{display:flex;flex-direction:column}
.brand .bh{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:1px solid rgba(201,162,39,.5);color:var(--color-gold)}
.brand .bh .ico{width:17px;height:17px}
.to-top{position:fixed;right:20px;bottom:20px;z-index:30;width:52px;height:52px;border-radius:50%;border:1px solid rgba(201,162,39,.6);background:var(--color-navy);color:var(--color-gold);display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 20px -8px rgba(20,29,40,.6)}
.to-top.show{display:flex}
.to-top svg{width:22px;height:22px}
@media print{.to-top{display:none!important}}
#nav a{text-decoration:none;font-size:15px;color:var(--color-text-inverse-muted);padding:10px 10px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-sm)}
#nav a:hover{color:var(--color-text-inverse);background:rgba(244,231,193,.08)}
#nav a[aria-current="page"]{color:var(--color-gold)}
header.site .lang{color:var(--color-gold)}
.hright{display:flex;align-items:center;gap:6px}
.hsearch{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-sm);color:var(--color-text-inverse)}.hsearch svg{width:20px;height:20px}.hsearch:hover{background:rgba(244,231,193,.08)}.hsearch.m{display:none}
.subs{margin:8px 0 0;font-size:15px;color:var(--color-text-secondary)}.subs span{margin-right:8px}.subs a{display:inline-flex;align-items:center;min-height:44px}
.menu-btn{display:none;min-height:44px;min-width:44px;padding:0 14px;border:1px solid rgba(244,231,193,.4);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-inverse);font:600 15px var(--font-sans);cursor:pointer}

/* 페이지 머리 */
.page-head{background:var(--color-navy);color:var(--color-text-inverse);padding:48px 0 44px}
.page-head .eyebrow{color:var(--color-gold)}
.page-head h1{font-size:44px;line-height:1.2;margin:0;font-weight:800;color:#FBF4E0}
.page-head p{margin:12px 0 0;color:var(--color-text-inverse-muted);font-size:18px;max-width:760px}
.crumbs{font-size:14px;color:var(--color-text-inverse-muted);margin:0 0 12px}
.crumbs a{color:var(--color-text-inverse-muted)}

section.band{padding:56px 0;border-top:1px solid var(--color-border)}
section.band:first-of-type{border-top:0}
h2{font-size:28px;line-height:1.3;margin:0 0 8px}
h3{font-size:20px;margin:0 0 8px}
.lead{font-size:18px;color:var(--color-text-secondary)}
.muted{color:var(--color-text-muted)}
p,li{color:var(--color-text-secondary)}

/* 칩 · 카드 · 목록 */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:9999px;text-decoration:none;font-size:15px;color:var(--color-text-primary)}
.chip .n{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}
.chip:hover{border-color:var(--color-accent-text)}
.testament{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:24px 0;border-top:1px solid var(--color-border)}
.testament:first-of-type{border-top:0;padding-top:0}
.testament h3{margin:8px 0 0;font-size:18px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.card{text-decoration:none;display:flex;flex-direction:column;gap:4px;color:var(--color-text-primary)}
.thumb{position:relative;display:block;aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;background:var(--color-border);margin-bottom:10px}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.len{position:absolute;right:8px;bottom:8px;background:rgba(20,29,40,.85);color:#fff;font-size:12px;padding:2px 8px;border-radius:var(--radius-sm)}
.lane{font-size:13px;font-weight:600;color:var(--color-accent-text)}
.ref{font-size:18px;font-weight:700}
.ttl{color:var(--color-text-secondary);font-size:15px}
.card:hover .ref{text-decoration:underline;text-underline-offset:4px}
.rows{list-style:none;margin:0;padding:0}
.row{border-top:1px solid var(--color-border)}
.row a{display:grid;grid-template-columns:120px 1fr auto;gap:16px;align-items:center;padding:12px 0;text-decoration:none;color:var(--color-text-primary);min-height:44px}
.row img{width:120px;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-sm);background:var(--color-border);display:block}
.row .r{font-weight:700}
.row .t{display:block;font-size:15px;color:var(--color-text-secondary)}
.row .d{font-family:var(--font-mono);font-size:12px;color:var(--color-text-muted)}
.row a:hover .r{text-decoration:underline}

/* 장 지도 */
.chmap{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:6px}
.chmap a,.chmap>span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;border-radius:var(--radius-sm);text-decoration:none;font-weight:700;font-size:15px}
.chmap a{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-primary)}
.chmap a small{font-family:var(--font-mono);font-size:12px;font-weight:400;color:var(--color-accent-text)}
.chmap a:hover{border-color:var(--color-accent-text)}
.chmap>span{color:var(--color-text-muted);border:1px dashed var(--color-border);font-weight:400}

/* 교수님께 받을 내용 */
.todo{border:2px dashed #C9A227;background:#FFF8E3;border-radius:var(--radius-md);padding:16px 20px;margin:20px 0}
.todo b{display:block;font-size:14px;color:#7A5C0A;margin-bottom:4px}
.todo p,.todo li{color:#5A4A1E;font-size:15px;margin:4px 0}
.todo ul{margin:4px 0;padding-left:20px}

/* 재생기 */
.player{position:relative;aspect-ratio:16/9;border-radius:var(--radius-lg);overflow:hidden;background:#000;max-width:960px}
.player button{all:unset;cursor:pointer;position:absolute;inset:0;display:block}
.player button img{width:100%;height:100%;object-fit:cover;display:block;opacity:.9}
.player button .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:84px;height:84px;border-radius:50%;background:rgba(201,162,39,.95);display:flex;align-items:center;justify-content:center}
.player button .play svg{width:34px;height:34px;margin-left:6px;fill:#141D28}
.player button:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* 버튼 · 입력 */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 22px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-on-primary);text-decoration:none;font-weight:700;border:0;font-family:inherit;font-size:16px;cursor:pointer}
.btn.ghost{background:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}
.btn:hover{opacity:.92}
.field{display:flex;flex-direction:column;gap:6px}
.field span{font-size:14px;font-weight:600;color:var(--color-text-secondary)}
.field input,.field textarea{font:inherit;font-size:16px;min-height:48px;padding:10px 14px;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;color:var(--color-text-primary)}
.field textarea{min-height:160px;resize:vertical}

/* 바닥 */
footer.site{background:var(--color-navy-deep);color:var(--color-text-inverse-muted);padding:36px 0 48px;font-size:14px;margin-top:0}
footer.site .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer.site a{color:var(--color-text-inverse-muted);display:inline-flex;align-items:center;min-height:44px}
.invite{background:var(--color-navy);color:var(--color-text-inverse);border-top:3px solid var(--color-gold);border-radius:var(--radius-lg);padding:32px;box-shadow:0 16px 36px -18px rgba(20,29,40,.55)}
.invite .eyebrow{color:var(--color-gold);margin-bottom:8px}
.invite h3{margin:0 0 8px;font-size:24px;color:#FBF4E0}
.invite p{margin:0 0 16px;color:var(--color-text-inverse-muted)}
.btn-outline{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border:2px solid var(--color-gold);border-radius:var(--radius-md);color:var(--color-gold);text-decoration:none;font-size:17px;font-weight:700;transition:background .15s,color .15s}
.btn-outline:hover{background:var(--color-gold);color:var(--color-navy-deep)}
.btn-outline svg{width:20px;height:20px}
.invite .mail{font-size:13px;margin:12px 0 0;color:var(--color-text-inverse-muted)}

@media (max-width:1100px){
  .menu-btn{display:inline-flex;align-items:center}
  .hsearch.m{display:inline-flex}.hsearch.d{display:none}
  #nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--color-navy);flex-direction:column;align-items:stretch;padding:8px 16px 16px;border-bottom:1px solid rgba(201,162,39,.25)}
  #nav.open{display:flex}
  #nav a{padding:12px 8px;font-size:17px}
  #nav .lang{align-self:flex-start;margin:8px 0 0}
  header.site .wrap{position:relative}
}
@media (max-width:760px){
  .wrap{padding:0 16px}
  .page-head{padding:36px 0 32px}
  .page-head h1{font-size:32px}
  .page-head p{font-size:16px}
  section.band{padding:40px 0}
  h2{font-size:24px}
  .cards{grid-template-columns:1fr}
  .testament{grid-template-columns:1fr;gap:12px}
  .row a{grid-template-columns:96px 1fr;gap:12px}
  .row img{width:96px}
  .row .d{grid-column:2}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.lang{display:inline-flex;align-items:center;gap:6px;min-height:44px;min-width:44px;padding:0 12px;margin-left:8px;
  border:1px solid currentColor;border-radius:9999px;background:transparent;color:inherit;font:600 14px/1 var(--font-sans);cursor:pointer;opacity:.9}
.lang:hover{opacity:1}
.lang svg{width:16px;height:16px}
@media (max-width:600px){
  header .wrap{position:relative}
  .lang{position:absolute;right:16px;top:10px;margin:0}
  nav a{padding:10px 8px}
  html[lang="en"] h1{font-size:32px}
}

@media (max-width:600px){header.site .lang{position:static}}

#invite-form{margin-top:8px}
.kind{border:0;padding:0;margin:0 0 20px;display:flex;flex-wrap:wrap;gap:8px}
.kind legend{font-size:14px;font-weight:600;margin-bottom:10px;padding:0;color:var(--color-text-inverse-muted)}
.kind legend em{font-style:normal;font-weight:400;font-size:13px}
.opt{position:relative;display:inline-flex}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:9999px;font-size:15px;cursor:pointer;border:1px solid rgba(201,162,39,.5);color:var(--color-parchment)}
.opt input:checked+span{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-navy-deep);font-weight:600}
.opt input:focus-visible+span{outline:3px solid var(--color-focus);outline-offset:2px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.fld span{font-size:14px;font-weight:600;color:var(--color-text-inverse-muted)}
.fld input,.fld textarea{font:inherit;font-size:16px;min-height:46px;padding:10px 14px;border-radius:var(--radius-sm);background:rgba(244,231,193,.06);border:1px solid rgba(244,231,193,.32);color:#FBF4E0}
.fld textarea{resize:vertical;min-height:88px}
.fld input::placeholder,.fld textarea::placeholder{color:rgba(244,231,193,.5)}
.fld input:focus-visible,.fld textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:1px}
.fld input:user-invalid{border-color:#E0806B}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
#invite-form .btn-outline{width:100%;justify-content:center;cursor:pointer;background:transparent;font:inherit;font-size:17px;font-weight:700;margin-top:4px}
#invite-form .btn-outline:disabled{opacity:.6;cursor:progress}
.form-status{min-height:24px;margin:12px 0 0;font-size:15px;font-weight:600}
.form-status a,.invite .mail a{color:var(--color-parchment);text-underline-offset:3px}
.invite .mail{font-family:var(--font-sans);font-size:13px;line-height:1.6}
@media (max-width:600px){ .row2{grid-template-columns:1fr;gap:0} }

.foot-links{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.foot-links .ext{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid rgba(127,127,127,.4);border-radius:9999px;color:inherit;text-decoration:none;font:500 14px var(--font-sans,sans-serif);background:transparent;cursor:pointer}
.foot-links .ext:hover{border-color:currentColor}
.foot-links svg{width:18px;height:18px}
.share-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.share-row.in-foot{flex-basis:100%;margin-top:12px}
.sh-lab{font:600 14px var(--font-sans,sans-serif);margin-right:4px}
.sh{position:relative;display:inline-grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;text-decoration:none;cursor:pointer}
.sh:hover .sh-ic{transform:translateY(-1px);box-shadow:0 4px 10px -4px rgba(0,0,0,.35)}
.sh-t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sh-ic{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:50%;flex:none;transition:transform .15s}
.sh-ic svg{width:24px;height:24px}
.sh-ic.kakao{background:#FEE500}
.sh-ic.fb{background:#1877F2}
.sh-ic.ig{background:radial-gradient(circle at 30% 107%,#FDF497 0%,#FD5949 45%,#D6249F 60%,#285AEB 90%)}
.sh-ic.band{background:#00C73C}
.sh-ic.plain{background:#F4E7C1;box-shadow:inset 0 0 0 1px rgba(30,42,56,.22)}
.share-row{gap:4px 6px}
@media (prefers-reduced-motion:reduce){.sh-ic{transition:none}.sh:hover .sh-ic{transform:none}}
@media (max-width:400px){.share-row .sh-lab{display:none}}
.sh-msg{flex-basis:100%;font-size:14px;min-height:0}
.sh-msg:empty{display:none}
@media (pointer:coarse){.share-row .sh-mail{display:none!important}}
@media not all and (pointer:coarse){.share-row .sh-sms{display:none!important}}
.foot2{flex-basis:100%;display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(127,127,127,.28);font-size:13px}
.foot2 a{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-underline-offset:3px}
.foot2 .credit{opacity:.8;text-decoration:none}
.foot2 .credit:hover{opacity:1;text-decoration:underline}
@media print{.foot-links,.share-row{display:none!important}}
