:root {
  color-scheme: dark;
  --bg: #08090b;
  --bg-deep: #050607;
  --surface: rgba(17, 19, 23, 0.72);
  --surface-strong: rgba(13, 15, 18, 0.9);
  --glass: rgba(18, 20, 24, 0.62);
  --text: #f7f8fa;
  --muted: #a7abb2;
  --faint: #747982;
  --line: rgba(255, 255, 255, 0.14);
  --line-strong: rgba(255, 255, 255, 0.24);
  --accent: #ff5a6e;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --header-height: 64px;
  --page-inline: clamp(18px, 4.6vw, 56px);
  --display: clamp(2.55rem, 11vw, 7.25rem);
  font-family: Pretendard, -apple-system, BlinkMacSystemFont, "Noto Sans KR", "Helvetica Neue", sans-serif;
  font-synthesis: none;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-width: 320px;
  background: var(--bg-deep);
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  min-height: 100svh;
  margin: 0;
  overflow-x: hidden;
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.55;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body.is-locked {
  overflow: hidden;
}

img,
svg {
  display: block;
  max-width: 100%;
}

button,
input,
textarea,
select {
  color: inherit;
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  border: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 2px solid rgba(255, 255, 255, 0.9);
  outline-offset: 3px;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.site-header {
  position: fixed;
  z-index: 50;
  top: 0;
  left: 0;
  display: flex;
  width: 100%;
  min-height: calc(var(--header-height) + var(--safe-top));
  align-items: flex-end;
  justify-content: space-between;
  padding: calc(12px + var(--safe-top)) var(--page-inline) 12px;
  border-bottom: 1px solid var(--line);
  background: rgb(6, 7, 9);
}

.site-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 20px;
}

.header-nav { display: flex; justify-self: end; align-items: center; gap: 4px; }
.header-nav a { display: grid; place-items: center; min-height: 40px; padding: 0 12px; border-radius: 8px; color: var(--muted); font-size: 0.77rem; white-space: nowrap; transition: color 180ms ease, background 180ms ease; }
.header-nav a:hover,
.header-nav a[aria-current="page"] { color: var(--text); background: rgba(255,255,255,0.08); }

.header-kil { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 50%; }
.header-kil img { display: block; width: 30px; height: 30px; border-radius: 50%; }
.header-kil:hover { background: rgba(255,255,255,0.08); }

@media (max-width: 699px) {
  :root { --header-height: 96px; --header-bottom: 4px; }
  .site-header { grid-template-columns: minmax(0, 1fr) auto; row-gap: 0; padding-top: calc(8px + var(--safe-top)); padding-bottom: 4px; }
  .site-header.page-shell { padding-top: calc(8px + var(--safe-top)); }
  .site-header > .brand { grid-column: 1; grid-row: 1; }
  .site-header > .header-actions { grid-column: 2; grid-row: 1; }
  .header-nav { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: 100%; justify-self: stretch; gap: 2px; padding-right: 44px; }
  .header-kil { position: absolute; right: var(--page-inline); bottom: 6px; }
  .header-nav a { min-height: 44px; padding: 0 4px; font-size: 0.74rem; }
}

.site-header.is-static {
  position: absolute;
  background: linear-gradient(to bottom, rgba(0, 0, 0, 0.62), transparent);
  border: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.site-header--overlay {
  position: fixed;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  background: rgb(6, 7, 9);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.brand {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  gap: 11px;
}

.brand img {
  width: 30px;
  height: 30px;
  filter: drop-shadow(0 0 0.7px rgba(255, 255, 255, 0.78));
}

.site-header .brand img,
.footer-capsule {
  animation: header-capsule-motion 3s cubic-bezier(0.22, 0.7, 0.22, 1) infinite;
  transform-origin: center;
}

@keyframes header-capsule-motion {
  0%, 72% { transform: rotate(0deg) scale(1); }
  77% { transform: rotate(-18deg) scale(0.96); }
  90% { transform: rotate(366deg) scale(1.08); }
  96%, 100% { transform: rotate(360deg) scale(1); }
}

.brand-name,
.brand > span {
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  white-space: nowrap;
}

.header-link {
  display: inline-flex;
  min-height: 40px;
  align-items: center;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
}

.page-main {
  min-height: 100svh;
  padding-top: calc(var(--header-height) + var(--safe-top));
}

.home-page {
  overflow-x: hidden;
}

.skip-link {
  position: fixed;
  z-index: 2000;
  top: 8px;
  left: 8px;
  padding: 10px 13px;
  background: #fff;
  color: #000;
  transform: translateY(-160%);
}

.skip-link:focus {
  transform: translateY(0);
}

.home-shell {
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  align-items: end;
  isolation: isolate;
}

.hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  overflow: hidden;
  align-items: end;
  isolation: isolate;
}

.hero-slides,
.hero-images,
.hero-slide,
.hero-slide::after {
  position: absolute;
  inset: 0;
}

.hero-slides,
.hero-images {
  z-index: -2;
  background: #111318;
}

.hero-images { overflow: hidden; }
.hero-marquee-track { display: flex; width: max-content; height: 100%; animation: hero-marquee-left 126s linear infinite; }
.hero-marquee-group { display: flex; gap: 4px; padding-right: 4px; height: 100%; }
.hero-marquee-card { flex: 0 0 auto; width: calc((100vw - 8px) / 3); height: 100%; margin: 0; background: #08090b; }
.hero-marquee-card img { display: block; width: 100%; height: 100%; object-fit: cover; }
@keyframes hero-marquee-left { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (max-width: 699px) {
  .hero-marquee-card { width: 72vw; }
}
@media (prefers-reduced-motion: reduce) { .hero-marquee-track { animation: none; } }

.hero-images .hero-slide {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-slide {
  opacity: 0;
  transform: scale(1.018);
  transition: opacity 700ms ease, transform 5.6s ease-out;
}

.hero-slide.is-active {
  opacity: 1;
  transform: scale(1);
}

.hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.hero-slide::after {
  content: "";
  background:
    linear-gradient(to bottom, rgba(3, 4, 5, 0.22) 0%, transparent 32%),
    linear-gradient(to top, rgba(3, 4, 5, 0.92) 0%, rgba(3, 4, 5, 0.08) 68%);
}

.hero-shade {
  position: absolute;
  z-index: -1;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(3, 4, 5, 0.32) 0%, transparent 36%),
    linear-gradient(to top, rgba(3, 4, 5, 0.94) 0%, rgba(3, 4, 5, 0.12) 70%);
  pointer-events: none;
}

.home-content {
  display: grid;
  gap: 18px;
  padding: 110px var(--page-inline) calc(16px + var(--safe-bottom));
}

.hero-content {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 20px;
  width: 100%;
  padding: 110px var(--page-inline) calc(20px + var(--safe-bottom));
}

.hero-statement {
  max-width: 760px;
  min-width: 0;
  container-type: inline-size;
}

.hero-statement .hero-capsule {
  margin-bottom: 12px;
}

.hero-statement .eyebrow {
  color: rgba(255, 255, 255, 0.78);
}

.hero-statement h1 {
  max-width: 100%;
  margin: 7px 0 0;
  font-size: clamp(1.5rem, 9cqi, 5.5rem);
  font-weight: 520;
  letter-spacing: -0.055em;
  line-height: 0.98;
  word-break: keep-all;
  white-space: pre-line;
}

.hero-statement > p:last-child {
  margin: 13px 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.88rem, 3.6vw, 1.12rem);
}

.portal-nav {
  display: grid;
  gap: 10px;
}

.portal-link {
  display: grid;
  min-height: 53px;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 0 17px;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: var(--glass);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  backdrop-filter: blur(20px) saturate(130%);
  transition: background 180ms ease;
}

.portal-link:hover,
.portal-link:active {
  background: rgba(255, 255, 255, 0.08);
}

.portal-link strong {
  font-size: 0.92rem;
  font-weight: 530;
}

.portal-link > span:last-child {
  font-size: 0;
}

.portal-link > span:last-child::after {
  content: "→";
  color: rgba(247, 248, 250, 0.82);
  font-family: Arial, sans-serif;
  font-size: 1rem;
}

.hero-scroll {
  display: none;
}

.hero-copy {
  max-width: 780px;
}

.hero-kicker {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 10px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 0.7rem;
  font-weight: 650;
  letter-spacing: 0.2em;
}

.hero-capsule {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  filter: drop-shadow(0 0 0.7px rgba(255, 255, 255, 0.78));
}

.is-entering .hero-capsule {
  animation: capsule-arrive 980ms cubic-bezier(0.2, 0.8, 0.25, 1) both;
}

.hero-title {
  max-width: 9em;
  margin: 0;
  font-size: clamp(2.3rem, 10.2vw, 6.8rem);
  font-weight: 520;
  letter-spacing: -0.055em;
  line-height: 0.98;
  word-break: keep-all;
}

.hero-subtitle {
  margin: 14px 0 0;
  color: rgba(255, 255, 255, 0.78);
  font-size: clamp(0.88rem, 3.6vw, 1.12rem);
  word-break: keep-all;
}

.home-actions {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 16px;
  background: var(--glass);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  backdrop-filter: blur(20px) saturate(130%);
}

.home-action {
  display: grid;
  min-height: 53px;
  grid-template-columns: 28px 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 0 17px;
  border-top: 1px solid var(--line);
  font-size: 0.92rem;
  transition: background 180ms ease;
}

.home-action:first-child {
  border-top: 0;
}

.home-action:hover,
.home-action:active {
  background: rgba(255, 255, 255, 0.08);
}

.home-action-index {
  color: var(--muted);
  font-size: 0.68rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
}

.home-action-arrow {
  font-size: 1.05rem;
  opacity: 0.7;
}

.page-shell {
  width: min(100%, 1280px);
  min-height: 100svh;
  margin: 0 auto;
  padding: 42px var(--page-inline) calc(88px + var(--safe-bottom));
}

.site-header.page-shell {
  width: 100%;
  max-width: none;
  min-height: calc(var(--header-height) + var(--safe-top));
  margin: 0;
  padding: calc(12px + var(--safe-top)) var(--page-inline) var(--header-bottom, 12px);
}

.page-main.page-shell {
  padding-top: calc(var(--header-height) + var(--safe-top) + 42px);
}

.page-main.gallery-shell {
  padding-top: calc(var(--header-height) + var(--safe-top) + 3px);
}

.page-intro {
  display: grid;
  gap: 12px;
  margin: 2vh 0 clamp(30px, 7vh, 72px);
}

.eyebrow {
  margin: 0;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.page-title {
  max-width: 11em;
  margin: 0;
  font-size: clamp(2.55rem, 10vw, 6rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 0.98;
  word-break: keep-all;
}

.page-lead {
  max-width: 620px;
  margin: 8px 0 0;
  color: var(--muted);
  font-size: clamp(0.96rem, 3.4vw, 1.15rem);
  word-break: keep-all;
}

.gallery-shell {
  width: 100%;
  margin: 0 auto;
  padding: 28px 3px calc(82px + var(--safe-bottom));
}

.mobile-dock {
  position: fixed;
  z-index: 45;
  right: 16px;
  bottom: calc(12px + var(--safe-bottom));
  left: 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  max-width: 430px;
  margin: 0 auto;
  padding: 5px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(13, 15, 18, 0.76);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
  backdrop-filter: blur(20px) saturate(130%);
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.3);
}

.mobile-dock a {
  display: grid;
  min-height: 42px;
  place-items: center;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.72rem;
}

.mobile-dock a[aria-current="page"] {
  background: rgba(255, 255, 255, 0.1);
  color: var(--text);
}

.gallery-shell .page-intro {
  padding: 0 calc(var(--page-inline) - 3px);
}

.gallery-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px;
}

.gallery-tile {
  position: relative;
  aspect-ratio: 2 / 3;
  overflow: hidden;
  background: #111318;
}

.gallery-open {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0;
  cursor: zoom-in;
  background: transparent;
}

.gallery-open img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1.015);
  transition: opacity 260ms ease, transform 500ms ease;
}

.gallery-open img.is-loaded {
  opacity: 1;
}

.gallery-tile:hover .gallery-open img {
  transform: scale(1.035);
}

.tile-like {
  position: absolute;
  right: 7px;
  bottom: 7px;
  display: grid;
  width: 40px;
  height: 40px;
  place-items: center;
  padding: 0;
  cursor: pointer;
  border-radius: 999px;
  background: rgba(4, 5, 7, 0.5);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  color: #fff;
  font-size: 1.1rem;
}

.tile-like[aria-pressed="true"] {
  color: var(--accent);
}

.tile-like::after {
  content: "";
  position: absolute;
  inset: -7px;
}

.mobile-dock a,
.optional-settings-trigger {
  min-height: 44px;
}

.gallery-sentinel {
  height: 1px;
}

.viewer {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  background: rgba(4, 5, 7, 0.94);
  color: var(--text);
}

.viewer::backdrop {
  background: rgba(2, 3, 4, 0.82);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}

.viewer[open],
.viewer.is-open {
  display: grid;
}

.viewer-frame {
  display: grid;
  height: 100svh;
  grid-template-rows: auto minmax(0, 1fr) auto;
  padding: calc(8px + var(--safe-top)) 0 calc(12px + var(--safe-bottom));
  background: rgba(8, 9, 12, 0.78);
  -webkit-backdrop-filter: blur(20px) saturate(115%);
  backdrop-filter: blur(20px) saturate(115%);
}

.viewer-head {
  display: grid;
  min-height: 56px;
  grid-template-columns: 56px minmax(0, 1fr) 56px;
  align-items: center;
  padding: 0 8px;
}

.viewer-close,
.viewer-fullscreen,
.viewer-arrow,
.viewer-like {
  display: grid;
  place-items: center;
  padding: 0;
  cursor: pointer;
  background: transparent;
  color: inherit;
}

.viewer-close,
.viewer-fullscreen {
  width: 48px;
  height: 48px;
  font-size: 1.55rem;
  justify-self: center;
}

.viewer-title {
  overflow: hidden;
  margin: 0;
  font-size: 0.88rem;
  font-weight: 500;
  letter-spacing: -0.015em;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.viewer-counter {
  position: absolute;
  top: calc(22px + var(--safe-top));
  right: 18px;
  color: var(--muted);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.06em;
}

.viewer-stage {
  position: relative;
  display: flex;
  min-height: 0;
  align-items: center;
  justify-content: center;
  gap: 8px;
  overflow: hidden;
  touch-action: none;
  user-select: none;
  cursor: grab;
}

.viewer-stage.is-dragging { cursor: grabbing; }

.viewer-card {
  position: relative;
  display: grid;
  width: min(78vw, 720px);
  height: 100%;
  margin: 0;
  flex: 0 0 auto;
  place-items: center;
  overflow: hidden;
  opacity: 0.28;
  transform: scale(0.96);
  transition: transform 260ms ease, opacity 260ms ease;
}

.viewer-card.is-current {
  opacity: 1;
  transform: scale(1);
}

.viewer-card img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;
  transition: opacity 220ms ease;
  -webkit-touch-callout: default;
  user-select: auto;
}

.viewer-card img.is-loaded {
  opacity: 1;
}

.viewer-card .capsule-spinner {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
}

.viewer-card img.is-loaded + .capsule-spinner {
  display: none;
}

.viewer-controls {
  display: grid;
  min-height: 78px;
  grid-template-columns: 52px 52px 52px;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-top: 5px;
}

.viewer-arrow,
.viewer-like {
  width: 48px;
  height: 48px;
  border-radius: 999px;
  font-size: 1.35rem;
}

.viewer-like {
  font-size: 1.45rem;
}

.viewer-like[aria-pressed="true"] {
  color: var(--accent);
}

.viewer-controls { position: relative; }
.viewer-mode-toggle { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 10px; background: transparent; color: var(--text); cursor: pointer; }
.viewer-mode-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.viewer--tiles .viewer-stage { display: block; overflow-y: auto; touch-action: pan-y; cursor: auto; overscroll-behavior-y: contain; }
.viewer-tile-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; padding: 4px 12px 12px; }
.viewer-tile-grid button { min-width: 0; padding: 0; aspect-ratio: 2 / 3; background: #111318; cursor: zoom-in; }
.viewer-tile-grid button[aria-current="true"] { outline: 2px solid #fff; outline-offset: -2px; }
.viewer-tile-grid img { display: block; width: 100%; height: 100%; object-fit: cover; }
.viewer--tiles .viewer-controls > .viewer-arrow,
.viewer--tiles .viewer-controls > .viewer-like,
.viewer--tiles .viewer-swipe-hint { visibility: hidden; }
@media (max-width: 699px) { .viewer-tile-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); padding-right: 6px; padding-left: 6px; } }

