
:root{
  --bg:#f3f0e9;
  --ink:#161616;
  --muted:#77736b;
  --line:rgba(22,22,22,.14);
  --paper:#faf8f3;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:"DM Sans",sans-serif;font-weight:300;
}
a{color:inherit;text-decoration:none}
button{font:inherit}
.site-header{
  position:fixed;z-index:20;top:0;left:0;right:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:24px 38px;
  mix-blend-mode:multiply;
}
.brand{display:flex;align-items:baseline;letter-spacing:-.04em}
.brand-main{font-family:"Allura", cursive;font-size:42px;font-weight:400;line-height:1;letter-spacing:0;transform:translateY(3px)}
.brand-dot{font-size:24px;margin-left:2px}
.brand-sub{font-family:"Allura",cursive;font-size:32px;font-weight:400;line-height:1;letter-spacing:0;margin-left:5px;text-transform:none;transform:translateY(3px)}
.nav{display:flex;gap:28px;font-size:12px;letter-spacing:.12em}
.nav a{position:relative}
.nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-5px;height:1px;background:var(--ink);transition:.3s}
.nav a:hover:after{right:0}
.menu-toggle{display:none;background:none;border:0;padding:8px}
.menu-toggle span{display:block;width:24px;height:1px;background:var(--ink);margin:5px 0}

