
:root{
  --paper:#f6f4ef;
  --ink:#171715;
  --muted:#77736d;
  --soft:#969087;
  --line:rgba(23,23,21,.14);
  --veil:rgba(246,244,239,.09);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue","Pretendard","Apple SD Gothic Neo",Arial,sans-serif;
  letter-spacing:-.012em;line-height:1.72;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{width:min(1180px,calc(100% - 64px));margin:0 auto}

.site-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:23px 32px;font-size:11px;letter-spacing:.025em
}
.brand{font-size:14px;letter-spacing:-.025em}
.nav{display:flex;align-items:center;gap:22px}
.nav a{color:#55514c;transition:opacity .25s ease}
.nav a[aria-current="page"]{color:var(--ink)}
.nav a:hover{opacity:.52}

.media{position:relative;overflow:hidden;background:#ddd9d2}
.media::after{
  content:"";position:absolute;inset:0;background:var(--veil);
  pointer-events:none;transition:opacity .8s ease
}
.media img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.86) contrast(.94) brightness(1.01)
}
.clickable img{
  transition:transform 1.15s cubic-bezier(.2,.6,.2,1),filter 1.1s ease
}
@media (hover:hover) and (pointer:fine){
  .clickable:hover img{
    transform:scale(1.035) translate3d(0,-.35%,0);
    filter:saturate(.92) contrast(.96) brightness(1.02)
  }
  .clickable:hover::after{opacity:.45}
}

/* HOME */
.home-page{min-height:100vh;display:flex;flex-direction:column}
.home-main{
  flex:1;display:flex;align-items:center;justify-content:center;
  padding:34px 0 74px
}
.home-hero{width:min(790px,63vw)}
.home-hero .media{aspect-ratio:16/9}
.home-hero .media img{object-position:50% 53%}
.home-caption{
  margin-top:16px;text-align:right;
  font-size:10.5px;font-style:italic;
  color:var(--muted);letter-spacing:.01em
}

/* INNER */
.page-main{padding:76px 0 0}
.page-eyebrow{margin-bottom:52px;font-size:10.5px;color:var(--muted)}
.footer{
  border-top:1px solid var(--line);
  padding:18px 0 32px;font-size:9px;color:#77726b;letter-spacing:.025em
}