.viewer-swipe-hint {
  position: absolute;
  right: 0;
  bottom: calc(6px + var(--safe-bottom));
  left: 0;
  color: var(--faint);
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-align: center;
  pointer-events: none;
}

.form-shell {
  width: min(100%, 760px);
}

.mock-note {
  padding: 13px 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  margin-bottom: 26px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--muted);
  font-size: 0.78rem;
}

.upload-form {
  display: grid;
  gap: 26px;
}

.field {
  display: grid;
  gap: 8px;
}

.field-row {
  display: grid;
  gap: 22px;
}

.field label,
.field-legend {
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
}

.field input,
.field textarea,
.field select {
  width: 100%;
  min-height: 54px;
  padding: 12px 0;
  border: 0;
  border-bottom: 1px solid var(--line-strong);
  border-radius: 0;
  outline: 0;
  background: transparent;
  font-size: 1.05rem;
  transition: border-color 180ms ease;
}

.field textarea {
  min-height: 108px;
  resize: vertical;
}

select { color-scheme: dark; }
select option,
select optgroup { background-color: #17191e; color: #f7f8fa; }
select option:disabled { color: #a7abb2; }
select option:checked { background-color: #343a46; color: #fff; }

.field input:focus,
.field textarea:focus,
.field select:focus {
  border-bottom-color: #fff;
}

.file-drop {
  position: relative;
  display: grid;
  min-height: 148px;
  place-items: center;
  padding: 24px;
  overflow: hidden;
  border: 1px dashed var(--line-strong);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.028);
  text-align: center;
}

.file-drop input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  opacity: 0;
}

.file-drop-title {
  margin: 0;
  font-size: 1rem;
}

.file-drop-meta {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
}

.file-name {
  display: block;
  margin-top: 8px;
  color: var(--text);
  font-size: 0.78rem;
}

.consent {
  display: grid;
  grid-template-columns: 20px 1fr;
  align-items: start;
  gap: 10px;
  color: var(--muted);
  font-size: 0.78rem;
}

.consent input {
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: #fff;
}

.primary-button,
.secondary-button,
.text-button {
  display: inline-flex;
  min-height: 52px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 0 20px;
  cursor: pointer;
  border-radius: 10px;
  transition: transform 160ms ease, opacity 160ms ease, background 160ms ease;
}

.primary-button {
  background: #f6f7f9;
  color: #0a0b0d;
  font-weight: 650;
}

.storage-start {
  width: fit-content;
  min-width: 148px;
}

.upload-consents { display: grid; gap: 22px; }
.upload-consents [hidden] { display: none; }
#role-other-field[hidden] { display: none; }
.upload-consents .consent-row { margin: 0; align-items: start; }
.upload-consents .consent-row strong { display: block; font-weight: 550; }
.upload-consents .consent-row small { display: block; margin-top: 7px; color: var(--muted); font-size: 0.76rem; line-height: 1.7; }
.consent-details { margin-top: -12px; padding-left: 27px; color: var(--muted); font-size: 0.75rem; line-height: 1.75; }
.consent-details summary { cursor: pointer; }
.consent-details p { margin: 12px 0 0; }
.consent-help { margin: 0; color: var(--muted); font-size: 0.73rem; line-height: 1.65; }

.secondary-button {
  border: 1px solid var(--line-strong);
  background: rgba(255, 255, 255, 0.045);
  color: var(--text);
}

.text-button {
  min-height: 42px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  justify-content: flex-start;
}

.primary-button:hover,
.secondary-button:hover,
.primary-button:active,
.secondary-button:active {
  transform: translateY(-1px);
}

.primary-button[disabled],
.secondary-button[disabled] {
  cursor: wait;
  opacity: 0.55;
}

.sticky-submit {
  position: sticky;
  z-index: 10;
  bottom: 0;
  display: grid;
  padding: 12px 0 calc(8px + var(--safe-bottom));
  background: linear-gradient(to top, var(--bg) 68%, transparent);
}

.results-greeting {
  max-width: 15em;
  margin: 0;
  font-size: clamp(2.15rem, 8.5vw, 4.7rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.05;
  word-break: keep-all;
}

.results-list {
  display: grid;
  border-top: 1px solid var(--line);
}

.result-card {
  display: grid;
  gap: 15px;
  padding: 20px 0 22px;
  border-bottom: 1px solid var(--line);
}

.result-card-head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
}

.result-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 570;
  word-break: keep-all;
}