.hero{
  min-height:100vh;padding:100px 38px 38px;
  display:grid;grid-template-columns:1.45fr .85fr;
  gap:48px;position:relative;align-items:stretch;
}
.hero-media{
  min-height:72vh;border-radius:2px;overflow:hidden;
}
.placeholder-art{
  background:
    radial-gradient(circle at 35% 35%,rgba(255,255,255,.6),transparent 24%),
    linear-gradient(145deg,#dbd2bd,#f1e3ab 34%,#dfb8b5 63%,#9ec7c2);
}
.placeholder-inner{
  height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;
  letter-spacing:.18em;font-size:12px;
}
.placeholder-inner small{margin-top:10px;letter-spacing:0;color:rgba(0,0,0,.45)}
.hero-copy{display:flex;flex-direction:column;justify-content:center;max-width:520px}
.eyebrow{font-size:11px;letter-spacing:.18em;margin:0 0 22px}
.hero h1,.section h2{
  font-family:"Playfair Display",serif;font-weight:500;letter-spacing:-.04em;
}
.hero h1{font-size:clamp(58px,7vw,112px);line-height:1.08;margin:0}
.intro{max-width:420px;font-size:16px;line-height:1.8;margin:42px 0 28px;color:#3d3a35}
.text-link{display:inline-block;width:max-content;border-bottom:1px solid var(--ink);padding-bottom:4px;font-size:13px}
.scroll-note{position:absolute;right:38px;bottom:38px;font-size:9px;letter-spacing:.17em;writing-mode:vertical-rl}

.section{padding:130px 38px;border-top:1px solid var(--line)}
.section-heading{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;margin-bottom:60px}
.section-heading h2{font-size:72px;margin:0;line-height:1}
.section-heading>p:last-child{max-width:320px;justify-self:end;color:var(--muted);line-height:1.6}

.gallery-grid{
  display:grid;grid-template-columns:repeat(12,1fr);gap:28px 20px;
}
.work-card{grid-column:span 5}
.work-card.work-large{grid-column:span 7}
.work-card.work-wide{grid-column:3 / span 8;margin-top:34px}
.art-button{appearance:none;border:0;background:none;padding:0;width:100%;cursor:pointer;text-align:left;color:inherit}
.art-placeholder{
  width:100%;aspect-ratio:4/5;display:flex;align-items:flex-end;justify-content:flex-end;
  padding:18px;font-family:"Playfair Display",serif;font-size:34px;
  transition:transform .5s ease,filter .5s ease;
}
.art-button:hover .art-placeholder{transform:scale(.985);filter:saturate(1.08)}
.texture-one{background:linear-gradient(135deg,#efe5b7 10%,#e3b2aa 42%,#b5d7d2 77%,#f4e9c8)}
.texture-two{background:radial-gradient(circle at 62% 38%,#f2d36f 0 15%,transparent 16%),linear-gradient(135deg,#e7d9c5,#b8cbc6)}
.texture-three{background:linear-gradient(155deg,#d3c4ad 0 32%,#efdc92 33% 58%,#cf9fac 59% 100%)}
.texture-four{aspect-ratio:16/9;background:linear-gradient(120deg,#d8cab0,#f5d965 36%,#d99eaf 58%,#93beb9 78%,#eee1cd)}
.work-meta{display:flex;justify-content:space-between;align-items:flex-start;padding-top:14px;border-top:1px solid var(--line);margin-top:10px}
.work-meta h3{font-size:15px;font-weight:400;margin:0 0 4px}
.work-meta p,.work-meta>span{font-size:11px;color:var(--muted);margin:0}

.about{
  display:grid;grid-template-columns:.5fr 1fr 1.4fr;gap:30px;align-items:start;
}
.about-number{font-family:"Playfair Display",serif;font-size:16px}
.about-title h2{font-size:72px;margin:0}
.about-copy{max-width:640px}
.about-copy .lead{font-family:"Playfair Display",serif;font-size:34px;line-height:1.25;margin-top:0}
.about-copy p{line-height:1.9;color:#48443e}
.about-copy .note{font-size:11px;color:var(--muted);margin-top:32px}

.contact{min-height:78vh;display:flex;flex-direction:column;justify-content:center}
.contact h2{font-size:clamp(70px,10vw,150px);line-height:.86;margin:0 0 90px}
.contact-bottom{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}
.contact-bottom p{max-width:360px;color:var(--muted);line-height:1.7}
.contact-links{display:flex;flex-direction:column;gap:8px;text-align:right}
.contact-links a{border-bottom:1px solid var(--line);padding:6px 0}
footer{
  padding:26px 38px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;font-size:11px;color:var(--muted)
}
.footer-brand{color:var(--ink)}

.modal{
  position:fixed;inset:0;z-index:50;background:rgba(243,240,233,.98);
  opacity:0;pointer-events:none;transition:.3s;
  padding:34px;
}
.modal.open{opacity:1;pointer-events:auto}
.modal-close{position:absolute;right:34px;top:24px;border:0;background:none;font-size:40px;font-weight:200;cursor:pointer}
.modal-grid{height:100%;display:grid;grid-template-columns:1.3fr .7fr;gap:60px;align-items:center}
.modal-art{height:82vh}
.modal-placeholder{height:100%;aspect-ratio:auto;background:linear-gradient(145deg,#ddcfb8,#f0db84,#cf9baa,#88b8b3)}
.modal-info h2{font-family:"Playfair Display",serif;font-size:58px;margin:0 0 38px}
.modal-info dl{margin:0}
.modal-info dl div{display:grid;grid-template-columns:110px 1fr;border-top:1px solid var(--line);padding:12px 0}
.modal-info dl div:last-child{border-bottom:1px solid var(--line)}
.modal-info dt,.modal-info dd{font-size:12px;margin:0}
.modal-info dt{color:var(--muted)}
.modal-desc{font-size:13px;line-height:1.8;color:#4c4943;margin-top:30px;max-width:420px}

@media(max-width:900px){
  .site-header{padding:20px}
  .brand-main{font-size:36px}
  .brand-sub,.brand-dot{transform:translateY(-2px)}
  .nav{
    position:fixed;inset:0;background:var(--bg);display:none;
    align-items:center;justify-content:center;flex-direction:column;
    font-size:18px;z-index:-1
  }
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .hero{grid-template-columns:1fr;padding:88px 20px 70px}
  .hero-media{min-height:58vh}
  .hero-copy{padding:36px 0}
  .scroll-note{display:none}
  .section{padding:90px 20px}
  .section-heading{grid-template-columns:1fr;margin-bottom:38px}
  .section-heading h2{font-size:56px;margin:8px 0 14px}
  .section-heading>p:last-child{justify-self:start}
  .gallery-grid{grid-template-columns:1fr}
  .work-card,.work-card.work-large,.work-card.work-wide{grid-column:auto;margin:0}
  .texture-four{aspect-ratio:4/5}
  .about{grid-template-columns:1fr}
  .about-title h2{font-size:56px}
  .about-copy .lead{font-size:28px}
  .contact-bottom{flex-direction:column;align-items:flex-start}
  .contact-links{text-align:left}
  footer{padding:20px;gap:20px;flex-direction:column}
  .modal{padding:20px}
  .modal-grid{grid-template-columns:1fr;overflow:auto;gap:28px;padding-top:50px}
  .modal-art{height:55vh}
  .modal-info h2{font-size:42px}
}

.art-photo{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform .5s ease,filter .5s ease}.art-button:hover .art-photo{transform:scale(.985);filter:saturate(1.05)}.work-wide .art-photo{aspect-ratio:16/9}@media(max-width:900px){.work-wide .art-photo{aspect-ratio:4/5}}


/* Multi-photo artwork gallery */
.photo-card-wrap{position:relative}
.photo-count{
  position:absolute;right:12px;bottom:12px;
  padding:7px 9px;background:rgba(243,240,233,.9);
  font-size:9px;letter-spacing:.13em;backdrop-filter:blur(6px)
}
.modal-stage{height:calc(100% - 104px);position:relative;background:#e9e4da;display:flex;align-items:center;justify-content:center;overflow:hidden}
.modal-main-image{width:100%;height:100%;object-fit:contain;background:#e9e4da}
.gallery-arrow{
  position:absolute;z-index:3;top:50%;transform:translateY(-50%);
  width:46px;height:46px;border-radius:50%;border:1px solid rgba(22,22,22,.16);
  background:rgba(250,248,243,.86);font-size:31px;line-height:1;cursor:pointer
}
.gallery-prev{left:14px}.gallery-next{right:14px}
.photo-badge{
  position:absolute;left:14px;top:14px;background:rgba(250,248,243,.86);
  padding:7px 9px;font-size:9px;letter-spacing:.16em
}
.modal-thumbs{height:78px;display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px}
.modal-thumb{width:64px;min-width:64px;height:64px;border:1px solid transparent;padding:0;background:transparent;cursor:pointer;opacity:.55}
.modal-thumb.active{opacity:1;border-color:var(--ink)}
.modal-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.modal-counter{font-size:10px;letter-spacing:.14em;color:var(--muted);text-align:right;margin-top:4px}

@media(max-width:900px){
  .modal-stage{height:calc(100% - 92px)}
  .modal-thumbs{height:66px}
  .modal-thumb{width:54px;min-width:54px;height:54px}
  .gallery-arrow{width:40px;height:40px}
}


/* Theme / Series filters */
.theme-filter-wrap{
  margin:-18px 0 42px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  padding:15px 0;
}
.theme-filters{display:flex;align-items:center;gap:8px 24px;flex-wrap:wrap}
.theme-filter{
  appearance:none;border:0;background:transparent;padding:5px 0;
  color:var(--muted);font-family:"DM Sans",sans-serif;font-size:10px;
  letter-spacing:.16em;cursor:pointer;position:relative
}
.theme-filter::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;
  background:var(--ink);transition:right .25s ease
}
.theme-filter:hover,.theme-filter.active{color:var(--ink)}
.theme-filter.active::after{right:0}
.work-card.theme-hidden{display:none}
.work-theme{
  margin-top:6px!important;font-size:9px!important;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink)!important
}
@media(max-width:900px){
  .theme-filter-wrap{margin:-8px 0 32px}
  .theme-filters{gap:7px 17px}
}


/* v6 category manager / BEST hero */
.best-hero-image{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block
}
#bestHeroMedia{position:relative}
.best-badge{
  position:absolute;z-index:3;left:18px;top:18px;
  padding:8px 10px;background:rgba(243,240,233,.9);
  font-size:9px;letter-spacing:.16em
}
.hero-art-open{
  position:absolute;inset:0;z-index:2;border:0;background:transparent;cursor:pointer
}
.best-hero-meta{
  margin:28px 0 0;padding-top:16px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline
}
.best-kicker{font-size:9px;letter-spacing:.15em;color:var(--muted)}
.best-hero-meta strong{font-family:"Playfair Display",serif;font-size:19px;font-weight:500}
.best-hero-meta>span:last-child{font-size:10px;color:var(--muted)}
.work-right-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.work-right-meta small{font-size:9px;color:var(--muted);letter-spacing:.05em}

@media(max-width:900px){
  .brand-sub{font-size:28px!important}
  .best-hero-meta{grid-template-columns:1fr}
}

.broken-cover{
  width:100%;aspect-ratio:4/5;align-items:center;justify-content:center;
  background:linear-gradient(145deg,#e7e0d1,#f2ebdf);
  color:var(--muted);font-size:10px;letter-spacing:.16em
}


/* Production v8 */
.theme-filter-wrap{
  margin:-18px 0 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0
}
.theme-filters{display:flex;align-items:center;gap:8px 24px;flex-wrap:wrap}
.theme-filter{
  appearance:none;border:0;background:transparent;padding:5px 0;color:var(--muted);
  font-family:"DM Sans",sans-serif;font-size:10px;letter-spacing:.16em;cursor:pointer;position:relative
}
.theme-filter::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--ink);transition:right .25s ease}
.theme-filter:hover,.theme-filter.active{color:var(--ink)}
.theme-filter.active::after{right:0}
.work-card.theme-hidden{display:none}
.work-theme{margin-top:6px!important;font-size:9px!important;letter-spacing:.13em;text-transform:uppercase;color:var(--ink)!important}
.work-right-meta{display:flex;flex-direction:column;align-items:flex-end;gap:5px}
.work-right-meta small{font-size:9px;color:var(--muted);letter-spacing:.05em}

.best-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#bestHeroMedia{position:relative}
.best-badge{
  position:absolute;z-index:3;left:18px;top:18px;padding:8px 10px;background:rgba(243,240,233,.9);
  font-size:9px;letter-spacing:.16em
}
.hero-art-open{position:absolute;inset:0;z-index:2;border:0;background:transparent;cursor:pointer}
.best-hero-meta{
  margin:28px 0 0;padding-top:16px;border-top:1px solid var(--line);
  display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:baseline
}
.best-kicker{font-size:9px;letter-spacing:.15em;color:var(--muted)}
.best-hero-meta strong{font-family:"Playfair Display",serif;font-size:19px;font-weight:500}
.best-hero-meta>span:last-child{font-size:10px;color:var(--muted)}

@media(max-width:900px){
  .brand-sub{font-size:28px!important}
  .theme-filter-wrap{margin:-8px 0 32px}
  .theme-filters{gap:7px 17px}
  .best-hero-meta{grid-template-columns:1fr}
}

/* Keep line breaks entered in the admin description */
.modal-desc{white-space:pre-line;}


/* v8.4 — compact Works gallery
   작품 목록에서는 모든 카드를 동일한 작은 썸네일 크기로 표시합니다.
   작품을 클릭하면 기존 상세 모달에서 큰 이미지와 여러 사진을 볼 수 있습니다. */
@media (min-width: 901px){
  .gallery-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:46px 24px;
    align-items:start;
  }

  .work-card,
  .work-card.work-large,
  .work-card.work-wide{
    grid-column:auto;
    margin-top:0;
    width:100%;
  }

  .art-photo,
  .work-wide .art-photo{
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
  }

  .work-meta{
    margin-top:8px;
    padding-top:10px;
  }

  .work-meta h3{font-size:13px}
  .work-meta p{font-size:10px}
}

@media (min-width: 1400px){
  .gallery-grid{
    grid-template-columns:repeat(5, minmax(0, 1fr));
  }
}

@media (max-width: 900px){
  .gallery-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:32px 14px;
  }

  .work-card,
  .work-card.work-large,
  .work-card.work-wide{
    grid-column:auto;
    margin:0;
  }

  .art-photo,
  .work-wide .art-photo{
    aspect-ratio:1 / 1;
    object-fit:cover;
  }
}

@media (max-width: 560px){
  .gallery-grid{
    grid-template-columns:1fr;
  }
}


/* v8.5 — modal placeholder visibility fix
   실제 작품 사진이 표시될 때 ARTWORK placeholder는 완전히 숨깁니다. */
.hidden{display:none!important;}

.modal-main-image{
  flex:1 1 auto;
  min-width:0;
}

.modal-placeholder{
  width:100%;
  height:100%;
  flex:1 1 100%;
}


/* v8.7 bilingual language selector */
.lang-toggle{
  display:flex;
  align-items:center;
  gap:6px;
  margin-left:auto;
  margin-right:24px;
  font-size:10px;
  letter-spacing:.12em;
}
.lang-btn{
  border:0;
  background:transparent;
  padding:3px 0;
  color:var(--muted);
  cursor:pointer;
  font:inherit;
  letter-spacing:.12em;
}
.lang-btn.active{color:var(--ink);border-bottom:1px solid var(--ink)}
.lang-toggle span{color:var(--muted)}
@media(max-width:900px){
  .lang-toggle{margin-right:10px}
}

/* v8.8 — Works heading cleanup after removing temporary helper text */
.section-heading{
  grid-template-columns:1fr 1fr;
}
@media(max-width:900px){
  .section-heading{grid-template-columns:1fr;}
}


/* v9 Notice board */
.notice-heading{margin-bottom:36px}
.notice-list{border-top:1px solid var(--line)}
.notice-row{
  width:100%;
  display:grid;
  grid-template-columns:150px 1fr 40px;
  gap:18px;
  align-items:center;
  padding:22px 4px;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:var(--ink);
  text-align:left;
  cursor:pointer;
}
.notice-row:hover .notice-title-text{opacity:.55}
.notice-date{font-size:10px;letter-spacing:.12em;color:var(--muted)}
.notice-title{display:flex;gap:12px;align-items:center;font-family:"Playfair Display",serif;font-size:22px}
.notice-pin{
  display:inline-block;
  padding:4px 6px;
  border:1px solid var(--line);
  font-family:"DM Sans",sans-serif;
  font-size:8px;
  letter-spacing:.12em;
}
.notice-arrow{text-align:right;font-size:17px}
.notice-empty{padding:34px 0;color:var(--muted);font-size:12px}

.notice-modal{
  position:fixed;inset:0;z-index:80;
  background:rgba(22,22,22,.42);
  display:none;
  align-items:center;justify-content:center;
  padding:28px;
}
.notice-modal.open{display:flex}
.notice-modal-card{
  position:relative;
  width:min(760px,96vw);
  max-height:88vh;
  overflow:auto;
  background:var(--paper);
  padding:48px;
}
.notice-modal-close{
  position:absolute;right:24px;top:18px;
  border:0;background:transparent;font-size:32px;cursor:pointer;
}
.notice-modal-card h2{
  font-family:"Playfair Display",serif;
  font-size:46px;
  line-height:1.05;
  margin:0 0 34px;
}
.notice-modal-content{
  white-space:pre-line;
  font-size:14px;
  line-height:1.9;
  color:#4a4640;
}

@media(max-width:700px){
  .notice-row{grid-template-columns:90px 1fr 24px;padding:18px 0}
  .notice-title{font-size:17px}
  .notice-modal-card{padding:34px 24px}
  .notice-modal-card h2{font-size:34px}
}
