@charset "UTF-8";
:root {
  --night: #12141B;
  --indigo: #1A2030;
  --dusk: #26304A;
  --line: rgba(236, 227, 211, .14);
  --text: #ECE3D3;
  --muted: #A9A08F;
  --lamp: #E3A857;
  --lamp-ink: #1B1408;
  --hanji: #EFE4CF;
  --hanji-ink: #2A221B;
  --ju: #9B2D20;
  --celadon: #8FB09A;
  --few: #D4A64A;
  --serif: 'Song Myung', 'Batang', serif;
  --body: 'Gowun Dodum', sans-serif;
  --mono: 'DM Mono', monospace;
  color-scheme: dark;
  /* Layers: header 10, mobile bar 20, skip link 30; dialog uses top layer. */
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body { margin: 0; background: var(--night); color: var(--text); font-family: var(--body); font-size: 16px; line-height: 1.8; word-break: keep-all; overflow-wrap: break-word; }
h1, h2, h3, h4, p, figure, dl, dd { margin: 0; }
h1, h2, h3, h4 { font-weight: 400; }
h1, h2, h3 { font-family: var(--serif); }
h2 { font-size: clamp(38px, 4.2vw, 62px); line-height: 1.3; letter-spacing: -.04em; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--lamp); }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
button { color: inherit; }
button, input, select, textarea, .button { border-radius: 0; }
button { background: none; border: 0; }
button:disabled { cursor: not-allowed; }
:focus-visible { outline: 2px solid var(--lamp); outline-offset: 5px; }
::selection { background: var(--lamp); color: var(--lamp-ink); }
img { display: block; width: 100%; height: auto; }
svg { display: block; }
[hidden] { display: none !important; }
.wrap { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.mono { font-family: var(--mono), var(--body); font-variant-numeric: tabular-nums; }
.muted { color: var(--muted); }
.small { font-size: 13px; line-height: 1.8; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.svg-defs { position: absolute; overflow: hidden; }
.skip-link { position: fixed; inset: 8px auto auto 16px; transform: translateY(-180%); background: var(--lamp); color: var(--lamp-ink); padding: 10px 18px; z-index: 30; }
.skip-link:focus { transform: none; }
.button { min-height: 48px; padding: 12px 24px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; font-size: 15px; line-height: 1.5; border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s; }
.button-lamp { background: var(--lamp); color: var(--lamp-ink); }
.button-lamp:hover { background: #f0ba73; color: var(--lamp-ink); }
.button-outline { border-color: rgba(236, 227, 211, .5); color: var(--text); }
.button-outline:hover { border-color: var(--lamp); color: var(--lamp); }
.button-lamp-outline { border-color: var(--lamp); color: var(--lamp); }
.button-lamp-outline:hover { background: var(--lamp); color: var(--lamp-ink); }
.section-inquiry { margin-top: 32px; }
.button-kakao { background: #FEE500; color: #191600; }
.button:disabled { opacity: .42; }
.sample-banner { min-height: 40px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 32px; border-bottom: 1px solid var(--line); font-size: 11px; color: var(--muted); }
.sample-banner strong { color: var(--text); font-weight: 400; }
.sample-banner a { flex-shrink: 0; }
.site-header { position: relative; z-index: 10; background: var(--night); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; min-height: 96px; }
.brand { display: inline-flex; align-items: center; gap: 13px; flex-shrink: 0; }
.brand > svg { width: 43px; height: 43px; }
.brand-type { font: 27px/1.2 var(--serif); letter-spacing: .02em; }
.brand-type small { display: block; font: 8px/1.5 var(--mono); letter-spacing: .16em; margin-top: 6px; }
.header-inner nav { display: flex; gap: 36px; align-items: center; }
.header-inner nav a { padding-block: 12px; font-size: 14px; }
.header-date { padding: 10px 20px; min-height: 42px; font-size: 13px; }
.hero { position: relative; isolation: isolate; display: flex; align-items: flex-end; height: min(800px, calc(100svh - 136px)); min-height: min(560px, calc(100svh - 136px)); max-height: 100dvh; overflow: hidden; }
.hero-media, .hero-media picture, .hero-media img, .ambient-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-media { z-index: -2; }
.hero-media img { object-position: center 54%; }
.hero::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(10, 14, 23, .75), rgba(10, 14, 23, .08) 85%), linear-gradient(0deg, rgba(10, 14, 23, .7), transparent 70%); }
.ambient-video { opacity: 0; pointer-events: none; }
.ambient-video.is-playing { opacity: 1; }
.hero-copy { padding-block: 52px 62px; }
.hero h1 { font-size: clamp(68px, 7.4vw, 108px); line-height: 1.12; letter-spacing: -.055em; }
.line-mask { display: block; overflow: hidden; }
.hero-line { display: block; }
.hero-copy p { font-size: 15px; margin-top: 26px; color: var(--text); }
.hero-actions { display: flex; gap: 12px; margin-top: 30px; }
.mobile-break { display: none; }
.video-toggle { position: absolute; bottom: 20px; right: 24px; border: 1px solid var(--line); padding: 6px 12px; background: var(--night); font-size: 11px; }
.lattice-doors { position: absolute; inset: 0; z-index: 2; pointer-events: none; display: none; }
html.js:not(.hero-ready) .lattice-doors { display: flex; }
.lattice-door { position: relative; flex: 0 0 50%; height: 100%; border: 14px solid #3A2A1E; background-color: rgba(239, 228, 207, .92); background-image: repeating-linear-gradient(90deg, transparent 0 calc(9% - 4px), #3A2A1E calc(9% - 4px) 9%); box-shadow: inset 0 0 0 3px #3A2A1E; }
.lattice-door::before { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, transparent calc(50% - 3px), #3A2A1E calc(50% - 3px) calc(50% + 3px), transparent calc(50% + 3px)); background-size: 100% 12px; height: 36px; top: calc(50% - 18px); }
.lattice-door::after { content: ''; position: absolute; inset: 0; background-image: repeating-linear-gradient(0deg, #3A2A1E 0 4px, transparent 4px 12px), repeating-linear-gradient(0deg, #3A2A1E 0 4px, transparent 4px 12px); background-size: 100% 36px; background-position: center 13%, center 87%; background-repeat: no-repeat; }
.lattice-door:first-child { border-right-width: 20px; }
.lattice-door:last-child { border-left-width: 20px; }
html.js:not(.hero-ready) .hero-line { transform: translateY(110%); }
html.hero-opening .lattice-door:first-child { animation: door-left .9s cubic-bezier(.65, 0, .35, 1) both; }
html.hero-opening .lattice-door:last-child { animation: door-right .9s cubic-bezier(.65, 0, .35, 1) both; }
html.hero-opening .hero-line { animation: title-enter .5s .9s ease-out both; }
@keyframes door-left { to { transform: translateX(-100%); } }
@keyframes door-right { to { transform: translateX(100%); } }
@keyframes title-enter { from { transform: translateY(110%); } to { transform: translateY(0); } }

/* A photograph on the wall, then the envelope that goes home. */
.btn-sq { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border: 1px solid transparent; border-radius: 0; font-size: 14px; line-height: 1.6; transition: background .2s, color .2s, border-color .2s; }
.btn-sq-lamp { background: var(--lamp); color: var(--lamp-ink); }
.btn-sq-lamp:hover { background: #f0ba73; color: var(--lamp-ink); }
.btn-sq-outline { border-color: var(--muted); }
.btn-sq-outline:hover { border-color: var(--lamp); }
.btn-line { display: inline-block; padding-block: 10px; border-bottom: 1px solid var(--lamp); font-size: 14px; }
.text-tabs { display: flex; align-items: stretch; gap: 40px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--muted) transparent; }
.text-tabs [role="tab"] { flex: 0 0 auto; padding: 12px 0 16px; border-bottom: 2px solid transparent; color: var(--muted); font-family: var(--serif); white-space: nowrap; transition: color .2s, border-color .2s; }
.text-tabs [role="tab"][aria-selected="true"] { color: var(--text); border-bottom-color: var(--lamp); }
.text-tabs [role="tab"]:hover { color: var(--text); }
.text-tabs [role="tab"]:focus-visible { outline-offset: -3px; }
.exhibition { padding-block: 112px 96px; background: radial-gradient(ellipse at 40% 0%, rgba(227,168,87,.06), transparent 65%), var(--night); }
.gallery-intro h2 { font-size: clamp(44px, 4.4vw, 56px); }
.gallery-intro > p { max-width: 780px; margin-top: 20px; font-size: 17px; }
.gallery-intro > p.small { font-size: 13px; margin-top: 8px; }
.gallery-tabs { display: flex; align-items: flex-start; justify-content: center; gap: 24px; margin-block: 40px 56px; padding: 6px 6px 12px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; scrollbar-color: var(--muted) transparent; }
.gallery-tabs [role="tab"] { flex: 0 0 auto; min-width: 0; padding: 0; text-align: center; }
.gallery-tabs [role="tab"]:nth-child(2) { margin-top: 24px; }
.gallery-tabs [role="tab"]:nth-child(3) { margin-top: 8px; }
.gallery-tabs [role="tab"]:nth-child(4) { margin-top: 32px; }
.gallery-tabs [role="tab"]:nth-child(5) { margin-top: 12px; }
.category-frame { display: block; height: clamp(150px, calc(21vw - 36px), 210px); padding: 10px; border: 6px solid #5B3F2A; border-image: linear-gradient(130deg, #5B3F2A, #3E2A1C 48%, #5B3F2A 85%, #3E2A1C) 1; background: var(--hanji); transition: background .2s; }
.category-frame img { width: auto; height: 100%; max-width: none; }
.category-name { display: inline-block; margin-top: 12px; padding-bottom: 3px; border-bottom: 2px solid transparent; color: var(--muted); font: 20px/1.4 var(--serif); transition: color .2s, border-color .2s; }
.gallery-tabs small { display: inline-block; margin-left: 8px; font-size: 10px; color: var(--muted); }
.gallery-tabs [aria-selected="true"] .category-frame { background: var(--lamp); }
.gallery-tabs [aria-selected="true"] .category-name { color: var(--lamp); border-bottom-color: var(--lamp); }
.gallery-tabs button:hover .category-name { color: var(--lamp); }
.gallery-stage { min-width: 0; }
.frame-wall { display: grid; grid-template-columns: minmax(0, 498px) minmax(0, 382px); grid-template-rows: auto auto; justify-content: center; align-items: end; column-gap: 40px; row-gap: 16px; }
.exhibit-photo { min-width: 0; display: grid; grid-row: 1 / span 2; grid-template-rows: subgrid; }
.exhibit-photo:first-child { grid-column: 1; }
.exhibit-photo:nth-child(2) { grid-column: 2; }
.exhibition-frame { display: block; align-self: end; width: 100%; padding: 32px; border: 12px solid #5B3F2A; border-image: linear-gradient(130deg, #5B3F2A, #3E2A1C 48%, #5B3F2A 85%, #3E2A1C) 1; background: var(--hanji); box-shadow: 0 20px 25px -18px rgba(0,0,0,.65); }
.exhibit-photo:nth-child(2) .exhibition-frame { padding: 24px; border-width: 10px; }
.exhibition-frame img { width: 100%; height: auto; }
.exhibit-photo figcaption { align-self: start; color: var(--hanji); font-size: 16px; line-height: 1.8; }
.gallery-stage.is-landscape .frame-wall { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.gallery-mobile-controls { display: none; }
.gallery-offer { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 32px; padding-top: 22px; border-top: 1px solid var(--line); }
.gallery-offer > p { flex: 1 1 520px; font-size: 17px; font-weight: 700; line-height: 1.8; }
.gallery-actions { display: flex; gap: 8px; margin-left: auto; }
.gallery-actions .btn-sq { padding-inline: 12px; white-space: nowrap; font-size: 13px; }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 28px; margin-top: 32px; }
.gallery-item { padding: 6px; background: var(--hanji); color: var(--hanji-ink); border: 2px solid #5B3F2A; text-align: left; min-width: 0; }
.gallery-item img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.gallery-item > span { display: block; padding: 8px 2px; font-size: 12px; }
.gallery-enhanced .gallery-thumbnails { display: none; }
.gallery-disclaimer { margin-top: 24px; font-size: 11px; }
.shoot-products { background: var(--indigo); padding-block: 88px 72px; }
.products-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.products-intro h2 { font-size: clamp(40px,4vw,48px); }
.products-intro p { max-width: 440px; color: var(--muted); font-size: 14px; }
.product-tabs { margin-block: 44px 36px; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }
.product-tabs button { font-size: 24px; text-align: left; }
.product-tabs button > span, .product-tabs button small { display: block; }
.product-tabs button small { font-size: 10px; font-family: var(--mono), var(--body); margin-top: 5px; }
.product-panel { display: grid; grid-template-columns: minmax(0,55fr) minmax(0,45fr); gap: 32px; align-items: start; }
.photo-envelope { position: relative; background: var(--hanji); color: var(--hanji-ink); padding: 36px 32px 32px; border-top: 10px solid #e3d7c1; color-scheme: light; }
.photo-envelope::before { content: ''; position: absolute; top: 9px; left: 0; right: 0; border-top: 1px solid rgba(42,34,27,.18); }
.envelope-heading { padding-bottom: 26px; }
.envelope-sender { font-size: 12px; padding-right: 50px; margin-bottom: 30px; }
.studio-seal { position: absolute; top: 28px; right: 30px; border: 1.5px solid var(--ju); color: var(--ju); width: 35px; padding: 4px; text-align: center; font: 18px/1.05 var(--serif); transform: rotate(-4deg); }
.order-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.order-heading h3 { font-size: 34px; white-space: nowrap; }
.order-price { font: 40px/1.3 var(--mono), var(--body); letter-spacing: -.07em; white-space: nowrap; }
.order-price > span:last-child { font: 16px var(--body); letter-spacing: 0; margin-left: 5px; }
.order-spec { font-size: 12px; margin-top: 14px; }
.envelope-list-title { font-size: 13px; padding-bottom: 10px; border-bottom: 1px solid var(--hanji-ink); }
.order-summary { margin-top: 18px; color: var(--hanji-ink); font: 22px/1.65 var(--serif); }
.envelope-list > div { display: grid; grid-template-columns: 64px minmax(0,1fr); gap: 14px; padding-block: 10px; border-bottom: 1px dashed rgba(42,34,27,.3); font-size: 15px; line-height: 1.6; }
.envelope-list dt { font-size: 15px; }
.for-you { font-size: 12px; line-height: 1.9; margin-block: 24px; }
.for-you strong { display: block; font-weight: 400; margin-bottom: 6px; }
.photo-envelope > .btn-sq { width: 100%; }
.product-deliverables { display: grid; grid-template-columns: minmax(0,65fr) minmax(0,35fr); align-items: start; gap: 30px 18px; padding-top: 18px; }
.product-deliverables figcaption { font-size: 11px; line-height: 1.8; margin-top: 10px; color: var(--muted); }
.delivered-frames { grid-column: 1 / -1; }
.delivered-frames img { aspect-ratio: 1024 / 688; object-fit: cover; }
.contact-sheet { margin-top: 30px; background: #0d0e13; padding: 14px 12px; min-width: 0; }
.contact-sheet > p { font-size: 10px; line-height: 1.6; margin-bottom: 14px; color: var(--text); }
.contact-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px 5px; }
.contact-grid img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.contact-grid figure:nth-child(3n) img { object-position: 75% 30%; }
.contact-grid figure:nth-child(4n) img { object-position: 20% 70%; }
.contact-grid figcaption { margin-top: 4px; font: 7px/1.4 var(--mono); color: var(--muted); }
.included-hanbok img { aspect-ratio: 4 / 5; object-fit: cover; }
.comparison { margin-top: 38px; border-block: 1px solid var(--line); }
.comparison > summary { cursor: pointer; padding-block: 18px; display: flex; justify-content: space-between; font-size: 14px; }
.table-scroll { overflow-x: auto; padding-bottom: 18px; }
.comparison table { width: 100%; min-width: 950px; border-collapse: collapse; font-size: 12px; }
.comparison caption { text-align: left; color: var(--muted); padding-block: 12px; }
.comparison th, .comparison td { text-align: left; padding: 14px 12px; border-bottom: 1px solid var(--line); font-weight: 400; }
.studio-notes { padding-block: 56px; border-top: 1px solid var(--line); }
.notes-tabs { gap: 36px; border-bottom: 1px solid var(--line); }
.notes-tabs [role="tab"] { font-family: var(--body); font-size: 16px; }
.notes-panel { margin-top: 26px; }
.day-story { max-width: 900px; font-size: 16px; line-height: 2.1; }
.space-strip { display: flex; overflow-x: auto; gap: 2px; overscroll-behavior-x: contain; padding-bottom: 12px; }
.space-strip figure { flex: 0 0 auto; }
.space-strip img { width: auto; height: 180px; }
.space-strip figcaption { font-size: 11px; margin-top: 8px; color: var(--muted); }
.space-story { margin-top: 12px; }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; min-height: 50px; display: flex; justify-content: space-between; align-items: center; gap: 20px; font-size: 15px; padding-block: 12px; }
.faq-list details p { color: var(--muted); font-size: 14px; padding: 0 24px 18px 0; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.visit-strip { background: var(--indigo); padding-block: 24px; }
.visit-strip > .wrap { display: grid; grid-template-columns: auto minmax(0,1fr) auto; align-items: center; gap: 16px 28px; }
.visit-strip h2 { font-family: var(--body); font-size: 15px; white-space: nowrap; }
.visit-strip p { font-size: 12px; color: var(--muted); }
.visit-strip .btn-sq { font-size: 12px; }
#map-notice { grid-column: 2 / -1; }
#map-notice:empty { display: none; }
.inquiry-section { background: var(--hanji); color: var(--hanji-ink); color-scheme: light; padding-block: 60px; }
.inquiry-section :focus-visible, .photo-envelope :focus-visible { outline-color: var(--hanji-ink); }
.inquiry-layout { display: grid; grid-template-columns: minmax(0,40fr) minmax(0,60fr); gap: 80px; }
.inquiry-intro h2 { font-size: 36px; }
.inquiry-intro > p { max-width: 300px; margin-top: 18px; font-size: 14px; }
.parent-concerns { margin-top: 26px; }
.parent-concerns > div { padding-block: 14px; }
.parent-concerns > div + div { border-top: 1px dashed rgba(42,34,27,.35); }
.parent-concerns dt { font-size: 16px; font-weight: 700; line-height: 1.6; }
.parent-concerns dd { margin-top: 6px; font-size: 15px; line-height: 1.8; }
.weekend-note { width: 100%; max-width: 330px; border-collapse: collapse; margin-top: 32px; }
.weekend-note caption { text-align: left; font-size: 13px; padding-bottom: 10px; }
.weekend-note td { font: 12px/1.8 var(--mono), var(--body); padding-block: 8px; border-bottom: 1px solid rgba(42,34,27,.2); }
.inquiry-intro > p.small { font-size: 11px; }
.selection-note { font-size: 12px; padding-bottom: 16px; }
.selection-note:empty { display: none; }
.form-field { margin-bottom: 20px; }
.form-field label { display: block; font-size: 14px; margin-bottom: 7px; }
.form-field label span { font-size: 11px; margin-left: 4px; }
.form-field input, .form-field select { width: 100%; min-width: 0; min-height: 46px; border: 1px solid rgba(42,34,27,.6); background: transparent; color: var(--hanji-ink); border-radius: 0; padding: 10px 12px; font-size: 15px; }
.form-field input::placeholder { color: #645b50; opacity: 1; font-size: 13px; }
.field-help { font-size: 11px; margin-top: 5px; }
.field-error { color: var(--ju); font-size: 12px; margin-top: 5px; }
.field-error:empty { display: none; }
[aria-invalid="true"] { border-color: var(--ju) !important; }
.consent-label { display: flex; align-items: center; gap: 10px; font-size: 13px; cursor: pointer; }
.consent-label input { width: 19px; height: 19px; margin: 0; accent-color: var(--hanji-ink); flex: 0 0 auto; }
.consent-details { margin: 5px 0 0 29px; font-size: 11px; }
.consent-details summary { cursor: pointer; padding-block: 6px; text-decoration: underline; text-underline-offset: 4px; }
.consent-details p { padding-block: 10px; }
.btn-sq-ink { background: var(--hanji-ink); color: var(--hanji); }
.btn-sq-ink:hover { background: #44362b; color: var(--hanji); }
#inquiry-form > .btn-sq { width: 100%; margin-top: 20px; }
.demo-notice { text-align: center; font-size: 11px; margin-top: 7px; }
.direct-inquiry { font-size: 12px; margin-top: 22px; }
.direct-inquiry button { padding: 6px 0; min-height: 44px; text-decoration: underline; text-underline-offset: 5px; }
#quick-notice { margin-top: 8px; }
.inquiry-success h3 { font-size: 28px; }
.inquiry-success > p { font-size: 14px; margin-top: 20px; }
.inquiry-success dl { margin-block: 28px; }
.inquiry-success dl > div { display: grid; grid-template-columns: 60px minmax(0,1fr); gap: 15px; padding-block: 12px; border-bottom: 1px solid rgba(42,34,27,.2); font-size: 14px; }
.inquiry-success dd { overflow-wrap: anywhere; }
.inquiry-success > button { width: 100%; }
@media (min-width: 900px) and (max-width: 1100px) {
  .photo-envelope { padding-inline: 24px; }
  .order-heading { display: block; }
  .order-price { margin-top: 10px; }
  .product-deliverables { gap: 24px 12px; }
  .inquiry-layout { gap: 48px; }
}
.site-footer { padding-block: 60px 28px; }
.footer-details { display: flex; justify-content: space-between; gap: 30px; margin-block: 28px; font-size: 12px; color: var(--muted); }
.footer-links { display: flex; gap: 28px; align-items: flex-start; }
.footer-disclaimer { padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 11px; }
.mobile-bar { display: none; }
.lightbox { width: min(940px, calc(100% - 32px)); max-height: calc(100dvh - 32px); border: 1px solid var(--line); background: var(--night); color: var(--text); padding: 54px 28px 24px; overscroll-behavior: contain; }
.lightbox::backdrop { background: rgba(8, 10, 16, .91); }
.lightbox-close { position: absolute; top: 12px; right: 18px; min-height: 36px; font-size: 13px; }
.lightbox-content { max-width: 780px; margin-inline: auto; }
.lightbox-content > img { width: 100%; height: min(65dvh, 720px); object-fit: contain; }
.lightbox-bottom { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 20px; }
#lightbox-label { font-family: var(--mono), var(--body); font-size: 13px; }
.lightbox-content > p { margin-top: 15px; }
body.dialog-open { overflow: hidden; }
@media (min-width: 1500px) {
  .hero-copy { width: min(1280px, calc(100% - 120px)); }
}
@media (max-width: 899px) {
  .wrap { width: calc(100% - 40px); }
  .sample-banner { padding: 8px 20px; min-height: 58px; font-size: 10px; align-items: flex-start; }
  .sample-banner p { max-width: 245px; }
  .sample-banner a { padding-top: 2px; }
  .header-inner { min-height: 112px; flex-wrap: wrap; gap: 0; padding-top: 16px; padding-bottom: 8px; }
  .brand { gap: 10px; }
  .brand > svg { width: 34px; height: 34px; }
  .brand-type { font-size: 23px; }
  .brand-type small { font-size: 7px; letter-spacing: .1em; margin-top: 3px; }
  .header-date { min-height: 44px; font-size: 13px; padding: 8px 12px; gap: 14px; }
  .header-inner nav { order: 3; width: 100%; justify-content: space-between; gap: 10px; padding-top: 6px; }
  .header-inner nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 13px; padding: 8px 5px; }
  .hero { height: calc(100svh - 170px); min-height: min(520px, calc(100svh - 170px)); max-height: 100dvh; }
  .hero-media img { object-position: 58% 50%; }
  .hero::after { background: linear-gradient(0deg, rgba(12, 15, 24, .94), rgba(12, 15, 24, .5) 35%, rgba(12, 15, 24, .04) 72%); }
  .hero-copy { padding-block: 24px 30px; }
  .hero h1 { font-size: clamp(58px, 12vw, 80px); line-height: 1.08; }
  .hero-copy p { margin-top: 18px; font-size: 13px; }
  .hero-actions { margin-top: 22px; gap: 10px; }
  .hero-actions .button { padding: 12px 22px; font-size: 13px; min-height: 46px; }
  .mobile-break { display: block; }

  .exhibition { padding-block: 72px 64px; }
  .exhibition > .wrap { width: calc(100% - 32px); }
  .gallery-intro h2 { font-size: 36px; line-height: 1.35; }
  .gallery-intro > p { font-size: 15px; margin-top: 18px; }
  .gallery-intro > p.small { font-size: 11px; }
  .gallery-tabs { justify-content: flex-start; gap: 18px; margin-block: 28px 30px; padding-block: 6px 12px; }
  .category-frame { height: 120px; padding: 10px; border-width: 6px; }
  .gallery-tabs [role="tab"]:nth-child(2) { margin-top: 8px; }
  .gallery-tabs [role="tab"]:nth-child(3) { margin-top: 3px; }
  .gallery-tabs [role="tab"]:nth-child(4) { margin-top: 12px; }
  .gallery-tabs [role="tab"]:nth-child(5) { margin-top: 5px; }
  .category-name { margin-top: 9px; }
  .gallery-tabs small { font-size: 9px; margin-left: 6px; }
  .frame-wall, .exhibit-photo { display: block; }
  .exhibition-frame, .exhibit-photo:nth-child(2) .exhibition-frame { width: 100%; padding: 14px; border-width: 8px; }
  .exhibit-photo figcaption { margin-top: 16px; }
  .gallery-mobile-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 20px; }
  .gallery-mobile-controls button { min-width: 86px; min-height: 44px; padding: 8px 12px; border: 1px solid var(--muted); font-size: 12px; }
  #gallery-position { font-size: 12px; color: var(--hanji); }
  .gallery-offer { display: block; margin-top: 22px; padding-top: 18px; }
  .gallery-offer > p { font-size: 17px; }
  .gallery-actions { margin-top: 16px; }
  .gallery-actions .btn-sq { flex: 1; padding-inline: 8px; font-size: 12px; }
  .gallery-thumbnails { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .gallery-disclaimer { font-size: 10px; margin-top: 18px; }
  .shoot-products { padding-block: 64px 48px; }
  .products-intro { display: block; }
  .products-intro h2 { font-size: 36px; }
  .products-intro p { margin-top: 20px; font-size: 13px; }
  .product-tabs { gap: 28px; justify-content: flex-start; margin-block: 28px; }
  .product-tabs button { font-size: 24px; }
  .product-tabs button small { font-size: 9px; }
  .product-panel { grid-template-columns: minmax(0,1fr); gap: 32px; }
  .photo-envelope { padding: 30px 22px 24px; }
  .studio-seal { right: 23px; top: 25px; }
  .order-heading { display: block; }
  .order-heading h3 { font-size: 32px; }
  .order-price { font-size: 40px; margin-top: 10px; }
  .order-spec { font-size: 11px; }
  .envelope-list > div { grid-template-columns: 56px minmax(0,1fr); gap: 10px; }
  .product-deliverables { display: flex; flex-direction: column; gap: 26px; padding-top: 0; }
  .delivered-frames { width: 100%; }
  .contact-sheet { width: 100%; margin-top: 0; padding: 20px; }
  .contact-sheet > p { font-size: 12px; }
  .contact-grid { gap: 12px 8px; }
  .contact-grid figcaption { font-size: 9px; }
  .included-hanbok { width: 100%; align-self: stretch; }
  .comparison { margin-top: 30px; }
  .studio-notes { padding-block: 48px; }
  .notes-tabs { gap: 22px; }
  .notes-tabs [role="tab"] { font-size: 14px; }
  .day-story { font-size: 15px; line-height: 2; }
  .space-strip img { height: 180px; }
  .visit-strip > .wrap { grid-template-columns: minmax(0,1fr) auto; gap: 14px; }
  .visit-strip h2 { grid-column: 1 / -1; }
  .visit-strip p { font-size: 11px; }
  .visit-strip .btn-sq { padding-inline: 12px; }
  #map-notice { grid-column: 1 / -1; }
  .inquiry-section { padding-block: 48px; }
  .inquiry-layout { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .inquiry-intro > p { max-width: none; }
  .weekend-note { margin-top: 24px; max-width: none; }
  .weekend-note td { font-size: 12px; }
  .form-field input, .form-field select { font-size: 16px; }
  .direct-inquiry { font-size: 11px; }
  .site-footer { padding-block: 44px calc(98px + env(safe-area-inset-bottom)); }
  .footer-details { flex-direction: column; gap: 24px; }
  .footer-links { flex-wrap: wrap; gap: 24px; }
  .footer-disclaimer { font-size: 10px; }
  .mobile-bar { position: fixed; z-index: 20; bottom: 0; left: 0; width: 100%; display: grid; grid-template-columns: .85fr .85fr 1.6fr; padding-bottom: env(safe-area-inset-bottom); background: var(--night); border-top: 1px solid var(--line); transform: translateY(110%); visibility: hidden; transition: transform .25s, visibility .25s; }
  .mobile-bar.is-visible { transform: translateY(0); visibility: visible; }
  .mobile-bar > * { min-height: 62px; display: flex; align-items: center; justify-content: center; padding: 8px 6px; font-size: 11px; text-align: center; }
  .mobile-bar > * + * { border-left: 1px solid var(--line); }
  .mobile-bar > a { background: var(--lamp); color: var(--lamp-ink); gap: 4px; font-size: 12px; }
  .lightbox { padding: 54px 16px 20px; }
  .lightbox-content > img { height: auto; max-height: 62dvh; }
  .lightbox-bottom { align-items: flex-start; flex-direction: column; gap: 14px; }
  .lightbox-bottom .btn-sq { width: 100%; font-size: 13px; }
}
@media (max-width: 359px) {
  .wrap { width: calc(100% - 28px); }
  .sample-banner { padding-inline: 14px; }
  .sample-banner span { display: none; }
  .sample-banner { min-height: 38px; }
  .hero { height: calc(100svh - 150px); }
  .hero-actions .button { padding-inline: 15px; }
}
@media (max-height: 710px) and (max-width: 899px) {
  .hero h1 { font-size: 48px; }
  .hero-copy { padding-bottom: 22px; }
  .hero-copy p { margin-top: 10px; font-size: 12px; }
  .hero-actions { margin-top: 14px; }
  .hero-actions .button { min-height: 44px; padding-block: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html.js .lattice-doors { display: none; }
  html.js .hero-line { transform: none; }
}