/* FILM */
.service-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:start
}
.service .media{aspect-ratio:16/9}
.service h1,.service h2{
  margin:13px 0 0;font-size:15px;font-weight:500;letter-spacing:-.012em
}
.service-kicker{margin-top:3px;font-size:10.5px;color:var(--muted)}
.service-summary{
  max-width:430px;margin:14px 0 26px;
  font-size:11.5px;line-height:1.82;color:#514e49
}
.package-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:26px
}
.package-block{min-width:0}
.package-name{
  margin-bottom:9px;font-size:11.5px;font-weight:500
}
.package-copy{
  margin:0;padding:0;list-style:none;
  font-size:10.5px;line-height:1.82;color:#5d5953
}
.package-price{
  margin-top:13px;font-size:14px;font-weight:500;letter-spacing:-.018em
}
.price-vat{
  margin-left:3px;font-size:9px;font-weight:400;color:#938d85
}
.fold-group{margin-top:28px}
.clean-details{border-top:1px solid var(--line)}
.clean-details:last-child{border-bottom:1px solid var(--line)}
.clean-details summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;
  justify-content:space-between;gap:20px;padding:11px 0;
  font-size:10.5px;color:#4f4b46
}
.clean-details summary::-webkit-details-marker{display:none}
.clean-details summary::after{
  content:"+";font-size:14px;font-weight:300;color:#6f6a63
}
.clean-details[open] summary::after{content:"−"}
.detail-body{
  padding:1px 0 20px;font-size:10.25px;line-height:1.82;color:#666159
}
.detail-body ul{list-style:none;padding:0;margin:0}
.detail-body li+li{margin-top:4px}
.detail-body strong{font-weight:500;color:#44413d}
.detail-note{
  margin-top:12px;font-size:9px;line-height:1.7;color:#948e86
}
.guide-link{
  display:inline-block;margin-top:18px;padding-bottom:1px;
  border-bottom:1px solid rgba(23,23,21,.42);font-size:10.25px
}
.guide-link:hover{opacity:.55}
.film-contact{
  margin-top:150px;padding:30px 0 120px;border-top:1px solid var(--line)
}
.film-contact p{
  margin:0 0 15px;max-width:520px;
  font-size:10.75px;line-height:1.85;color:#4d4944
}
.text-link{
  display:inline-block;padding-bottom:1px;
  border-bottom:1px solid rgba(23,23,21,.42);
  font-size:10.25px
}
.text-link:hover{opacity:.55}

/* ARCHIVE */
.archive-section + .archive-section{margin-top:86px}
.archive-title{
  margin:0 0 18px;font-size:11px;font-weight:500;color:#4f4b46
}
.archive-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:20px
}
.archive-thumb{
  position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:#ddd9d2
}
.archive-thumb img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.88) contrast(.95) brightness(1.01);
  transition:transform .9s cubic-bezier(.2,.6,.2,1),filter .8s ease
}
.archive-thumb::after{
  content:"";position:absolute;inset:0;background:rgba(246,244,239,.04);
  pointer-events:none
}
@media (hover:hover) and (pointer:fine){
  .archive-thumb:hover img{
    transform:scale(1.025);
    filter:saturate(.95) contrast(.97) brightness(1.02)
  }
}
.shorts-row{
  display:flex;gap:14px;overflow-x:auto;padding:0 0 8px;
  scroll-snap-type:x proximity;scrollbar-width:thin
}
.short-thumb{
  flex:0 0 clamp(150px,17vw,210px);
  aspect-ratio:9/16;overflow:hidden;background:#ddd9d2;
  scroll-snap-align:start
}
.short-thumb img{
  width:100%;height:100%;object-fit:cover;
  filter:saturate(.88) contrast(.95) brightness(1.01);
  transition:transform .9s cubic-bezier(.2,.6,.2,1),filter .8s ease
}
@media (hover:hover) and (pointer:fine){
  .short-thumb:hover img{
    transform:scale(1.025);
    filter:saturate(.95) contrast(.97) brightness(1.02)
  }
}
.archive-space{height:125px}

/* ABOUT */
.about-layout{max-width:760px;margin:0}
.about-image{width:min(680px,100%);aspect-ratio:16/9}
.about-image img{object-position:center 55%}
.about-copy{width:min(560px,100%);margin-top:32px}
.about-copy .tagline{
  margin:0 0 9px;font-size:11.25px;font-weight:500;line-height:1.72
}
.about-copy p{
  margin:0;font-size:10.5px;line-height:1.82;color:#4e4a45
}
.about-copy p+p{margin-top:6px}
.about-links{
  display:flex;gap:16px;flex-wrap:wrap;
  margin-top:23px;font-size:9.75px;color:#67625b
}
.about-links a{
  border-bottom:1px solid rgba(23,23,21,.35);padding-bottom:1px
}
.about-links a:hover{opacity:.55}
.about-space{height:120px}

