/* 지예은 실장 — thoughtful care for your party. */
:root { color-scheme: light; --paper:#f7f4ef; --ink:#242321; --red:#d93632; --red-text:#c22f2b; --muted:#66615c; --line:#d8d2ca; --yellow:#fee500; --header-height:101px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:120px; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",Arial,sans-serif; font-size:16px; line-height:1.65; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { display:block; max-width:100%; }
button,a,summary { -webkit-tap-highlight-color:transparent; }
button,summary { cursor:pointer; }
button:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--red); outline-offset:5px; }
::selection { background:#e44a4436; }
figure,p { margin:0; }
h1,h2,h3 { margin:0; font-weight:700; }
em { color:var(--red); font-style:normal; }
.section-shell { width:min(1400px,calc(100% - 88px)); margin-inline:auto; }
.section-space { padding-block:124px; }
.skip-link { position:fixed; top:8px; left:12px; z-index:110; padding:12px 20px; background:var(--ink); color:#fff; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.site-header { height:var(--header-height); background:var(--paper); border-bottom:1px solid var(--line); }
.header-inner { width:min(1400px,calc(100% - 88px)); height:100%; margin:auto; display:flex; align-items:center; justify-content:space-between; gap:36px; }
.wordmark { display:flex; flex-direction:column; flex:none; line-height:1.12; }
.wordmark-main { display:flex; align-items:baseline; font-family:inherit; font-size:25px; font-weight:800; letter-spacing:-1.6px; }
.brand-dot { display:inline-block; width:8px; height:8px; margin-left:4px; border-radius:100%; background:var(--red); }
.wordmark-sub { margin-top:6px; font-size:8px; font-weight:600; letter-spacing:2.8px; }
.primary-nav { display:flex; align-items:center; gap:31px; font-size:13px; font-weight:600; }
.primary-nav > a { padding-block:13px; }
.primary-nav > a:not(.nav-contact) { position:relative; }
.primary-nav > a:not(.nav-contact)::after { content:""; position:absolute; bottom:6px; left:0; width:100%; height:1px; background:var(--red); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.primary-nav > a:hover::after,.primary-nav > a[aria-current]::after { transform:scaleX(1); }
.primary-nav .nav-contact { padding:12px 19px; border:1px solid var(--ink); display:flex; gap:18px; align-items:center; }
.nav-contact:hover { background:var(--ink); color:var(--paper); }
.menu-toggle { display:none; }
.hero { padding-top:60px; }
.hero-intro { display:grid; grid-template-columns:minmax(0,1fr) 265px; gap:40px; align-items:end; margin-bottom:43px; }
.eyebrow { display:flex; align-items:center; gap:8px; font-family:Arial,"Malgun Gothic",sans-serif; font-size:11px; font-weight:600; line-height:1.5; letter-spacing:1.8px; }
.red-dot { width:6px; height:6px; background:var(--red); border-radius:100%; flex:none; }
.hero-heading h1 { margin-top:22px; font-size:clamp(46px,5.6vw,84px); letter-spacing:-.075em; line-height:1.16; }
.hero-heading h1 span { color:var(--red); }
.hero-copy { padding-bottom:5px; }
.hero-copy > p { font-size:14px; letter-spacing:-.3px; line-height:1.9; }
.text-link { display:inline-flex; align-items:center; gap:28px; padding-bottom:8px; border-bottom:1px solid var(--ink); font-size:13px; font-weight:600; line-height:1.5; }
.text-link span { font-family:Arial,sans-serif; font-size:20px; line-height:1; transition:transform .2s ease; }
.text-link:hover { color:var(--red-text); border-color:var(--red); }
.text-link:hover span { transform:translate(2px,-2px); }
.hero-copy .text-link { margin-top:23px; }
.hero-image-frame { position:relative; height:clamp(420px,41vw,640px); overflow:hidden; background:#c4a98d; }
.hero-image { width:100%; height:100%; object-fit:cover; object-position:50% 47%; }
.hero-image-frame::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.35)); pointer-events:none; }
.hero-image-caption { position:absolute; inset:auto 35px 30px; z-index:1; color:#fff; display:flex; align-items:flex-end; justify-content:space-between; }
.hero-image-caption > span { font-family:Arial,sans-serif; font-size:25px; font-weight:600; line-height:1.14; letter-spacing:-.9px; }
.scroll-link { display:flex; align-items:center; gap:18px; font-size:10px; }
.scroll-circle { width:40px; height:40px; display:grid; place-items:center; border:1px solid #ffffff90; border-radius:100%; font-size:20px; }
.image-note { color:#fff; background:rgba(0,0,0,.68); padding:4px 8px; font-size:10px; line-height:1.5; letter-spacing:.1px; }
.hero-image-note { position:absolute; z-index:1; top:16px; right:16px; }
.hero-bottomline { padding-top:16px; display:flex; align-items:center; justify-content:space-between; font-size:11px; letter-spacing:.2px; color:var(--muted); }
.section-marker { display:flex; align-items:center; gap:18px; margin-bottom:49px; line-height:1.3; }
.section-marker > span { width:30px; height:30px; border:1px solid var(--red); border-radius:100%; color:var(--red-text); display:grid; place-items:center; font-family:Arial,sans-serif; font-size:10px; }
.section-marker > p { font-family:Arial,sans-serif; font-size:10px; font-weight:600; letter-spacing:1.7px; }
.story { border-bottom:1px solid var(--line); }
.story-grid { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1fr); gap:clamp(70px,10.5vw,168px); align-items:center; }
.portrait-frame { aspect-ratio:5 / 6; overflow:hidden; background:#c5b6a7; }
.portrait-frame img { width:100%; height:100%; object-fit:cover; object-position:50% 38%; }
.story-figure figcaption { margin-top:14px; display:flex; justify-content:space-between; gap:15px; color:var(--muted); font-size:11px; }
.story-copy h2 { margin-top:20px; font-size:clamp(40px,4.3vw,65px); letter-spacing:-.075em; line-height:1.25; }
.story-description { margin-top:31px; max-width:370px; font-size:14px; letter-spacing:-.25px; line-height:1.95; }
.story-description p + p { margin-top:22px; color:var(--muted); }
.story-copy .text-link { margin-top:36px; }
.moments { background:#efeae3; }
.section-title-row { display:flex; align-items:flex-end; justify-content:space-between; gap:45px; margin-bottom:62px; }
.section-title-row h2,.guide h2 { font-size:clamp(38px,3.7vw,58px); letter-spacing:-.07em; line-height:1.3; }
.section-title-row > p { color:var(--muted); font-size:13px; padding-bottom:6px; line-height:1.9; }
.occasion-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px; align-items:start; padding-bottom:5px; }
.occasion-card-offset { margin-top:65px; }
.occasion-image-link { position:relative; display:block; aspect-ratio:4 / 5; overflow:hidden; background:#b9a493; }
.occasion-image-link img { width:100%; height:100%; object-fit:cover; object-position:50% 44%; transition:transform .5s ease; }
.occasion-image-link:hover img { transform:scale(1.025); }
.occasion-chip { position:absolute; left:20px; top:20px; color:var(--ink); background:var(--paper); padding:7px 13px; font-size:10px; font-weight:600; line-height:1.4; }
.occasion-arrow { position:absolute; right:15px; bottom:15px; width:42px; height:42px; display:grid; place-items:center; color:var(--ink); background:var(--paper); border-radius:100%; font-family:Arial,sans-serif; font-size:23px; }
.occasion-card-copy { padding-top:21px; }
.occasion-number { color:var(--red-text); font-family:Arial,sans-serif; font-size:9px; font-weight:600; letter-spacing:1.25px; }
.occasion-card-copy h3 { margin-top:11px; font-size:23px; letter-spacing:-1px; }
.occasion-card-copy p { margin-top:10px; font-size:13px; line-height:1.85; color:var(--muted); letter-spacing:-.2px; }
.guide-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.88fr); align-items:stretch; gap:clamp(55px,9vw,143px); }
.guide h2 { margin-top:16px; font-size:clamp(36px,3.35vw,51px); }
.guide-intro { margin-top:22px; font-size:13px; line-height:1.9; color:var(--muted); }
.planning-list { list-style:none; margin:38px 0 28px; padding:0; border-top:1px solid var(--line); }
.planning-list li { display:flex; align-items:flex-start; gap:20px; padding:22px 0; border-bottom:1px solid var(--line); }
.planning-number { color:var(--red-text); font-family:Arial,sans-serif; font-size:12px; padding-top:3px; }
.planning-list h3 { font-size:16px; font-weight:600; letter-spacing:-.4px; }
.planning-list p { color:var(--muted); font-size:12px; line-height:1.8; margin-top:7px; }
.planning-tag { margin-left:auto; padding-top:5px; font-family:Arial,sans-serif; font-size:8px; letter-spacing:1px; color:var(--muted); }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:25px; min-height:53px; padding:14px 23px; font-size:13px; font-weight:600; line-height:1.6; }
.button-dark { background:var(--ink); color:var(--paper); }
.button-dark:hover { background:var(--red); }
.button > span:last-child { font-family:Arial,sans-serif; font-size:21px; }
.fine-print { font-size:10px; color:var(--muted); margin-top:12px; line-height:1.8; }
.guide-figure { position:relative; overflow:hidden; min-height:600px; background:#c6b9aa; }
.guide-figure > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.guide-figure::after { content:""; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#0005); pointer-events:none; }
.guide-figure figcaption { position:absolute; inset:auto 25px 25px; display:flex; align-items:flex-end; justify-content:space-between; gap:15px; color:#fff; z-index:1; }
.guide-figure figcaption > span:first-child { font-family:Arial,sans-serif; font-weight:600; font-size:24px; letter-spacing:-.7px; line-height:1.15; }
.faq { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.faq-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); gap:90px; }
.faq .section-marker { margin-bottom:31px; }
.faq h2 { font-size:clamp(38px,3.7vw,57px); line-height:1.3; letter-spacing:-.075em; }
.faq-heading > p { color:var(--muted); font-size:13px; line-height:1.9; margin-top:22px; }
.faq-portrait { margin-top:28px; max-width:380px; aspect-ratio:3 / 2; overflow:hidden; }
.faq-portrait img { width:100%; height:100%; object-fit:cover; object-position:50% 22%; }
.faq-list { border-top:1px solid var(--ink); }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:20px; list-style:none; min-height:83px; padding:21px 0; font-size:17px; font-weight:600; letter-spacing:-.6px; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-sign { position:relative; width:19px; height:19px; flex:none; }
.faq-sign::before,.faq-sign::after { content:""; position:absolute; top:50%; left:50%; width:14px; height:1px; background:var(--ink); transform:translate(-50%,-50%); }
.faq-sign::after { transform:translate(-50%,-50%) rotate(90deg); }
.faq-list details[open] .faq-sign::after { display:none; }
.faq-list details[open] summary { color:var(--red-text); }
.faq-answer { padding:0 30px 26px 0; max-width:600px; color:var(--muted); font-size:13px; line-height:1.95; letter-spacing:-.2px; }
.contact { padding-block:106px; }
.contact-panel { display:grid; grid-template-columns:1.05fr 1fr; color:var(--paper); background:var(--ink); min-height:585px; }
.contact-copy { padding:60px 62px 50px; }
.contact-copy .eyebrow { color:#ded8d0; font-size:9px; letter-spacing:1.3px; }
.contact h2 { font-size:clamp(37px,3.7vw,56px); margin-top:28px; line-height:1.28; letter-spacing:-.075em; }
.contact-description { margin-top:23px; font-size:13px; line-height:1.9; color:#c7c2bc; }
.button-kakao { background:var(--yellow); color:#24201d; margin-top:33px; gap:13px; min-width:295px; }
.button-kakao .button-arrow { margin-left:auto; padding-left:18px; }
.button-kakao:hover { background:#f4dd00; }
.contact-secondary { display:flex; align-items:center; gap:25px; margin-top:24px; font-size:10px; color:#c7c2bc; }
.contact-secondary a { padding-block:4px; }
.contact-secondary span { color:var(--paper); margin-left:6px; }
.contact-secondary a:hover { color:#fff; text-decoration:underline; text-underline-offset:5px; }
.contact-location { font-size:9px; color:#b3ada6; margin-top:15px; }
.kakao-id-note { margin-top:19px; color:#ded8d0; font-size:10px; line-height:1.8; }
.kakao-id-note strong { font-family:Arial,sans-serif; font-size:12px; margin-left:7px; color:#fff; }
.kakao-id-note > span { color:#b3ada6; font-size:9px; }
.contact-image-frame { position:relative; min-height:100%; overflow:hidden; background:#c4af9b; }
.contact-image-frame img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:83% 40%; }
.contact-image-frame .image-note { position:absolute; right:16px; bottom:16px; }
.site-footer { padding-bottom:92px; }
.footer-top { padding-bottom:29px; display:flex; align-items:center; justify-content:space-between; gap:35px; border-bottom:1px solid var(--line); }
.footer-wordmark { font-family:inherit; font-size:45px; font-weight:700; letter-spacing:-3px; line-height:1; }
.footer-wordmark .brand-dot { width:11px; height:11px; }
.footer-top > p { font-size:12px; color:var(--muted); margin-left:auto; }
.back-top { font-size:10px; display:flex; align-items:center; gap:14px; }
.back-top span { display:grid; place-items:center; width:36px; height:36px; border:1px solid var(--line); border-radius:100%; font-size:18px; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:35px; margin-top:22px; font-size:9px; color:var(--muted); }
.footer-bottom > p { font-family:Arial,sans-serif; letter-spacing:.5px; }
.footer-links { display:flex; align-items:center; flex-wrap:wrap; gap:24px; }
.footer-links a:hover { color:var(--ink); text-decoration:underline; text-underline-offset:4px; }
.ai-disclosure { margin-top:18px; max-width:760px; color:var(--muted); font-size:9px; line-height:1.8; }
.floating-kakao { position:fixed; right:26px; bottom:25px; z-index:30; display:flex; align-items:center; gap:12px; background:var(--yellow); color:#24201d; padding:16px 21px; box-shadow:0 5px 22px #00000016; font-size:12px; font-weight:600; line-height:1.3; border-radius:4px; }
.floating-kakao > span:last-child { font-size:20px; font-family:Arial,sans-serif; margin-left:5px; }
.floating-kakao:hover { background:#f4dd00; }
.kakao-dialog { width:min(490px,calc(100% - 36px)); padding:42px 37px 28px; background:var(--paper); color:var(--ink); border:0; border-radius:0; box-shadow:0 22px 100px #0004; max-height:calc(100dvh - 48px); overflow-y:auto; }
.kakao-dialog::backdrop { background:#16120de0; }
.kakao-dialog:not([open]) { display:none; }
#cookiesdirective { position:fixed!important; border-top:1px solid var(--line); box-shadow:0 -6px 24px #00000012; font-size:13px; line-height:1.65; }
#cookiesdirective .btn { display:inline-flex; justify-content:center; align-items:center; min-height:44px; min-width:90px; padding:10px 20px; border-radius:3px; cursor:pointer; }
#cookiesdirective a:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
body.cookie-notice-visible .floating-kakao { bottom:calc(var(--cookie-notice-height,130px) + 17px); }
.dialog-close-form { margin:0; }
.dialog-close { position:absolute; top:12px; right:15px; padding:4px; width:34px; height:34px; border:0; background:transparent; color:var(--ink); font-size:27px; font-weight:300; line-height:1; }
.kakao-dialog > .eyebrow { font-size:8px; letter-spacing:1px; }
.kakao-dialog > h2 { font-size:29px; letter-spacing:-1.5px; line-height:1.35; margin-top:21px; }
.kakao-dialog > #kakao-dialog-description { margin-top:15px; color:var(--muted); font-size:12px; line-height:1.8; }
.dialog-id { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:19px 20px; margin-top:24px; background:#fff; border:1px solid var(--line); }
.dialog-id > div { display:flex; flex-direction:column; line-height:1.3; }
.dialog-id > div > span { font-size:9px; color:var(--muted); }
.dialog-id strong { font-family:Arial,sans-serif; font-weight:600; font-size:26px; letter-spacing:-.5px; margin-top:8px; user-select:all; }
.copy-kakao-id { display:flex; align-items:center; gap:11px; min-height:44px; border:0; border-radius:0; padding:10px 15px; background:var(--yellow); color:#24201d; font-size:11px; font-weight:600; }
.copy-kakao-id > span { font-size:18px; font-family:Arial,sans-serif; }
.copy-kakao-id:hover { background:#f4dd00; }
.kakao-howto { list-style:none; margin:24px 0 0; padding:0; font-size:11px; line-height:1.9; }
.kakao-howto li + li { margin-top:9px; }
.kakao-howto li > span { display:inline-block; margin-right:9px; font-size:9px; color:var(--red-text); font-family:Arial,sans-serif; }
.kakao-howto strong { font-weight:600; }
.copy-status { min-height:21px; margin-top:13px; color:var(--red-text); font-size:10px; }
.dialog-tip { border-top:1px solid var(--line); padding-top:15px; margin-top:6px; color:var(--muted); font-size:9px; }
/* Original consent UI is positioned above the floating contact link by the deployment owner. */
@media (min-width:1700px) { .hero-heading h1 { font-size:89px; } }
@media (max-width:1100px) {
  .section-shell,.header-inner { width:calc(100% - 64px); }
  .hero-intro { grid-template-columns:minmax(0,1fr) 230px; gap:25px; }
  .hero-heading h1 { font-size:clamp(46px,5.65vw,64px); }
  .hero-copy > p { font-size:12px; }
  .hero-copy .text-link { font-size:11px; gap:20px; }
  .story-grid { gap:70px; }
  .story-copy h2 { font-size:46px; }
  .guide-grid { gap:55px; }
  .guide h2 { font-size:37px; }
  .contact-copy { padding:50px 36px; }
  .contact h2 { font-size:42px; }
  .button-kakao { min-width:260px; padding-inline:18px; font-size:12px; }
  .occasion-card-copy h3 { font-size:20px; }
  .faq-grid { gap:55px; }
}
@media (max-width:850px) {
  :root { --header-height:86px; }
  .primary-nav { gap:21px; font-size:11px; }
  .primary-nav .nav-contact { padding:10px 13px; gap:11px; }
  .wordmark-main { font-size:22px; }
  .wordmark-sub { font-size:7px; letter-spacing:2.4px; }
  .hero { padding-top:42px; }
  .hero-intro { grid-template-columns:1fr; gap:25px; margin-bottom:30px; }
  .hero-heading h1 { font-size:64px; }
  .hero-copy { display:flex; align-items:flex-end; justify-content:space-between; gap:25px; }
  .hero-copy > p br:last-of-type { display:none; }
  .hero-copy .text-link { margin-top:0; }
  .hero-image-frame { height:420px; }
  .section-space { padding-block:85px; }
  .story-grid { gap:47px; }
  .story-copy h2 { font-size:38px; }
  .story-copy .eyebrow { font-size:9px; letter-spacing:.6px; }
  .story-description { font-size:12px; margin-top:22px; }
  .story-description p + p { margin-top:16px; }
  .story-copy .text-link { font-size:11px; margin-top:26px; gap:20px; }
  .section-title-row h2 { font-size:40px; }
  .section-title-row > p { font-size:11px; }
  .occasion-grid { gap:18px; }
  .occasion-card-offset { margin-top:45px; }
  .occasion-chip { left:12px; top:12px; font-size:9px; padding:6px 10px; }
  .occasion-arrow { width:32px; height:32px; font-size:18px; right:10px; bottom:10px; }
  .occasion-card-copy h3 { font-size:16px; letter-spacing:-.8px; }
  .occasion-card-copy p { font-size:11px; }
  .occasion-number { font-size:8px; letter-spacing:.5px; }
  .guide-grid { grid-template-columns:1.12fr .88fr; gap:35px; }
  .guide h2 { font-size:32px; }
  .guide-intro { font-size:12px; }
  .planning-list li { gap:14px; padding-block:20px; }
  .planning-list h3 { font-size:14px; }
  .planning-list p { font-size:11px; }
  .planning-tag { display:none; }
  .guide-figure { min-height:590px; }
  .guide-figure figcaption { inset:auto 18px 20px; display:block; }
  .guide-figure figcaption > span:first-child { font-size:20px; }
  .guide-figure .image-note { display:inline-block; margin-top:14px; }
  .faq-grid { grid-template-columns:.85fr 1.15fr; gap:35px; }
  .faq h2 { font-size:37px; }
  .faq-list summary { font-size:14px; min-height:78px; }
  .faq-answer { font-size:12px; }
  .contact-copy { padding:38px 28px; }
  .contact-panel { min-height:550px; }
  .contact h2 { font-size:36px; }
  .contact-copy .eyebrow { font-size:8px; letter-spacing:.6px; }
  .button-kakao { min-width:0; padding:14px 13px; font-size:11px; }
  .button-kakao > svg { width:19px; height:19px; }
  .button-kakao .button-arrow { padding-left:5px; }
  .contact-secondary { gap:16px; font-size:9px; }
  .footer-wordmark { font-size:36px; }
}
@media (max-width:650px) {
  :root { --header-height:78px; }
  html { scroll-padding-top:26px; }
  .section-shell,.header-inner { width:calc(100% - 40px); }
  .site-header { position:relative; z-index:50; }
  .wordmark-main { font-size:23px; }
  .wordmark-sub { font-size:7px; letter-spacing:2.5px; }
  .primary-nav { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 18px; padding:12px 20px; position:absolute; top:100%; left:0; width:100%; border-bottom:1px solid var(--line); background:var(--paper); font-size:11px; }
  .primary-nav > a { padding-block:8px; }
  .primary-nav .nav-contact { padding:8px 10px; border:0; }
  /* Navigation remains available without JavaScript. */
  .js .menu-toggle { display:flex; align-items:center; gap:11px; border:0; padding:12px 0 12px 12px; color:var(--ink); background:transparent; min-height:44px; }
  .menu-toggle-label { font-size:10px; }
  .menu-toggle-lines { display:flex; flex-direction:column; justify-content:center; gap:6px; width:22px; height:24px; }
  .menu-toggle-lines span { width:22px; height:1px; background:var(--ink); transition:transform .15s ease; }
  .js .primary-nav { display:none; padding:20px; gap:0; }
  .js .primary-nav.is-open { display:flex; flex-direction:column; align-items:stretch; }
  .js .primary-nav > a { font-size:19px; letter-spacing:-.7px; padding:17px 0; border-bottom:1px solid var(--line); }
  .js .primary-nav .nav-contact { margin-top:16px; border:1px solid var(--ink); padding:13px 15px; font-size:15px; justify-content:space-between; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-lines span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle-lines span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  body:not(.js) .hero { padding-top:112px; }
  .hero { padding-top:37px; }
  .hero-heading .eyebrow { font-size:8px; letter-spacing:1.4px; gap:7px; }
  .hero-heading h1 { margin-top:22px; font-size:clamp(31px,8.3vw,52px); letter-spacing:-.075em; line-height:1.22; }
  .hero-intro { margin-bottom:27px; gap:21px; }
  .hero-copy { display:block; }
  .hero-copy > p { font-size:12px; line-height:1.8; }
  .hero-copy > p br:last-of-type { display:initial; }
  .hero-copy .text-link { font-size:10px; gap:16px; margin-top:19px; padding-bottom:6px; }
  .hero-image-frame { margin-inline:-20px; height:460px; }
  .hero-image { object-position:50% 50%; }
  .hero-image-caption { inset:auto 22px 25px; }
  .hero-image-caption > span { font-size:20px; letter-spacing:-.4px; }
  .scroll-link { gap:8px; }
  .scroll-link > span:first-child { display:none; }
  .scroll-circle { width:34px; height:34px; font-size:18px; }
  .hero-image-note { top:12px; right:12px; }
  .hero-bottomline { padding-top:14px; font-size:8px; letter-spacing:0; gap:12px; }
  .section-space { padding-block:73px; }
  .section-marker { margin-bottom:30px; gap:12px; }
  .section-marker > span { width:25px; height:25px; font-size:8px; }
  .section-marker > p { font-size:8px; letter-spacing:1.4px; }
  .story-grid { display:flex; flex-direction:column-reverse; gap:38px; align-items:stretch; }
  .story-copy .eyebrow { font-size:10px; letter-spacing:.1px; }
  .story-copy h2 { margin-top:17px; font-size:44px; letter-spacing:-.075em; line-height:1.23; }
  .story-description { margin-top:23px; font-size:13px; line-height:1.85; }
  .story-description p + p { margin-top:18px; }
  .story-copy .text-link { margin-top:26px; font-size:11px; }
  .portrait-frame { aspect-ratio:4 / 4.6; }
  .story-figure figcaption { font-size:9px; margin-top:12px; }
  .section-title-row { display:block; margin-bottom:35px; }
  .section-title-row h2 { font-size:34px; line-height:1.3; letter-spacing:-.072em; }
  .section-title-row > p { margin-top:20px; font-size:12px; padding:0; }
  .occasion-grid { display:block; }
  .occasion-card { margin-top:35px; }
  .occasion-card:first-child { margin-top:0; }
  .occasion-card-offset { margin-top:35px; }
  .occasion-image-link { aspect-ratio:4 / 4.5; }
  .occasion-chip { top:16px; left:16px; font-size:10px; padding:7px 12px; }
  .occasion-arrow { width:39px; height:39px; right:15px; bottom:15px; font-size:22px; }
  .occasion-card-copy { padding-top:17px; }
  .occasion-number { font-size:9px; letter-spacing:1px; }
  .occasion-card-copy h3 { font-size:22px; margin-top:8px; }
  .occasion-card-copy p { font-size:12px; margin-top:8px; }
  .guide-grid { display:flex; flex-direction:column; gap:35px; }
  .guide h2 { font-size:32px; margin-top:16px; }
  .guide-copy > .eyebrow { font-size:10px; letter-spacing:.1px; }
  .guide-intro { font-size:12px; margin-top:20px; }
  .planning-list { margin-top:29px; margin-bottom:26px; }
  .planning-list li { padding-block:19px; gap:18px; }
  .planning-number { font-size:11px; }
  .planning-list h3 { font-size:15px; }
  .planning-list p { font-size:12px; }
  .planning-tag { display:block; font-size:8px; }
  .button-dark { width:100%; min-height:55px; font-size:12px; }
  .fine-print { font-size:9px; }
  .guide-figure { min-height:0; height:440px; }
  .guide-figure figcaption { display:flex; inset:auto 22px 23px; }
  .guide-figure .image-note { margin-top:0; }
  .guide-figure figcaption > span:first-child { font-size:23px; }
  .faq-grid { display:block; }
  .faq .section-marker { margin-bottom:25px; }
  .faq h2 { font-size:36px; }
  .faq-heading > p { font-size:12px; margin-top:19px; }
  .faq-list { margin-top:31px; }
  .faq-list summary { font-size:14px; letter-spacing:-.6px; min-height:75px; padding-block:21px; gap:15px; }
  .faq-answer { font-size:12px; padding-right:5px; padding-bottom:23px; }
  .contact { padding-block:63px; }
  .contact-panel { display:flex; flex-direction:column; min-height:0; }
  .contact-copy { padding:38px 25px 36px; }
  .contact-copy .eyebrow { font-size:8px; letter-spacing:1px; }
  .contact h2 { margin-top:24px; font-size:36px; }
  .contact-description { margin-top:20px; font-size:12px; }
  .button-kakao { width:100%; min-height:57px; margin-top:27px; font-size:12px; padding-inline:16px; gap:10px; }
  .button-kakao > svg { width:21px; height:21px; }
  .contact-secondary { font-size:10px; margin-top:21px; gap:19px; }
  .contact-location { font-size:9px; line-height:1.8; margin-top:15px; }
  .kakao-id-note { margin-top:16px; }
  .contact-image-frame { height:390px; min-height:0; }
  .contact-image-frame img { object-position:83% 35%; }
  .site-footer { padding-bottom:108px; }
  .footer-top { flex-wrap:wrap; gap:20px; padding-bottom:24px; }
  .footer-wordmark { font-size:34px; letter-spacing:-2.4px; }
  .footer-wordmark .brand-dot { width:8px; height:8px; margin-left:3px; }
  .footer-top > p { width:100%; order:2; margin-left:0; font-size:10px; }
  .back-top { margin-left:auto; font-size:9px; gap:9px; }
  .back-top span { width:30px; height:30px; font-size:16px; }
  .footer-bottom { display:block; margin-top:20px; font-size:9px; }
  .footer-links { margin-top:16px; gap:12px 20px; font-size:9px; }
  .footer-links > a:first-child { width:100%; }
  .ai-disclosure { margin-top:20px; font-size:9px; line-height:1.9; }
  .floating-kakao { right:17px; bottom:17px; padding:14px 18px; font-size:11px; gap:10px; border-radius:3px; }
  .floating-kakao > svg { width:19px; height:19px; }
  .floating-kakao > span:last-child { font-size:18px; }
  .kakao-dialog { padding:40px 24px 24px; }
  .kakao-dialog > h2 { font-size:27px; }
  .dialog-id { padding:17px 15px; gap:14px; }
  .dialog-id strong { font-size:24px; }
  .copy-kakao-id { padding:10px 12px; gap:9px; }
}
@media (max-width:360px) {
  .hero-heading h1 { font-size:29px; letter-spacing:-.08em; }
  .hero-bottomline { flex-direction:column; align-items:flex-start; gap:5px; }
  .hero-image-frame { height:400px; }
  .story-copy h2 { font-size:39px; }
  .section-title-row h2 { font-size:29px; }
  .guide h2 { font-size:28px; }
  .contact-copy { padding-inline:20px; }
  .contact h2 { font-size:31px; }
  .contact-secondary { gap:13px; font-size:9px; }
  .button-kakao { font-size:11px; gap:8px; padding-inline:13px; }
  .footer-wordmark { font-size:29px; }
  .planning-tag { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
  .occasion-image-link:hover img { transform:none; }
}