.result-date,
.result-meta,
.result-status {
  color: var(--muted);
  font-size: 0.72rem;
}

.result-status {
  color: var(--text);
  text-align: right;
}

.result-progress {
  height: 2px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
}

.result-progress span {
  display: block;
  width: var(--progress, 100%);
  height: 100%;
  background: #fff;
}

.result-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
}

.result-actions .primary-button {
  min-height: 48px;
  background: #000;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.result-actions .secondary-button { min-height: 48px; }

.result-file-details { display: grid; gap: 7px; margin: 0; font-size: 0.75rem; }
.result-file-details > div { display: grid; grid-template-columns: minmax(80px, auto) minmax(0, 1fr); gap: 16px; }
.result-file-details dt { color: var(--muted); }
.result-file-details dd { margin: 0; overflow-wrap: anywhere; }

.results-view-switch { display: flex; gap: 4px; width: fit-content; padding: 4px; margin-bottom: 20px; border: 1px solid var(--line); border-radius: 999px; background: var(--glass); }
.results-view-switch button { min-height: 44px; padding: 0 20px; border-radius: 999px; background: transparent; color: var(--muted); cursor: pointer; font-size: 0.8rem; }
.results-view-switch button[aria-pressed="true"] { background: rgba(255,255,255,0.12); color: var(--text); }
.results-page [hidden] { display: none; }
.page-main.results-page.is-gallery-view { width: 100%; max-width: 1400px; }
.is-gallery-view .results-heading { margin-bottom: 20px; }
.is-gallery-view .results-greeting { font-size: clamp(1.5rem, 4vw, 2.4rem); }
.is-gallery-view .results-heading .eyebrow,
.is-gallery-view .results-heading .page-lead { display: none; }
.personal-gallery-count { margin: 0 0 14px; font-size: 0.73rem; color: var(--muted); }
.results-page .personal-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 700px) { .results-page .personal-gallery-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.result-commerce { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; font-size: 0.75rem; color: var(--muted); }
.result-commerce strong { color: var(--text); font-size: 0.88rem; font-weight: 550; }
.result-commerce small { font-size: 0.65rem; color: var(--faint); }
.plan-tag,
.beta-tag { display: inline-block; padding: 4px 8px; border: 1px solid var(--line-strong); border-radius: 5px; font-size: 0.63rem; letter-spacing: 0.07em; color: var(--text); }
.beta-tag { background: rgba(255,255,255,0.07); }
.publication-status { display: inline-flex; align-items: center; gap: 7px; padding-left: 10px; border-left: 1px solid var(--line); }
.publication-status strong[data-publication="yes"] { color: #d8eadb; }
.publication-status strong[data-publication="no"] { color: var(--muted); }

.about-shell {
  width: min(100%, 1160px);
  margin: 0 auto;
  padding: 0 var(--page-inline) calc(36px + var(--safe-bottom));
}

.about {
  background: var(--bg);
}

.content-width {
  width: min(100%, 1160px);
  margin-right: auto;
  margin-left: auto;
  padding-right: var(--page-inline);
  padding-left: var(--page-inline);
}

.about-intro {
  display: grid;
  min-height: min(82svh, 860px);
  align-content: end;
  gap: 18px;
  padding-top: clamp(110px, 18vh, 190px);
  padding-bottom: clamp(64px, 11vh, 120px);
}

.about-intro h2,
.about-chapter h2,
.story-copy h2,
.section-heading h2,
.storage-note h2,
.faq > h2 {
  max-width: 12em;
  margin: 0;
  font-size: clamp(2rem, 7.5vw, 5rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.02;
  word-break: keep-all;
}

.about-intro .lead {
  max-width: 680px;
  margin: 6px 0 0;
  color: #c7c9ce;
  font-size: clamp(1rem, 3.4vw, 1.2rem);
  word-break: keep-all;
}

.name-story { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 88px); padding-top: clamp(48px, 8vw, 96px); padding-bottom: clamp(56px, 9vw, 112px); border-top: 1px solid var(--line); }
.name-story .section-heading { margin: 0; }
.name-story-heading-row { display: flex; align-items: center; gap: 20px; }
.name-story-heading-row h2 { flex: 1; min-width: 0; }
.name-story-logo { flex-shrink: 0; width: clamp(64px, 6.5vw, 88px); height: auto; animation: name-story-spin 6s linear infinite; transform-origin: center; }
@keyframes name-story-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .name-story-logo { animation: none; } }
.name-story .section-heading h2 { font-size: clamp(2rem, 4.4vw, 3.5rem); line-height: 1.12; }
.name-story-copy { max-width: 40rem; }
.name-story-copy p { margin: 0 0 1.3em; color: #c7c9ce; font-size: clamp(1rem, 1.45vw, 1.12rem); line-height: 1.9; word-break: keep-all; overflow-wrap: anywhere; }
.name-story-copy p:first-child { color: var(--text); }
.name-story-copy p:last-child { margin-bottom: 0; }
@media (max-width: 699px) { .name-story { grid-template-columns: minmax(0, 1fr); gap: 26px; } .name-story-copy p { line-height: 1.85; } }

.editorial-image {
  position: relative;
  margin: 0;
  overflow: hidden;
  background: #111318;
}

.editorial-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.editorial-image--wide,
.editorial-image--break {
  width: 100%;
  height: min(78svh, 980px);
}

.editorial-image figcaption {
  position: absolute;
  margin-top: -30px;
  padding-left: var(--page-inline);
  color: rgba(255, 255, 255, 0.72);
  font-size: 0.58rem;
  letter-spacing: 0.14em;
}

.about-chapter,
.process,
.pricing,
.storage-note,
.faq {
  display: grid;
  gap: 34px;
  padding-top: clamp(70px, 13vh, 150px);
  padding-bottom: clamp(70px, 13vh, 150px);
  border-bottom: 1px solid var(--line);
}

/* Two quiet photo backdrops; only opacity animates, never a live backdrop blur. */
[data-ambient-scenes] {
  position: relative;
  isolation: isolate;
}
.ambient-scenes {
  position: absolute;
  z-index: -1;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 0.36;
}
.ambient-scenes img {
  position: absolute;
  inset: -16px;
  width: calc(100% + 32px);
  max-width: none;
  height: calc(100% + 32px);
  object-fit: cover;
  filter: blur(10px) saturate(0.65);
  opacity: 0;
  transition: opacity 1800ms ease;
}
.ambient-scenes img.is-visible { opacity: 1; }
.ambient-scenes::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(90deg, rgba(8, 9, 11, 0.4), rgba(8, 9, 11, 0.12)),
    linear-gradient(0deg, var(--bg), transparent 20%, transparent 80%, var(--bg));
}
@media (prefers-reduced-motion: reduce) {
  .ambient-scenes img { transition: none; }
}

.copy-columns {
  display: grid;
  max-width: 840px;
  gap: 20px;
  color: #c7c9ce;
  font-size: clamp(0.98rem, 3vw, 1.14rem);
}

.copy-columns p,
.story-copy p,
.storage-note > p:last-child,
.fine-print {
  margin: 0;
}

.atmosphere-strip {
  display: grid;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.atmosphere-strip article {
  display: grid;
  gap: 38px;
  min-height: 180px;
  align-content: space-between;
  padding: 24px var(--page-inline);
  border-top: 1px solid var(--line);
}

.atmosphere-strip article:first-child {
  border-top: 0;
}

.atmosphere-strip span,
.price-row span,
.mock-note > span {
  color: var(--muted);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
}

.atmosphere-strip strong {
  font-size: clamp(1.4rem, 5vw, 2.7rem);
  font-weight: 500;
  letter-spacing: -0.04em;
}

.atmosphere-strip [data-scene-example] { display: block; min-height: 4.2em; line-height: 1.4; word-break: keep-all; overflow-wrap: anywhere; }
.atmosphere-strip [data-scene-example] > span { color: inherit; font: inherit; letter-spacing: inherit; }
.atmosphere-strip [data-scene-example] > span::after { content: ""; display: inline-block; width: 2px; height: .85em; margin-left: .1em; background: currentColor; vertical-align: -.02em; animation: scene-caret 1s steps(1) infinite; }
@keyframes scene-caret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .atmosphere-strip [data-scene-example] > span::after { display: none; } }

.story-pair {
  display: grid;
  gap: 42px;
  padding-top: clamp(80px, 14vh, 160px);
  padding-bottom: clamp(80px, 14vh, 160px);
}

.story-pair > .editorial-image {
  aspect-ratio: 2 / 3;
}

.story-copy {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  gap: 22px;
}

.story-copy > p:not(.eyebrow) {
  color: #c7c9ce;
}

.story-copy blockquote {
  margin: 18px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--line);
  font-size: clamp(1.05rem, 2vw, 1.5rem);
  letter-spacing: -0.04em;
  line-height: 1.18;
  word-break: keep-all;
  overflow-wrap: normal;
  text-wrap: balance;
}