/* CONTACT */
.contact-intro{
  max-width:520px;margin:0 0 42px;
  font-size:10.75px;line-height:1.82;color:#4d4944
}
.contact-list{border-top:1px solid var(--line)}
.contact-link{
  display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:baseline;
  padding:15px 0;border-bottom:1px solid var(--line);transition:opacity .25s ease
}
.contact-link:hover{opacity:.55}
.contact-name{font-size:11px;font-weight:500}
.contact-id{font-size:10.5px;color:#6d6861}
.contact-space{height:120px}

/* 404 */
.not-found{
  min-height:calc(100vh - 68px);display:flex;align-items:center;
  justify-content:center;text-align:center;padding:50px 20px
}
.not-found h1{margin:0 0 8px;font-size:16px;font-weight:500}
.not-found p{margin:0 0 20px;font-size:10.5px;color:var(--muted)}
.not-found a{
  font-size:10px;border-bottom:1px solid rgba(23,23,21,.42)
}

@media(max-width:820px){
  .wrap{width:min(100% - 30px,1180px)}
  .site-header{padding:18px 15px}
  .nav{gap:13px}
  .home-main{padding:28px 0 64px}
  .home-hero{width:88vw}
  .home-caption{margin-top:13px;font-size:10px}
  .page-main{padding-top:54px}
  .page-eyebrow{margin-bottom:34px}
  .service-grid{grid-template-columns:1fr;gap:74px}
  .package-grid{gap:18px}
  .film-contact{margin-top:105px;padding-bottom:92px}
  .archive-grid{grid-template-columns:1fr;gap:14px}
  .archive-section + .archive-section{margin-top:62px}
  .shorts-row{gap:11px}
  .short-thumb{flex-basis:44vw}
  .archive-space{height:95px}
  .about-copy{margin-top:27px}
  .about-space{height:95px}
  .contact-intro{margin-bottom:34px}
  .contact-link{grid-template-columns:110px 1fr;gap:16px}
  .contact-space{height:95px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .clickable img,.archive-thumb img,.short-thumb img{transition:none!important}
}


/* ===== V11 refinements ===== */

/* Film: collapse package/pricing and keep only clean section labels visible */
.package-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
}
.package-block{min-width:0}
.package-name{
  margin-bottom:8px;
  font-size:11.5px;
  font-weight:500;
}
.package-copy{
  margin:0;
  padding:0;
  list-style:none;
  font-size:10.5px;
  line-height:1.8;
  color:#5d5953;
}
.package-price{
  margin-top:12px;
  font-size:14px;
  font-weight:500;
  letter-spacing:-.018em;
}
.price-vat{
  margin-left:2px;
  font-size:8.75px;
  font-weight:400;
  color:#9a948c;
}
.film-folds{
  margin-top:24px;
}
.film-folds .clean-details:first-child{
  border-top:1px solid var(--line);
}
.film-guide{
  display:inline-block;
  margin-top:18px;
  padding-bottom:1px;
  border-bottom:1px solid rgba(23,23,21,.4);
  font-size:10.25px;
}
.film-guide:hover{opacity:.55}

/* Archive: Pre-Wedding and Wedding Day side-by-side, thumbnails stacked */
.archive-feature-grid{
  width:min(920px,100%);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px;
  align-items:start;
}
.archive-column-title{
  margin:0 0 15px;
  font-size:11px;
  font-weight:500;
  color:#4f4b46;
}
.archive-stack{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.archive-stack .archive-thumb{
  width:100%;
  aspect-ratio:16/9;
}
.archive-shorts{
  margin-top:72px;
}
.archive-shorts .archive-title{
  margin-bottom:15px;
}
.shorts-row{
  gap:10px;
}
.short-thumb{
  flex:0 0 clamp(112px,11.5vw,154px);
}

/* About: closer copy + consistent restrained buttons */
.about-copy p.about-body{
  line-height:1.72;
}
.about-copy p.about-body + p.about-body{
  margin-top:1px;
}
.about-links{
  gap:8px;
  margin-top:20px;
}
.about-links a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:76px;
  padding:6px 11px;
  border:1px solid rgba(23,23,21,.22);
  border-radius:6px;
  font-size:9.5px;
  line-height:1;
  color:#5f5a54;
  transition:background .2s ease,border-color .2s ease,opacity .2s ease;
}
.about-links a:hover{
  opacity:1;
  background:rgba(23,23,21,.035);
  border-color:rgba(23,23,21,.35);
}

/* Contact: explicit external-link arrow */
.contact-link{
  grid-template-columns:150px 1fr auto;
}
.contact-arrow{
  font-size:10px;
  color:#8b857d;
}

@media(max-width:820px){
  .package-grid{
    grid-template-columns:1fr 1fr;
    gap:16px;
  }
  .archive-feature-grid{
    gap:16px;
  }
  .archive-stack{gap:9px}
  .archive-shorts{margin-top:54px}
  .short-thumb{
    flex-basis:34vw;
  }
  .contact-link{
    grid-template-columns:100px 1fr auto;
    gap:14px;
  }
}
@media(max-width:560px){
  .package-grid{
    grid-template-columns:1fr;
    gap:22px;
  }
  .archive-feature-grid{
    grid-template-columns:1fr 1fr;
    gap:12px;
  }
  .archive-column-title{
    font-size:10px;
    margin-bottom:10px;
  }
  .short-thumb{
    flex-basis:40vw;
  }
}


/* ===== V12 refinements ===== */

/* Film: Product / Promotion / Option */
.film-folds{
  margin-top:24px;
}
.film-folds .clean-details{
  border-top:1px solid var(--line);
  border-bottom:0;
}
.film-folds .clean-details:last-child{
  border-bottom:1px solid var(--line);
}
.film-folds .clean-details summary{
  padding:11px 0;
}
.film-folds .detail-body{
  padding:2px 0 22px;
}
.product-note{
  margin-top:14px;
  font-size:9px;
  line-height:1.72;
  color:#958f87;
}

/* Desktop equal-height accordion regions for visual alignment */
@media(min-width:821px){
  .service-grid{
    align-items:stretch;
  }
  .service{
    display:flex;
    flex-direction:column;
  }
  .service .film-folds{
    display:flex;
    flex-direction:column;
  }

  /* Product / Promotion / Option open-content minimum heights */
  .service .film-folds details:nth-child(1)[open] .detail-body{
    min-height:238px;
  }
  .service .film-folds details:nth-child(2)[open] .detail-body{
    min-height:190px;
  }
  .service .film-folds details:nth-child(3)[open] .detail-body{
    min-height:145px;
  }
}

/* Archive: make the whole composition more compact and balanced */
.archive-feature-grid{
  width:min(720px,100%);
  gap:28px;
}
.archive-stack{
  gap:10px;
}
.archive-stack .archive-thumb{
  aspect-ratio:16/9;
}
.archive-shorts{
  width:min(720px,100%);
  margin-top:58px;
}
.shorts-row{
  gap:9px;
}
.short-thumb{
  flex:0 0 104px;
}

/* About external links: text + underline + arrow */
.about-links{
  gap:14px;
  margin-top:20px;
}
.about-links a{
  min-width:0;
  padding:0 0 1px;
  border:0;
  border-bottom:1px solid rgba(23,23,21,.38);
  border-radius:0;
  background:none;
  font-size:9.75px;
  color:#67625b;
}
.about-links a:hover{
  background:none;
  border-color:rgba(23,23,21,.58);
  opacity:.58;
}
.about-copy p.about-body{
  margin:0;
  line-height:1.72;
}

/* Contact: arrow stays next to platform label */
.contact-link{
  grid-template-columns:150px 1fr;
}
.contact-name{
  display:inline-flex;
  gap:3px;
  align-items:baseline;
}
.contact-arrow{
  display:inline;
  font-size:10px;
  color:#77716a;
}

/* External link convention */
.film-guide,
.text-link{
  border-bottom:1px solid rgba(23,23,21,.42);
  padding-bottom:1px;
}

@media(max-width:820px){
  .archive-feature-grid{
    width:100%;
    gap:14px;
  }
  .archive-shorts{
    width:100%;
    margin-top:48px;
  }
  .short-thumb{
    flex-basis:31vw;
  }
  .contact-link{
    grid-template-columns:105px 1fr;
  }
}


/* ===== V13 final refinements ===== */

/* External arrows are typed in HTML only */
.film-contact .text-link::after,
.film-guide::after,
.about-links a::after,
.contact-link::after,
.contact-name::after{
  content:none!important;
}

/* Archive balance */
.archive-feature-grid{
  width:min(900px,100%);
  grid-template-columns:1fr 1fr;
  gap:52px;
}
.archive-shorts{
  width:min(900px,100%);
  margin-top:62px;
}
.shorts-row{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:11px;
  overflow:visible;
  padding:0;
}
.short-thumb{
  width:100%;
  flex:none;
  aspect-ratio:9/16;
}

/* About */
.about-copy p.about-body{
  margin:0;
  line-height:1.7;
}
.about-copy .tagline{
  margin-bottom:9px;
}

/* Footer: intentionally far away and quiet */
.footer{
  border-top:0!important;
  margin-top:180px;
  padding:0 0 26px;
  font-size:8px;
  color:rgba(23,23,21,.42);
  letter-spacing:.025em;
}

/* Contact arrow stays with platform label */
.contact-link{
  grid-template-columns:150px 1fr;
}
.contact-name{
  display:inline-flex;
  align-items:baseline;
  gap:3px;
}

/* External-link treatment */
.film-guide,
.text-link,
.about-links a{
  border-bottom:1px solid rgba(23,23,21,.40);
  padding-bottom:1px;
}

@media(max-width:820px){
  .archive-feature-grid{
    width:100%;
    gap:18px;
  }
  .archive-shorts{
    width:100%;
    margin-top:52px;
  }
  .shorts-row{
    display:flex;
    gap:10px;
    overflow-x:auto;
    padding-bottom:8px;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
  }
  .short-thumb{
    flex:0 0 42vw;
    width:auto;
    scroll-snap-align:start;
  }
  .footer{
    margin-top:125px;
    padding-bottom:22px;
  }
  .contact-link{
    grid-template-columns:105px 1fr;
  }
}


/* ===== V14 final refinements ===== */

/* Home: subtler hover, no vertical movement */
.home-hero .clickable img{
  transition:transform 1.05s cubic-bezier(.2,.6,.2,1),filter .9s ease;
}
@media (hover:hover) and (pointer:fine){
  .home-hero .clickable:hover img{
    transform:scale(1.012);
    filter:saturate(.89) contrast(.95) brightness(1.012);
  }
}

/* Home caption: slightly closer to the image */
.home-caption{
  margin-top:10px;
}

/* Film images: one-time quiet entrance, not hover */
@keyframes eeo-film-settle{
  from{
    opacity:.94;
    transform:translateY(5px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.service .media{
  animation:eeo-film-settle .72s ease-out both;
}

/* Film title / Korean subtitle spacing */
.service h1,
.service h2{
  margin-bottom:0;
}
.service-kicker{
  margin-top:1px;
}

/* Product labels: # is quiet, Lite / Deep stay readable */
.package-name{
  display:flex;
  align-items:baseline;
  gap:2px;
}
.package-name .hash{
  color:#99938b;
  font-weight:400;
}
.package-name .product-label{
  color:#2f2d2a;
  font-weight:500;
}

/* Reduce motion accessibility */
@media(prefers-reduced-motion:reduce){
  .service .media{
    animation:none!important;
  }
}

@media(max-width:820px){
  .home-caption{
    margin-top:9px;
  }
}


/* ===== V15 refinements ===== */

/* Product labels: # and Lite/Deep read as one label */
.package-name .hash,
.package-name .product-label{
  color:#2f2d2a;
  font-weight:500;
}

/* Product notes: more breathing room, slightly larger, single-line on desktop */
.product-note{
  margin-top:20px;
  font-size:9.75px;
  line-height:1.72;
  color:#827c74;
  white-space:nowrap;
}

/* Film CTA: closer to the service content, no divider, one-line action */
.film-contact{
  margin-top:48px;
  padding:0 0 0;
  border-top:0;
}
.film-contact p{
  margin:0;
  max-width:none;
  font-size:10.5px;
  line-height:1.7;
  color:#4d4944;
}
.film-contact .text-link{
  margin-left:10px;
}

/* One-time quiet entrance motion for Film / Archive / About */
@keyframes eeo-settle-soft{
  from{
    opacity:.94;
    transform:translateY(5px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}
.service .media,
.archive-feature-grid,
.archive-shorts,
.about-image{
  animation:eeo-settle-soft .72s ease-out both;
}
.archive-shorts{
  animation-delay:.06s;
}

/* Keep Home behavior as-is from V14 */
.home-hero .media{
  animation:none;
}

@media(max-width:820px){
  .product-note{
    white-space:normal;
    font-size:9.5px;
    margin-top:17px;
  }
  .film-contact{
    margin-top:42px;
  }
  .film-contact p{
    font-size:10.25px;
  }
}

@media(prefers-reduced-motion:reduce){
  .service .media,
  .archive-feature-grid,
  .archive-shorts,
  .about-image{
    animation:none!important;
  }
}