.values-notes { min-width: 0; margin-top: 8px; }
.values-notes h3 { margin: 0 0 22px; font-size: clamp(1.25rem, 3vw, 2rem); font-weight: 500; letter-spacing: -0.04em; }
.values-notes details { border-top: 1px solid var(--line); }
.values-notes details:last-child { border-bottom: 1px solid var(--line); }
.values-notes summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 62px; padding: 16px 0; cursor: pointer; list-style: none; font-size: 0.94rem; word-break: keep-all; }
.values-notes summary::-webkit-details-marker { display: none; }
html[lang="ja"] .values-notes summary,
html[lang="zh-CN"] .values-notes summary { word-break: normal; overflow-wrap: anywhere; }
html[lang="ja"] .story-copy blockquote { word-break: normal; overflow-wrap: anywhere; }
.values-notes summary::after { content: "+"; flex-shrink: 0; color: var(--muted); font-size: 1.1rem; font-weight: 400; }
.values-notes details[open] summary::after { content: "−"; }
.values-notes p { max-width: 740px; margin: 0; padding: 0 22px 24px 0; color: var(--muted); font-size: 0.91rem; line-height: 1.85; white-space: pre-line; word-break: keep-all; overflow-wrap: anywhere; }

.section-heading {
  display: grid;
  gap: 12px;
}

.process-list {
  padding: 0;
  margin: 0;
  list-style: none;
}

.process-list li {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.process-list li > span {
  color: var(--muted);
  font-size: 0.7rem;
}

.process-list strong,
.process-list p {
  display: block;
  margin: 0;
}

.process-list p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.82rem;
}

.pricing-grid {
  border-top: 1px solid var(--line);
}

.price-row {
  display: grid;
  gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.price-row div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
}

.price-row strong {
  font-size: 1.25rem;
  font-weight: 520;
}

.price-row p,
.fine-print,
.storage-note > p:last-child {
  max-width: 680px;
  color: var(--muted);
  font-size: 0.82rem;
}

.about-footer {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 14px;
  padding-top: 44px;
  padding-bottom: calc(44px + var(--safe-bottom));
}

.about-footer p {
  margin: 0;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.13em;
}

.about-footer p span,
.about-footer a {
  color: var(--muted);
  font-size: 0.65rem;
  font-weight: 400;
  letter-spacing: 0;
}

.about-footer p { min-width: 0; }
.footer-right { display: flex; align-items: center; justify-content: flex-end; gap: 28px; }
.footer-kil-credit { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); font-size: .65rem; }
.about-footer .footer-kil { display: inline-flex; min-height: 44px; align-items: center; gap: 7px; }
.footer-kil img { display: block; flex-shrink: 0; border-radius: 50%; }
.footer-kil:hover span { color: var(--text); }
@media (max-width: 599px) {
  .about-footer { grid-template-columns: auto 1fr; }
  .footer-right { grid-column: 1 / -1; justify-self: end; gap: 24px; }
}

.about-hero {
  display: grid;
  min-height: min(86svh, 900px);
  align-content: end;
  padding: clamp(90px, 16vh, 180px) 0 clamp(48px, 9vh, 96px);
}

.about-hero h1 {
  max-width: 8.4em;
  margin: 0;
  font-size: var(--display);
  font-weight: 480;
  letter-spacing: -0.07em;
  line-height: 0.95;
  word-break: keep-all;
}

.about-section {
  display: grid;
  gap: 28px;
  padding: clamp(62px, 12vh, 140px) 0;
  border-top: 1px solid var(--line);
}

.about-section h2 {
  max-width: 12em;
  margin: 0;
  font-size: clamp(2rem, 7.4vw, 4.6rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.03;
  word-break: keep-all;
}

.about-copy {
  display: grid;
  max-width: 680px;
  gap: 18px;
  color: #d1d3d7;
  font-size: clamp(1rem, 3.4vw, 1.2rem);
  word-break: keep-all;
}

.about-copy p {
  margin: 0;
}

.about-image {
  width: 100%;
  max-height: 82svh;
  object-fit: cover;
  object-position: center;
  background: #111318;
}

.process-list {
  display: grid;
  gap: 0;
  border-top: 1px solid var(--line);
}

.process-item {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 14px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}

.process-index {
  color: var(--muted);
  font-size: 0.72rem;
  font-variant-numeric: tabular-nums;
}

.process-item h3,
.process-item p {
  margin: 0;
}

.process-item h3 {
  font-size: 1rem;
}

.process-item p {
  margin-top: 5px;
  color: var(--muted);
  font-size: 0.82rem;
}

.faq-list {
  border-top: 1px solid var(--line);
}

.faq-list details {
  border-bottom: 1px solid var(--line);
}

.faq-list summary {
  min-height: 64px;
  padding: 19px 32px 16px 0;
  cursor: pointer;
  list-style: none;
  font-size: 0.95rem;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list details p {
  max-width: 720px;
  margin: 0;
  padding: 0 0 22px;
  color: var(--muted);
  font-size: 0.85rem;
}

.page-transition {
  position: fixed;
  z-index: 1000;
  inset: 0;
  display: grid;
  place-items: center;
  align-content: center;
  visibility: hidden;
  background: rgba(5, 6, 8, 0.9);
  opacity: 0;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  transition: opacity 180ms ease, visibility 0s linear 180ms;
}

.page-transition.is-active {
  visibility: visible;
  opacity: 1;
  transition: opacity 180ms ease;
}

.transition-mark {
  display: grid;
  justify-items: center;
  gap: 17px;
}

.transition-mark img,
.capsule-spinner img {
  width: 48px;
  height: 48px;
  filter: drop-shadow(0 0 0.7px rgba(255, 255, 255, 0.78));
}

.page-transition.is-active .transition-mark img,
.page-transition.is-active > img,
.capsule-spinner.is-spinning img {
  animation: capsule-spin 920ms linear infinite;
}

.page-transition > img {
  width: 48px;
  height: 48px;
  filter: drop-shadow(0 0 0.7px rgba(255, 255, 255, 0.78));
}

.page-transition > p {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
}

.transition-mark span {
  color: var(--muted);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
}

.capsule-spinner {
  display: grid;
  justify-items: center;
  gap: 10px;
  color: var(--muted);
  font-size: 0.68rem;
}

.capsule-spinner img {
  width: 42px;
  height: 42px;
}

.toast {
  position: fixed;
  z-index: 1200;
  right: 18px;
  bottom: calc(18px + var(--safe-bottom));
  left: 18px;
  width: fit-content;
  max-width: calc(100vw - 36px);
  margin: auto;
  padding: 11px 15px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: rgba(19, 21, 25, 0.86);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.35);
  color: var(--text);
  font-size: 0.76rem;
  opacity: 0;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 180ms ease, transform 180ms ease;
}

.toast.is-visible {
  opacity: 1;
  transform: translateY(0);
}

@keyframes capsule-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes capsule-arrive {
  0% {
    opacity: 0;
    transform: translateX(-44px) rotate(-300deg) scale(0.86);
  }
  72% {
    opacity: 1;
    transform: translateX(3px) rotate(18deg) scale(1.03);
  }
  100% {
    opacity: 1;
    transform: translateX(0) rotate(0) scale(1);
  }
}

@media (min-width: 700px) {
  .home-content {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
    align-items: end;
    gap: 48px;
    padding-bottom: max(28px, var(--safe-bottom));
  }

  .hero-content {
    grid-template-columns: minmax(0, 1fr) minmax(320px, 430px);
    align-items: end;
    gap: 48px;
    padding-bottom: max(28px, var(--safe-bottom));
  }

  .gallery-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .field-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .result-card {
    grid-template-columns: minmax(220px, 1fr) minmax(260px, auto);
    align-items: center;
  }

  .result-card-head {
    display: block;
  }

  .result-status {
    text-align: left;
  }

  .result-actions {
    justify-content: flex-end;
  }

  .about-section.split {
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
    align-items: start;
    gap: clamp(50px, 9vw, 120px);
  }

  .copy-columns,
  .story-pair {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .atmosphere-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .atmosphere-strip article {
    border-top: 0;
    border-left: 1px solid var(--line);
  }

  .atmosphere-strip article:first-child {
    border-left: 0;
  }

  .process-item {
    grid-template-columns: 52px minmax(0, 1fr);
  }
}

@media (min-width: 1100px) {
  .gallery-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .viewer-card {
    width: min(58vw, 740px);
  }
}

@media (max-height: 700px) and (max-width: 699px) {
  .home-content {
    gap: 12px;
    padding-top: 86px;
  }

  .hero-title {
    font-size: clamp(2rem, 8.8vw, 3rem);
  }

  .hero-subtitle {
    margin-top: 8px;
  }

  .home-action {
    min-height: 48px;
  }
}

/* Premium review refinements: language, live status, optional settings and comparison. */
.header-actions {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 12px;
}

.language-control,
.language-select {
  flex: 0 0 auto;
}

.language-control select,
.language-select {
  min-height: 36px;
  max-width: 108px;
  padding: 0 28px 0 11px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  outline: 0;
  background-color: rgba(18, 20, 24, 0.56);
  color: rgba(247, 248, 250, 0.9);
  font-size: 0.7rem;
  font-weight: 560;
  letter-spacing: 0.025em;
  -webkit-backdrop-filter: blur(14px) saturate(125%);
  backdrop-filter: blur(14px) saturate(125%);
}

.language-control select:focus-visible,
.language-select:focus-visible {
  border-color: rgba(255, 255, 255, 0.55);
}

.glass-panel,
.gallery-stats {
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(27, 30, 35, 0.68), rgba(12, 14, 17, 0.52));
  -webkit-backdrop-filter: blur(16px) saturate(128%);
  backdrop-filter: blur(16px) saturate(128%);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
}

.gallery-stats {
  width: min(100%, 640px);
  margin-top: 14px;
  padding: 12px 14px 13px;
}

.gallery-stats-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(247, 248, 250, 0.86);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}

.gallery-stats-heading small {
  color: var(--faint);
  font-size: 0.6rem;
  letter-spacing: 0.06em;
}

.gallery-stats dl {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
}

.gallery-stats dl > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 10px 9px 0;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}

.gallery-stats dl > div:first-child {
  padding-left: 0;
  border-left: 0;
}

.gallery-stats dt {
  overflow: hidden;
  color: var(--muted);
  font-size: 0.64rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gallery-stats dd {
  margin: 0;
  color: var(--text);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
  font-weight: 570;
  letter-spacing: -0.025em;
}

.tile-like {
  right: 6px;
  bottom: 6px;
  width: 30px;
  height: 30px;
  border: 0;
  background: rgba(4, 5, 7, 0.4);
  box-shadow: none;
  font-size: 0.88rem;
}

.viewer,
.viewer--minimal,
.viewer-frame,
.viewer-frame--minimal {
  border: 0;
  box-shadow: none;
}

.viewer-frame--minimal {
  background: rgba(5, 6, 8, 0.82);
}

.viewer-close,
.optional-settings-close {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  outline-offset: -4px;
  background: transparent !important;
  box-shadow: none !important;
  font-size: 1.7rem;
  font-weight: 260;
}

.viewer-head {
  padding-right: 10px;
  padding-left: 10px;
}

.viewer-like {
  width: 42px;
  height: 42px;
  border: 0;
  background: transparent;
  box-shadow: none;
  font-size: 1.24rem;
}

.optional-settings-trigger {
  width: fit-content;
  min-height: 42px;
  gap: 7px;
  color: rgba(247, 248, 250, 0.8);
  font-size: 0.78rem;
}

.optional-settings-trigger::after {
  content: "+";
  color: var(--muted);
  font-size: 1rem;
}

.optional-settings-dialog {
  width: min(calc(100% - 24px), 520px);
  max-height: min(82svh, 700px);
  padding: 0;
  overflow: auto;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 18px;
  background: rgba(16, 18, 22, 0.76);
  color: var(--text);
  -webkit-backdrop-filter: blur(24px) saturate(130%);
  backdrop-filter: blur(24px) saturate(130%);
  box-shadow: 0 28px 90px rgba(0, 0, 0, 0.48), inset 0 1px rgba(255, 255, 255, 0.05);
}

.optional-settings-dialog::backdrop {
  background: rgba(2, 3, 5, 0.66);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

.optional-settings-panel {
  display: grid;
  gap: 23px;
  padding: 20px;
}

.optional-settings-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.optional-settings-header h2 {
  margin: 5px 0 0;
  font-size: clamp(1.55rem, 6vw, 2rem);
  font-weight: 520;
  letter-spacing: -0.05em;
  line-height: 1.05;
}

.optional-settings-intro {
  margin: -8px 0 0;
  color: var(--muted);
  font-size: 0.82rem;
  line-height: 1.65;
}

.preference-group {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 0;
  border: 0;
  margin: 0;
}

.preference-group legend {
  padding: 0;
  color: rgba(247, 248, 250, 0.82);
  font-size: 0.72rem;
  letter-spacing: 0.035em;
}

.preference-chips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.preference-chips label {
  min-width: 0;
}

.preference-chips input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

.preference-chips span {
  display: grid;
  min-height: 44px;
  place-items: center;
  padding: 0 8px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.025);
  color: var(--muted);
  font-size: 0.72rem;
  text-align: center;
  transition: border-color 150ms ease, background 150ms ease, color 150ms ease;
}

.preference-chips input:checked + span {
  border-color: rgba(255, 255, 255, 0.32);
  background: rgba(255, 255, 255, 0.12);
  color: var(--text);
}

.preference-chips input:focus-visible + span {
  outline: 2px solid rgba(255, 255, 255, 0.85);
  outline-offset: 2px;
}

.optional-settings-apply {
  width: 100%;
  margin-top: 2px;
}

/* Detailed optional scene direction sheet */
.scene-direction-dialog.optional-settings-dialog {
  width: min(calc(100vw - 20px), 620px);
  max-width: min(calc(100vw - 20px), 620px);
  height: min(calc(100svh - 20px), 880px);
  max-height: min(calc(100svh - 20px), 880px);
  overflow: hidden;
  border-color: rgba(255, 255, 255, 0.18);
  border-radius: 24px;
  background: rgba(13, 15, 18, 0.82);
  -webkit-backdrop-filter: blur(28px) saturate(135%);
  backdrop-filter: blur(28px) saturate(135%);
  box-shadow: 0 28px 100px rgba(0, 0, 0, 0.62), inset 0 1px rgba(255, 255, 255, 0.06);
}

.scene-direction-dialog::backdrop {
  background: rgba(2, 3, 5, 0.7);
  -webkit-backdrop-filter: blur(14px) saturate(90%);
  backdrop-filter: blur(14px) saturate(90%);
}

.scene-direction-panel.optional-settings-panel {
  display: grid;
  height: 100%;
  min-height: 0;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 0;
  padding: 0;
}

.scene-direction-header.optional-settings-header {
  position: relative;
  z-index: 2;
  align-items: center;
  padding: calc(22px + var(--safe-top) * 0.18) 22px 17px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(14, 16, 20, 0.78);
  -webkit-backdrop-filter: blur(20px) saturate(125%);
  backdrop-filter: blur(20px) saturate(125%);
}

.scene-direction-header .eyebrow {
  color: rgba(247, 248, 250, 0.72);
  font-size: 0.62rem;
  letter-spacing: 0.22em;
}

.scene-direction-header.optional-settings-header h2 {
  max-width: 12em;
  margin-top: 7px;
  font-size: clamp(1.75rem, 7vw, 2.45rem);
  letter-spacing: -0.055em;
}

.scene-direction-header .optional-settings-close {
  flex: 0 0 auto;
  align-self: flex-start;
  color: rgba(247, 248, 250, 0.9);
  font-size: 1.65rem;
}

.scene-direction-scroll {
  min-height: 0;
  padding: 20px 22px 30px;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-color: rgba(255, 255, 255, 0.24) transparent;
  scrollbar-width: thin;
  -webkit-overflow-scrolling: touch;
}

.scene-direction-scroll::-webkit-scrollbar {
  width: 4px;
}

.scene-direction-scroll::-webkit-scrollbar-thumb {
  border-radius: 99px;
  background: rgba(255, 255, 255, 0.24);
}

.scene-direction-intro.optional-settings-intro {
  max-width: 34em;
  margin: 0;
  color: rgba(247, 248, 250, 0.66);
  font-size: 0.86rem;
  line-height: 1.75;
}

.scene-mode-section,
.scene-hints-section {
  display: grid;
  gap: 13px;
  margin-top: 30px;
}

.scene-mode-section h3,
.scene-hints-header h3,
.camera-mix h3 {
  margin: 0;
  font-size: clamp(1.08rem, 4.8vw, 1.38rem);
  font-weight: 570;
  letter-spacing: -0.035em;
  line-height: 1.3;
}

.scene-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.055);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
}

.scene-mode-switch button {
  min-height: 50px;
  padding: 0 14px;
  cursor: pointer;
  border: 0;
  border-radius: 12px;
  background: transparent;
  color: var(--muted);
  font-size: 0.88rem;
  transition: background 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.scene-mode-switch button[aria-pressed="true"] {
  background: rgba(247, 248, 250, 0.94);
  box-shadow: 0 7px 20px rgba(0, 0, 0, 0.22);
  color: #0a0b0d;
}

.scene-mode-switch button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

.scene-mode-note {
  min-height: 1.5em;
  margin: 0;
  color: var(--muted);
  font-size: 0.76rem;
  line-height: 1.6;
}

.scene-hints-section {
  margin-top: 36px;
}

.scene-hints-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.scene-hints-header > span {
  flex: 0 0 auto;
  color: var(--faint);
  font-size: 0.67rem;
}

.scene-hints-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.scene-hint-card {
  display: grid;
  min-width: 0;
  align-content: start;
  gap: 13px;
  padding: 15px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 17px;
  background: rgba(255, 255, 255, 0.045);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.025);
}

.scene-hint-meta {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
  color: rgba(247, 248, 250, 0.68);
  font-size: 0.72rem;
}

.scene-hint-meta b {
  display: grid;
  width: 27px;
  height: 27px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 999px;
  background: rgba(214, 185, 139, 0.1);
  color: #d6b98b;
  font-size: 0.62rem;
  font-variant-numeric: tabular-nums;
  font-weight: 620;
}

.scene-hint-question {
  min-height: 2.9em;
  color: var(--text);
  font-size: 0.91rem;
  line-height: 1.46;
  word-break: keep-all;
}

.scene-hint-card textarea {
  width: 100%;
  min-height: 68px;
  padding: 11px 10px;
  resize: vertical;
  border: 1px solid transparent;
  border-radius: 10px;
  outline: 0;
  background: rgba(4, 5, 7, 0.27);
  color: var(--text);
  font-size: 0.76rem;
  line-height: 1.55;
  transition: border-color 150ms ease, background 150ms ease;
}

.scene-hint-card textarea::placeholder {
  color: rgba(167, 171, 178, 0.64);
  opacity: 1;
}

.scene-hint-card textarea:focus {
  border-color: rgba(255, 255, 255, 0.28);
  background: rgba(4, 5, 7, 0.45);
}

.camera-mix {
  display: grid;
  gap: 18px;
  margin-top: 34px;
  padding: 19px 17px 20px;
  border: 1px solid rgba(255, 255, 255, 0.11);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.055);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
  backdrop-filter: blur(18px) saturate(120%);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.035);
}

.camera-mix-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
}

.camera-mix-header > span {
  padding: 5px 9px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.67rem;
}

.camera-mix-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.camera-mix-values > div {
  min-width: 0;
}

.camera-mix-values > div > span {
  display: flex;
  min-height: 2.8em;
  align-items: flex-start;
  gap: 6px;
  color: rgba(247, 248, 250, 0.75);
  font-size: 0.7rem;
  line-height: 1.35;
}

.camera-mix-values i {
  width: 8px;
  height: 8px;
  flex: 0 0 auto;
  margin-top: 2px;
  border-radius: 50%;
  background: #ef5344;
}

.camera-mix-values > div:nth-child(2) i {
  background: #f28a2b;
}

.camera-mix-values > div:nth-child(3) i {
  background: #f7cf46;
}

.camera-mix-values output {
  display: block;
  margin-top: 2px;
  color: var(--text);
  font-size: clamp(1.65rem, 7vw, 2.15rem);
  font-variant-numeric: tabular-nums;
  font-weight: 670;
  letter-spacing: -0.045em;
  line-height: 1;
}

.camera-mix-control {
  position: relative;
  height: 54px;
}

.camera-mix-track {
  position: absolute;
  top: 21px;
  right: 13px;
  left: 13px;
  height: 12px;
  overflow: hidden;
  border-radius: 999px;
  background: linear-gradient(to right,
    #ef5344 0 var(--mix-a),
    #f28a2b var(--mix-a) var(--mix-p),
    #f7cf46 var(--mix-p) 100%);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.22);
}

.camera-mix-track > span {
  display: none;
}

.camera-mix-control input[type="range"] {
  position: absolute;
  z-index: 2;
  top: 6px;
  left: 13px;
  width: calc(100% - 26px);
  height: 42px;
  padding: 0;
  margin: 0;
  cursor: pointer;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
  background: transparent;
}

.camera-mix-control input[type="range"] + input[type="range"] {
  z-index: 3;
}

.camera-mix-control input[type="range"]::-webkit-slider-runnable-track {
  height: 12px;
  background: transparent;
}

.camera-mix-control input[type="range"]::-webkit-slider-thumb {
  width: 40px;
  height: 40px;
  margin-top: -14px;
  cursor: grab;
  pointer-events: auto;
  border: 2px solid #0b0c0e;
  border-radius: 50%;
  background: #f7f8fa;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.38);
  -webkit-appearance: none;
  appearance: none;
}

.camera-mix-control input[type="range"]::-moz-range-track {
  height: 12px;
  background: transparent;
}

.camera-mix-control input[type="range"]::-moz-range-thumb {
  width: 38px;
  height: 38px;
  cursor: grab;
  pointer-events: auto;
  border: 2px solid #0b0c0e;
  border-radius: 50%;
  background: #f7f8fa;
  box-shadow: 0 3px 12px rgba(0, 0, 0, 0.38);
}

.camera-mix-control input[type="range"]:focus-visible::-webkit-slider-thumb {
  outline: 3px solid rgba(255, 255, 255, 0.88);
  outline-offset: 3px;
}

.camera-mix-help {
  margin: 0;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.7;
}

.scene-direction-actions {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(112px, 0.78fr) minmax(0, 2fr);
  gap: 9px;
  padding: 13px 18px calc(13px + var(--safe-bottom));
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(12, 14, 17, 0.84);
  -webkit-backdrop-filter: blur(22px) saturate(125%);
  backdrop-filter: blur(22px) saturate(125%);
}

.scene-direction-actions .secondary-button,
.scene-direction-actions .primary-button {
  width: 100%;
  min-height: 54px;
  padding: 0 14px;
  border-radius: 999px;
  font-size: 0.84rem;
}

.scene-direction-actions .scene-reset {
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: transparent;
  color: rgba(247, 248, 250, 0.82);
}

.scene-direction-actions .optional-settings-apply {
  margin: 0;
  border: 1px solid rgba(255, 255, 255, 0.19);
  background: #050607;
  color: #fff;
}

.optional-settings-trigger.is-configured::after {
  content: "✓";
  color: #d6b98b;
}

.comparison,
.comparison-section,
.service-comparison {
  overflow: hidden;
}

.service-positioning {
  width: fit-content;
  max-width: 100%;
  margin: 0;
  padding: 8px 11px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(23, 26, 31, 0.58);
  color: rgba(247, 248, 250, 0.9);
  font-size: 0.69rem;
  font-weight: 590;
  letter-spacing: 0.045em;
  line-height: 1.35;
  -webkit-backdrop-filter: blur(15px) saturate(125%);
  backdrop-filter: blur(15px) saturate(125%);
}

.comparison {
  display: grid;
  gap: 34px;
  padding-top: clamp(70px, 13vh, 150px);
  padding-bottom: clamp(70px, 13vh, 150px);
  border-bottom: 1px solid var(--line);
}

.comparison-scroll-hint {
  margin: -10px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
  letter-spacing: 0.01em;
}

.product-flows { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.product-flows article { min-width: 0; padding: 20px 12px 16px 0; border-top: 1px solid var(--line); }
.product-flows svg,
.product-flows article > img { display: block; width: 36px; height: 36px; margin-bottom: 20px; }
.product-flows svg { fill: none; stroke: #b1b6c0; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.product-flows h3 { margin: 0; font-size: 1.1rem; font-weight: 550; letter-spacing: -0.025em; }
.product-flows article > p { min-height: 3em; margin: 8px 0 20px; color: var(--muted); font-size: 0.73rem; line-height: 1.5; }
.product-flows ol { padding: 0; margin: 0; list-style: none; }
.product-flows li { position: relative; min-height: 46px; padding: 0 0 18px 22px; font-size: 0.74rem; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; }
.product-flows li::before { content: ""; position: absolute; left: 3px; top: 5px; width: 5px; height: 5px; border: 1px solid currentColor; border-radius: 50%; }
.product-flows li:not(:last-child)::after { content: ""; position: absolute; left: 5px; top: 15px; bottom: 6px; width: 1px; background: var(--line-strong); }
.product-flows .is-service { border-color: #d1d5db; }
.product-flows .is-service li { color: var(--text); }
.automation-labels { display: flex; min-height: 56px; align-items: start; }
.automation-tag { display: inline-block; padding: 5px 8px; border: 1px solid var(--line-strong); border-radius: 5px; color: #d8eadb; font-size: 0.65rem; line-height: 1.5; }
.automation-tag--full { color: #102219; background: #d8eadb; border-color: #d8eadb; font-weight: 650; }
.product-flows li:nth-child(2) { color: #d8eadb; }
.product-flows .is-service li { color: #d8eadb; }
.automation-scope-note { max-width: 780px; margin: 0; color: var(--muted); font-size: 0.73rem; line-height: 1.7; }
.automation-comparison > td { background: rgba(216,234,219,0.035); }
.automation-comparison > td:last-child { background: rgba(216,234,219,0.12); color: #d8eadb; }
.automation-comparison strong { font-weight: 550; }
.comparison .product-comparison-table { min-width: 1040px; table-layout: fixed; }
.product-comparison-table th:first-child { width: 120px; position: sticky; left: 0; z-index: 1; background: var(--bg); }
.product-comparison-table th:last-child,
.product-comparison-table td:last-child { background: rgba(255,255,255,0.045); }
.product-comparison-table thead th { font-size: 0.75rem; color: var(--text); }
.product-comparison-table a { text-decoration: underline; text-underline-offset: 4px; }
@media (max-width: 899px) {
  .product-flows { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 78%; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .product-flows article { scroll-snap-align: start; }
}

.comparison-table-wrap,
.comparison-scroll,
.service-comparison-table {
  width: 100%;
  overflow-x: auto;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  -webkit-overflow-scrolling: touch;
}

.comparison-table,
.comparison table,
.comparison-section table,
.service-comparison table {
  width: 100%;
  min-width: 650px;
  border-collapse: collapse;
  color: var(--text);
  font-size: 0.8rem;
  text-align: left;
}

.comparison-table th,
.comparison-table td,
.comparison table th,
.comparison table td,
.comparison-section table th,
.comparison-section table td,
.service-comparison table th,
.service-comparison table td {
  padding: 15px 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  vertical-align: top;
}

.comparison-table th,
.comparison table th,
.comparison-section table th,
.service-comparison table th {
  color: var(--muted);
  font-size: 0.66rem;
  font-weight: 560;
  letter-spacing: 0.045em;
}

.comparison-table tbody tr:last-child td,
.comparison table tbody tr:last-child td,
.comparison-section table tbody tr:last-child td,
.service-comparison table tbody tr:last-child td {
  border-bottom: 0;
}

.comparison-note,
.table-note {
  margin: 12px 0 0;
  color: var(--faint);
  font-size: 0.67rem;
  line-height: 1.6;
}

.about-section,
.about-chapter,
.story-section,
.technology-section,
.service-model-section,
.values-section,
.everyday-section {
  scroll-margin-top: calc(var(--header-height) + var(--safe-top) + 20px);
}

.chapter-grid,
.value-grid,
.service-model-grid {
  display: grid;
  gap: 16px;
}

.value-card,
.technology-card,
.service-model-card {
  min-width: 0;
  padding: 18px 0;
  border-top: 1px solid var(--line);
}

.value-card h3,
.technology-card h3,
.service-model-card h3 {
  margin: 0;
  font-size: 1rem;
  font-weight: 560;
}

.value-card p,
.technology-card p,
.service-model-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.7;
}

html[lang="zh-CN"] body,
html[lang="ja"] body {
  word-break: normal;
  line-break: strict;
}

@media (min-width: 700px) {
  .gallery-stats {
    padding: 14px 16px 15px;
  }

  .optional-settings-panel {
    padding: 26px;
  }

  .chapter-grid,
  .value-grid,
  .service-model-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }
}

@media (max-width: 699px) {
  :root {
    --page-inline: clamp(20px, 5.2vw, 28px);
  }

  body {
    line-height: 1.62;
  }

  .site-header {
    padding-right: var(--page-inline);
    padding-left: var(--page-inline);
  }

  .brand-name,
  .brand > span {
    font-size: 0.7rem;
    letter-spacing: 0.14em;
  }

  .header-actions {
    gap: 8px;
  }

  .language-control select,
  .language-select {
    width: 94px;
    max-width: 94px;
    padding-right: 20px;
    padding-left: 9px;
    font-size: 0.65rem;
  }

  .header-link {
    font-size: 0.73rem;
  }

  .page-intro {
    gap: 14px;
    margin-bottom: clamp(38px, 8vh, 64px);
  }

  .page-lead,
  .heading-copy {
    font-size: 1rem;
    line-height: 1.68;
  }

  .field label,
  .field-legend {
    font-size: 0.76rem;
  }

  .field input,
  .field textarea,
  .field select {
    min-height: 58px;
    font-size: 1.04rem;
  }

  .about-intro .lead,
  .copy-columns,
  .story-copy > p:not(.eyebrow),
  .storage-note > p:last-child {
    line-height: 1.76;
  }

  .gallery-shell .page-intro {
    padding-right: calc(var(--page-inline) - 3px);
    padding-left: calc(var(--page-inline) - 3px);
  }

  .gallery-stats {
    margin-top: 12px;
  }
}

@media (max-width: 359px) {
  .site-header .brand-name,
  .site-header .brand > span {
    display: none;
  }

  .scene-direction-dialog.optional-settings-dialog {
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
    height: calc(100svh - 12px);
    max-height: calc(100svh - 12px);
    border-radius: 20px;
  }

  .scene-direction-header.optional-settings-header,
  .scene-direction-scroll {
    padding-right: 16px;
    padding-left: 16px;
  }

  .scene-hints-grid {
    grid-template-columns: 1fr;
  }

  .scene-hint-question {
    min-height: 0;
  }

  .scene-direction-actions {
    grid-template-columns: 104px minmax(0, 1fr);
    padding-right: 12px;
    padding-left: 12px;
  }

  .camera-mix {
    padding-right: 13px;
    padding-left: 13px;
  }
}

.page-intro,
.page-intro > *,
.story-pair,
.story-pair > *,
.story-copy,
.about-chapter,
.section-heading,
.results-heading {
  min-width: 0;
}

html[lang="ja"] .page-title,
html[lang="ja"] .page-lead,
html[lang="ja"] .results-greeting,
html[lang="ja"] .about h2,
html[lang="ja"] .about p,
html[lang="zh-CN"] .page-title,
html[lang="zh-CN"] .page-lead,
html[lang="zh-CN"] .results-greeting,
html[lang="zh-CN"] .about h2,
html[lang="zh-CN"] .about p {
  overflow-wrap: anywhere;
  word-break: normal;
}

html[lang="ja"] .scene-hint-question,
html[lang="zh-CN"] .scene-hint-question {
  overflow-wrap: anywhere;
  word-break: normal;
}

/* About reading rhythm and progress */
.reading-timeline {
  --timeline-progress: 0;
  position: fixed;
  z-index: 42;
  top: 50%;
  right: max(12px, env(safe-area-inset-right, 0px));
  width: 126px;
  padding: 12px 10px 10px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 18px;
  background: rgba(11, 13, 16, 0.7);
  -webkit-backdrop-filter: blur(16px) saturate(125%);
  backdrop-filter: blur(16px) saturate(125%);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.28);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(12px, -50%, 0);
  transition: opacity 220ms ease, transform 280ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

.reading-timeline.is-in-range {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, -50%, 0);
}

.reading-timeline-rail {
  position: absolute;
  top: 23px;
  bottom: 33px;
  left: 18px;
  width: 1px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.16);
  pointer-events: none;
}

.reading-timeline-rail > span {
  display: block;
  width: 100%;
  height: calc(var(--timeline-progress) * 100%);
  background: rgba(255, 255, 255, 0.92);
  transform-origin: top;
  transition: height 140ms linear;
}

.reading-timeline ol {
  display: grid;
  gap: 1px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.reading-timeline a {
  display: grid;
  min-height: 28px;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 7px;
  color: rgba(247, 248, 250, 0.48);
  transition: color 180ms ease, transform 180ms ease;
}

.reading-timeline a > span {
  position: relative;
  z-index: 1;
  display: block;
  width: 5px;
  height: 5px;
  justify-self: center;
  border: 1px solid rgba(255, 255, 255, 0.56);
  border-radius: 50%;
  background: #121419;
  box-shadow: 0 0 0 3px rgba(11, 13, 16, 0.76);
  transition: width 180ms ease, height 180ms ease, border-color 180ms ease, background 180ms ease;
}

.reading-timeline a b {
  overflow: hidden;
  font-size: 0.58rem;
  font-weight: 560;
  letter-spacing: 0.045em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reading-timeline a:hover,
.reading-timeline a:focus-visible,
.reading-timeline a.is-active,
.reading-timeline a[aria-current="step"] {
  color: var(--text);
}

.reading-timeline a:hover,
.reading-timeline a:focus-visible {
  transform: translateX(-2px);
}

.reading-timeline a.is-active > span,
.reading-timeline a[aria-current="step"] > span {
  width: 9px;
  height: 9px;
  border-color: #fff;
  background: #fff;
}

.reading-timeline-percent {
  display: block;
  margin: 7px 1px 0 24px;
  color: rgba(247, 248, 250, 0.62);
  font-size: 0.56rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.08em;
  text-align: right;
}

[data-reading-section] {
  scroll-margin-top: calc(var(--header-height) + var(--safe-top) + 16px);
}

.about-intro {
  min-height: min(68svh, 720px);
  padding-top: clamp(96px, 14vh, 150px);
  padding-bottom: clamp(48px, 8vh, 88px);
}

.about-chapter,
.process,
.pricing,
.storage-note,
.faq,
.comparison,
.operations {
  gap: 28px;
  padding-top: clamp(52px, 9vh, 104px);
  padding-bottom: clamp(52px, 9vh, 104px);
}

.story-pair {
  gap: clamp(28px, 6vw, 64px);
  padding-top: clamp(58px, 10vh, 112px);
  padding-bottom: clamp(58px, 10vh, 112px);
}

.editorial-duo {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: calc((100% - 3px) / 2);
  grid-template-columns: none;
  gap: 3px;
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  background: var(--bg-deep);
}

.editorial-duo::-webkit-scrollbar { display: none; }

.about .editorial-marquee { position: relative; width: 100%; height: calc((100vw - 8px) / 2); margin: 0; overflow: hidden; background: var(--bg-deep); }
@media (max-width: 699px) { .about .editorial-marquee { height: 108vw; } }

.editorial-carousel { position: relative; }

.editorial-arrow {
  position: absolute;
  z-index: 2;
  top: 50%;
  width: 44px;
  height: 44px;
  transform: translateY(-50%);
  color: #fff;
  background: rgba(10, 12, 16, 0.3);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-radius: 50%;
  font-size: 1.8rem;
  cursor: pointer;
}

.editorial-arrow--previous { left: 10px; }
.editorial-arrow--next { right: 20px; }
.editorial-arrow:disabled { opacity: 0; pointer-events: none; }

@media (max-width: 699px) {
  .editorial-duo { grid-auto-columns: 84%; }
  .editorial-arrow { width: 40px; height: 40px; }
}

.editorial-duo .editorial-image {
  aspect-ratio: 2 / 3;
  min-width: 0;
  scroll-snap-align: start;
}

.editorial-duo .editorial-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.editorial-duo .editorial-image figcaption {
  right: 10px;
  bottom: 10px;
  left: 10px;
  margin: 0;
  padding: 0;
  font-size: 0.52rem;
}

.operations {
  display: grid;
  border-bottom: 1px solid var(--line);
}

.operations .section-heading h2 {
  max-width: 12em;
  margin: 0;
  font-size: clamp(2rem, 7.5vw, 5rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1.02;
  word-break: keep-all;
}

.operations-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(18, 20, 24, 0.58);
  -webkit-backdrop-filter: blur(14px) saturate(120%);
  backdrop-filter: blur(14px) saturate(120%);
}

.operations-grid > div {
  display: grid;
  min-width: 0;
  min-height: 112px;
  align-content: space-between;
  gap: 18px;
  padding: 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.operations-grid > div:nth-child(2n) {
  border-right: 0;
}

.operations-grid > div:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.operations-grid dt {
  color: var(--muted);
  font-size: 0.68rem;
  letter-spacing: 0.035em;
}

.operations-grid dd {
  margin: 0;
  font-size: clamp(1.8rem, 8vw, 3.5rem);
  font-weight: 560;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.055em;
  line-height: 1;
}

.operations-grid dd small {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0;
}

.stat-slots {
  display: inline-flex;
  height: 1em;
  line-height: 1;
  vertical-align: bottom;
  font-variant-numeric: tabular-nums;
}

.stat-slot {
  display: inline-block;
  width: 0.62em;
  height: 1em;
  overflow: hidden;
}

.stat-slots > span:not(.stat-slot) { white-space: pre; }

.stat-slot-reel,
.stat-slot-reel > span {
  display: block;
  height: 1em;
  line-height: 1em;
}

.operations-updated {
  margin: -12px 0 0;
  color: var(--faint);
  font-size: 0.67rem;
  line-height: 1.6;
}

.service-facts {
  display: grid;
  border-top: 1px solid var(--line);
}

.service-facts article {
  display: grid;
  grid-template-columns: 34px minmax(0, 0.58fr) minmax(0, 1fr);
  align-items: baseline;
  gap: 10px;
  padding: 16px 0;
  border-bottom: 1px solid var(--line);
}

.service-facts article > span {
  color: var(--faint);
  font-size: 0.65rem;
  font-variant-numeric: tabular-nums;
}

.service-facts strong {
  font-size: 0.82rem;
  font-weight: 560;
}

.service-facts p {
  margin: 0;
  color: var(--muted);
  font-size: 0.78rem;
  line-height: 1.55;
}

@media (min-width: 700px) {
  .operations-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .operations-grid > div,
  .operations-grid > div:nth-child(2n) {
    border-right: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
  }

  .operations-grid > div:nth-child(3n) {
    border-right: 0;
  }

  .operations-grid > div:nth-last-child(-n + 3) {
    border-bottom: 0;
  }
}

@media (max-width: 1399px) {
  .reading-timeline {
    right: max(5px, env(safe-area-inset-right, 0px));
    width: 28px;
    padding: 9px 5px 7px;
    border-color: rgba(255, 255, 255, 0.1);
    border-radius: 999px;
    background: rgba(11, 13, 16, 0.62);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.24);
  }

  .reading-timeline-rail {
    top: 18px;
    bottom: 25px;
    left: 13px;
  }

  .reading-timeline ol {
    gap: 0;
  }

  .reading-timeline a {
    min-height: 20px;
    grid-template-columns: 16px;
    gap: 0;
  }

  .reading-timeline a b {
    display: none;
  }

  .reading-timeline-percent {
    margin: 4px 0 0;
    font-size: 0.48rem;
    letter-spacing: -0.02em;
    text-align: center;
  }
}

@media (min-width: 0px) {
  .reading-timeline {
    right: env(safe-area-inset-right, 0px);
    width: 16px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
  }

  .reading-timeline-rail {
    top: 7px;
    bottom: 7px;
    left: 8px;
    background: rgba(255, 255, 255, 0.2);
  }

  .reading-timeline a {
    min-height: 16px;
    grid-template-columns: 16px;
  }

  .reading-timeline a b {
    display: none;
  }

  .reading-timeline a > span {
    width: 4px;
    height: 4px;
    box-shadow: 0 0 0 2px #0b0c0e;
  }

  .reading-timeline a.is-active > span,
  .reading-timeline a[aria-current="step"] > span {
    width: 7px;
    height: 7px;
  }

  .reading-timeline-percent {
    display: none;
  }

  .reading-timeline a:focus-visible {
    outline: 1px solid #fff;
    outline-offset: 1px;
  }
}

@media (max-width: 699px) {
  .about .content-width {
    padding-right: max(36px, calc(env(safe-area-inset-right, 0px) + 30px));
  }

  /* Keep the long-form About page visually dense on a phone. */
  .about-intro {
    min-height: min(60svh, 620px);
    padding-top: clamp(88px, 12vh, 116px);
    padding-bottom: 38px;
  }

  .about-chapter,
  .process,
  .pricing,
  .storage-note,
  .faq,
  .comparison,
  .operations {
    gap: 22px;
    padding-top: 40px;
    padding-bottom: 40px;
  }

  .story-pair {
    gap: 28px;
    padding-top: 42px;
    padding-bottom: 42px;
  }

  #story {
    padding-bottom: 32px;
  }

  #technology {
    padding-top: 34px;
  }

  .editorial-image--wide,
  .editorial-image--break {
    height: min(70svh, 660px);
  }

  .service-facts article {
    grid-template-columns: 28px minmax(0, 1fr);
    gap: 5px 9px;
  }

  .service-facts p {
    grid-column: 2;
  }
}

@media (max-width: 359px) {
  .reading-timeline {
    right: env(safe-area-inset-right, 0px);
    width: 16px;
  }
}

/* Early proof section: match the three live statistics on kil.kr. */
.operations-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-radius: 0;
  background: transparent;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}

.operations-grid > div,
.operations-grid > div:nth-child(2n),
.operations-grid > div:nth-child(3n),
.operations-grid > div:nth-last-child(-n + 2),
.operations-grid > div:nth-last-child(-n + 3) {
  min-height: 130px;
  gap: 12px;
  border-right: 1px solid var(--line);
  border-bottom: 0;
}

.operations-grid > div:last-child {
  border-right: 0;
}

.operations-grid dd {
  font-size: clamp(1.85rem, 8vw, 3.6rem);
}

.order-time-summary {
  display: grid;
  gap: 7px;
  padding: 26px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.order-time-summary > p:not(.eyebrow) {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.88rem;
}

.order-time-summary strong {
  font-size: clamp(2.25rem, 8vw, 5rem);
  font-weight: 500;
  letter-spacing: -0.06em;
  line-height: 1;
}

.order-time-summary small,
.time-comparison .fine-print,
.operations-method {
  color: var(--muted);
  font-size: 0.74rem;
  line-height: 1.65;
}

.time-comparison {
  display: grid;
  gap: 20px;
}

.time-comparison h3 {
  max-width: 16em;
  margin: 0;
  font-size: clamp(1.85rem, 7vw, 3.6rem);
  font-weight: 500;
  letter-spacing: -0.055em;
  line-height: 1.08;
}

.time-comparison-rows {
  display: grid;
  gap: 22px;
}

.time-comparison-row {
  display: grid;
  gap: 9px;
}

.time-comparison-row > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.time-comparison-row span {
  color: var(--muted);
  font-size: 0.78rem;
}

.time-comparison-row strong {
  color: var(--text);
  font-size: clamp(1.35rem, 5vw, 2rem);
  font-weight: 550;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.04em;
}

.time-comparison-track {
  display: block;
  width: 100%;
  height: 7px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.1);
}

.time-comparison-track i {
  display: block;
  width: max(8px, var(--bar-width));
  height: 100%;
  background: #7d838d;
  transform-origin: left;
}

.time-comparison-row.is-featured .time-comparison-track i {
  background: #f5f5f3;
}

.has-metrics-motion .time-comparison-track i {
  transform: scaleX(0);
  transition: transform 1250ms cubic-bezier(0.2, 0.85, 0.2, 1);
}

.has-metrics-motion .time-comparison.is-visible .time-comparison-track i {
  transform: scaleX(1);
}

.time-comparison .fine-print {
  max-width: 760px;
  margin: 0;
}

.operations-method {
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.operations-method summary {
  width: fit-content;
  cursor: pointer;
  color: var(--text);
}

.operations-method p {
  max-width: 760px;
  margin: 12px 0 0;
}

@media (max-width: 699px) {
  .operations-grid > div,
  .operations-grid > div:nth-child(2n),
  .operations-grid > div:nth-child(3n),
  .operations-grid > div:nth-last-child(-n + 2),
  .operations-grid > div:nth-last-child(-n + 3) {
    min-height: 100px;
    padding: 12px 8px;
  }

  .operations-grid dd {
    font-size: clamp(1.55rem, 7vw, 2.2rem);
  }

  .operations-grid dt {
    font-size: 0.62rem;
    line-height: 1.35;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-header .brand img, .footer-capsule { animation: none; }
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }

  .page-transition.is-active .transition-mark img,
  .capsule-spinner.is-spinning img {
    animation: none !important;
  }

  .reading-timeline-rail > span {
    transition: none !important;
  }
}

/* The current beta is the primary offer; the struck price is a future price. */
.beta-offer { display: grid; gap: 10px; padding: 24px 0; border-block: 1px solid var(--line); }
.beta-offer .beta-offer-reference { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; margin: 0; color: var(--muted); }
.beta-offer-reference s { font-size: 22px; text-decoration-thickness: 1.5px; }
.beta-offer-reference span { font-size: 11px; }
.beta-offer > strong { font-size: clamp(38px, 8vw, 64px); font-weight: 600; line-height: 1.15; letter-spacing: -.05em; }
.beta-offer > p:not(.beta-offer-reference) { margin: 0; font-size: 16px; color: var(--text); }
.beta-offer > small { max-width: 48em; color: var(--muted); font-size: 12px; line-height: 1.8; }
.beta-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; font-size: 13px; }
.upload-page > .beta-offer { margin: 0 0 30px; }
.commerce-future { margin-top: 36px; border-top: 1px solid var(--line); padding-top: 20px; }
.commerce-future > summary { cursor: pointer; color: var(--muted); font-size: 13px; }

@media (max-width: 699px) {
  .site-header, .site-header.page-shell { padding-top: calc(8px + var(--safe-top)); }
}

[data-ambient-scenes] .copy-columns p,
[data-ambient-scenes] .section-heading p,
[data-ambient-scenes] .process-list p { color: #d0d3d8; }

.viewer-heading{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0}
.viewer-brand-mark{flex:0 0 20px;width:20px;height:20px;animation:viewer-mark-turn 5s linear infinite}
.viewer-brand-mark, img[src*="/render/premium/assets/capsule.svg"]{filter:drop-shadow(0 0 4px #7dffce99) drop-shadow(0 0 10px #40c9ff66)}
@keyframes viewer-mark-turn{to{transform:rotate(360deg)}}
.viewer .viewer-close,.viewer .viewer-arrow,.viewer .viewer-like,.viewer .viewer-mode-toggle,.viewer .viewer-fullscreen{border:0!important;border-radius:50%!important;background:transparent!important;box-shadow:none!important}
.viewer-frame:focus{outline:none}
@media(prefers-reduced-motion:reduce){.viewer-brand-mark{animation:none}}

.site-header .language-control select{width:76px;max-width:76px;min-height:36px;height:36px;border-radius:8px;padding:0 20px 0 10px;backdrop-filter:none;-webkit-backdrop-filter:none}
/* Compact mobile header: one aligned utility row and four equal navigation cells. */
@media(max-width:899px){
 :root{--header-height:100px;--header-bottom:5px}
 .site-header,.site-header.page-shell{grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:5px;align-items:center;padding:calc(8px + var(--safe-top)) 12px 5px}
 .site-header>.brand{grid-column:1;grid-row:1;min-width:0;gap:7px}.site-header .brand img{width:24px;height:24px;flex:0 0 24px}.site-header .brand>span,.site-header .brand-name{font-size:clamp(9px,2.7vw,11px);letter-spacing:.11em;white-space:nowrap}
 .site-header>.header-actions{grid-column:2;grid-row:1;gap:5px;align-items:center;justify-content:flex-end}
 .site-header .language-control{margin:0}.site-header .language-control select{display:block;width:56px;max-width:56px;min-height:34px;height:34px;padding:0 15px 0 7px;font-size:10px;border-radius:8px}
 .site-header .header-kil{position:static;right:auto;bottom:auto;width:28px;height:34px;flex:0 0 28px}.site-header .header-kil img{width:26px;height:26px}
 .site-header>.header-nav{grid-column:1/-1;grid-row:2;padding:0;gap:4px;align-items:center;grid-template-columns:repeat(4,minmax(0,1fr))}.site-header .header-nav a{min-width:0;min-height:40px;padding:0 3px;font-size:12px;border-radius:6px}
}

/* Operator entry stays quietly at the end of public pages. */
.merchant-footer .footer-admin-entry{margin:12px 0 0}.merchant-footer a.footer-admin{display:inline-flex;align-items:center;min-height:32px;padding:3px 0;border:0;background:none;color:#9098a3;font-size:10px;text-decoration:none;letter-spacing:.02em}.merchant-footer a.footer-admin:hover{color:#e5e9ef}.merchant-footer a.footer-admin:focus-visible{outline:1px solid #b7c2cf;outline-offset:3px}
