:root {
  --ink: #0b1015;
  --ink-2: #111821;
  --paper: #f4f1ea;
  --paper-2: #e9e4da;
  --text: #1b2429;
  --muted: #6f797f;
  --line: rgba(255,255,255,.16);
  --gold: #d6b36a;
  --moss: #74806c;
  --lavender: #d9d2e9;
  --steel: #7890a3;
  --mint: #72b9a6;
  --coral: #d58c7c;
  --amber: #d7a06f;
  --radius: 26px;
  --shadow: 0 24px 80px rgba(9,16,23,.18);
}

/* =========================================================
   PROTECTED KOREAN TYPOGRAPHY RULE
   Korean never uses serif, Myeongjo, calligraphic or brush styles.
   English project names and English editorial headings may retain serif.
   ========================================================= */
html[lang="ko"] [data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-style: normal;
}

html[lang="ko"] .hero h1 {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-weight: 430;
  line-height: 1.1;
  letter-spacing: -.044em;
  font-size: clamp(2.75rem, 4vw, 4.35rem);
}

html[lang="ko"] .origin h2[data-i18n],
html[lang="ko"] .section-heading h2[data-i18n],
html[lang="ko"] .library-section h2[data-i18n],
html[lang="ko"] .home-quote[data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-weight: 500;
  line-height: 1.16;
  letter-spacing: -.035em;
}

html[lang="ko"] .origin blockquote[data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-weight: 500;
  line-height: 1.45;
  letter-spacing: -.025em;
}

html[lang="ko"] .principle-grid h3[data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-weight: 650;
  letter-spacing: -.025em;
}

/* Keep English brand/project names editorial even while the interface is Korean. */
html[lang="ko"] .project-card h3:not([data-i18n]),
html[lang="ko"] .app-card h3:not([data-i18n]),
html[lang="ko"] .star-panel h2 {
  font-family: Georgia, "Times New Roman", serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--text);
  background: var(--paper);
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans KR", "Apple SD Gothic Neo", Arial, sans-serif;
  line-height: 1.6;
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }

.skip-link {
  position: fixed; left: 1rem; top: -5rem; z-index: 1000;
  padding: .75rem 1rem; background: white; border-radius: .75rem;
}
.skip-link:focus { top: 1rem; }

.site-header {
  position: fixed; inset: 0 0 auto 0; z-index: 100;
  height: 82px; display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 2rem; padding: 0 4vw;
  color: rgba(255,255,255,.92);
  background: linear-gradient(to bottom, rgba(7,11,15,.84), rgba(7,11,15,0));
  transition: background .3s ease, backdrop-filter .3s ease;
}
.site-header.scrolled {
  background: rgba(11,16,21,.78);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.brand-lockup {
  display: flex; align-items: center; gap: .75rem; text-decoration: none;
  letter-spacing: .08em;
}
.brand-lockup strong { display: block; font-size: .82rem; }
.brand-lockup small { display: block; font-size: .66rem; opacity: .65; margin-top: .05rem; }
.brand-mark { color: var(--gold); font-size: 1.25rem; filter: drop-shadow(0 0 10px rgba(214,179,106,.8)); }
.top-nav { justify-self: center; display: flex; gap: 1.7rem; }
.top-nav a {
  text-decoration: none; font-size: .77rem; letter-spacing: .04em; opacity: .72;
  transition: opacity .2s ease;
}
.top-nav a:hover, .top-nav a:focus-visible { opacity: 1; }
.language-toggle {
  min-width: 44px; height: 36px; border: 1px solid rgba(255,255,255,.25);
  border-radius: 99px; color: white; background: rgba(255,255,255,.06);
  cursor: pointer;
}
.language-toggle:hover { background: rgba(255,255,255,.12); }

.hero {
  position: relative; min-height: 100svh; overflow: hidden;
  background:
    radial-gradient(circle at 65% 25%, rgba(57,72,88,.28), transparent 35%),
    radial-gradient(circle at 20% 70%, rgba(72,66,92,.2), transparent 40%),
    linear-gradient(155deg, #0d151d 0%, #070b0f 64%, #0d1217 100%);
  color: white;
}
#constellationCanvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.star-layer { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.named-star {
  position: absolute; transform: translate(-50%, -50%);
  width: 22px; height: 22px; padding: 0; border: 0;
  background: transparent; pointer-events: auto; cursor: pointer;
  color: var(--star-color, white);
}
.named-star::before {
  content: ""; position: absolute; inset: 6px; border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 10px currentColor, 0 0 24px color-mix(in srgb, currentColor 60%, transparent);
  transition: transform .25s ease, box-shadow .25s ease;
}
.named-star::after {
  content: ""; position: absolute; inset: 0; border: 1px solid currentColor;
  border-radius: 50%; opacity: .25; transform: scale(.6);
  animation: starPulse 3.5s ease-out infinite;
}
.named-star:hover::before, .named-star:focus-visible::before, .named-star.active::before {
  transform: scale(1.6); box-shadow: 0 0 14px currentColor, 0 0 42px currentColor;
}
.named-star:focus-visible { outline: 1px solid rgba(255,255,255,.75); outline-offset: 8px; border-radius: 50%; }
.star-label {
  position: absolute; left: 50%; top: 25px; transform: translateX(-50%);
  white-space: nowrap; font-size: .58rem; letter-spacing: .13em; font-weight: 700;
  color: rgba(255,255,255,.72); text-shadow: 0 2px 10px #000;
  transition: color .2s ease, transform .2s ease;
}
.named-star:hover .star-label, .named-star.active .star-label {
  color: white; opacity: 1; transform: translateX(-50%) translateY(2px);
}
@keyframes starPulse {
  0% { transform: scale(.55); opacity: .32; }
  75%, 100% { transform: scale(2.2); opacity: 0; }
}

.mobile-explore-hint {
  display: none;
}

.hero-vignette {
  position: absolute; inset: 0; z-index: 4; pointer-events: none;
  background:
    linear-gradient(90deg, rgba(4,7,10,.10) 0%, rgba(4,7,10,.02) 52%, rgba(4,7,10,.04) 100%),
    radial-gradient(ellipse at center, transparent 24%, rgba(4,7,10,.16) 72%, rgba(4,7,10,.54) 100%);
}
.hero-content {
  position: relative; z-index: 6; width: min(570px, 78vw);
  padding: 27vh 0 12vh; margin-left: 6.5vw;
}
.eyebrow, .section-kicker, .project-type {
  font-size: .68rem; letter-spacing: .17em; font-weight: 700; text-transform: uppercase;
}
.eyebrow { color: rgba(255,255,255,.52); margin-bottom: 1.6rem; }
.hero h1 {
  margin: 0;
  max-width: 560px;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.03;
  letter-spacing: -.036em;
  font-size: clamp(2.85rem, 4.15vw, 4.55rem);
  text-wrap: balance;
}
.hero h1 span { display: block; }
.hero-accent {
  margin-top: .18em;
  background: linear-gradient(90deg, #fff 0%, #d6cfec 46%, #d7b772 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-copy { max-width: 520px; margin: 1.35rem 0 0; font-size: .94rem; color: rgba(255,255,255,.7); }
.ko-emphasis { margin-top: .5rem; color: rgba(255,255,255,.9); font-weight: 500; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 1.8rem; }
.button {
  min-height: 48px; display: inline-flex; align-items: center; justify-content: center;
  padding: .75rem 1.2rem; border-radius: 999px; text-decoration: none;
  border: 1px solid transparent; cursor: pointer; font-weight: 650; font-size: .88rem;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { color: #111; background: #f3efe5; }
.button-quiet { color: white; background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.22); }
.scroll-cue {
  position: absolute; z-index: 6; bottom: 2rem; left: 50%; transform: translateX(-50%);
  display: flex; flex-direction: column; align-items: center; gap: .55rem;
  color: rgba(255,255,255,.42); letter-spacing: .08em; font-size: .65rem;
}
.scroll-cue span { width: 1px; height: 34px; background: linear-gradient(white, transparent); animation: scrollCue 2s ease-in-out infinite; }
@keyframes scrollCue { 0%,100% { transform: scaleY(.5); opacity: .3; } 50% { transform: scaleY(1); opacity: 1; } }

.star-panel {
  position: absolute; z-index: 20; right: 3vw; top: 54%; transform: translateY(-46%) translateX(20px);
  width: min(328px, 84vw); max-height: min(430px, 72vh); overflow-y: auto;
  padding: 1.5rem 1.45rem;
  border: 1px solid rgba(255,255,255,.15); border-radius: 22px;
  background: rgba(12,18,24,.8); backdrop-filter: blur(20px);
  box-shadow: 0 24px 72px rgba(0,0,0,.38);
  opacity: 0; pointer-events: none; transition: opacity .28s ease, transform .28s ease;
}
.star-panel.open { opacity: 1; pointer-events: auto; transform: translateY(-50%) translateX(0); }
.panel-close {
  position: absolute; right: .85rem; top: .72rem; border: 0; background: transparent;
  color: rgba(255,255,255,.58); font-size: 1.4rem; cursor: pointer;
}
.panel-category {
  margin: 0 0 .35rem;
  padding-right: 2rem;
  color: var(--panel-color, var(--gold));
  font-size: .61rem;
  letter-spacing: .14em;
  line-height: 1.45;
  font-weight: 800;
}
.star-panel h2 {
  margin: 0;
  font-family: Georgia, serif;
  font-size: 1.95rem;
  line-height: 1.05;
  font-weight: 400;
}
.star-panel > p:not(.panel-category):not(.panel-status) {
  margin: .9rem 0;
  color: rgba(255,255,255,.68);
  font-size: .84rem;
  line-height: 1.6;
}
.panel-status {
  display: inline-flex;
  padding: .3rem .58rem;
  border-radius: 99px;
  background: rgba(255,255,255,.08);
  font-size: .64rem;
  color: rgba(255,255,255,.72);
}
.panel-link {
  display: inline-block;
  margin-top: .75rem;
  color: white;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.3);
  font-size: .85rem;
}

.section-shell { width: min(1200px, 88vw); margin: 0 auto; padding: 8rem 0; }
.section-kicker { color: #818b8f; margin-bottom: 1rem; }
.origin { padding-top: 9rem; }
.origin-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 8vw; align-items: start; }
.origin h2, .section-heading h2, .library-section h2 {
  margin: 0; font-family: Georgia, serif; font-weight: 400; letter-spacing: -.03em;
  font-size: clamp(2.4rem, 4.5vw, 5.2rem); line-height: 1.02;
}
.origin-copy { font-size: 1.02rem; color: #556064; padding-top: .4rem; }
.origin blockquote {
  margin: 6rem 0 0; padding: 2.3rem 0 0; border-top: 1px solid #cfc9bd;
  font-family: Georgia, serif; font-size: clamp(1.5rem, 2.5vw, 2.8rem); color: #414b4f;
}

.section-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: 6vw; align-items: end; margin-bottom: 3rem; }
.section-heading > p { color: #697377; margin: 0; }

.project-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
.project-card {
  position: relative; overflow: hidden; min-height: 520px; padding: 2rem;
  border-radius: var(--radius); box-shadow: var(--shadow);
  display: flex; flex-direction: column; isolation: isolate;
}
.project-card::before {
  content: ""; position: absolute; inset: 0; z-index: -2; background: var(--card-bg);
}
.project-card::after {
  content: ""; position: absolute; width: 330px; height: 330px; border-radius: 50%;
  right: -90px; top: -110px; z-index: -1; background: var(--card-orb);
  filter: blur(2px); opacity: .8;
}
.project-card-top { display: flex; justify-content: space-between; align-items: center; }
.project-index { font-family: Georgia, serif; opacity: .48; }
.status-chip {
  padding: .32rem .65rem; border-radius: 99px; font-size: .66rem;
  background: rgba(255,255,255,.45); border: 1px solid rgba(0,0,0,.08);
}
.status-chip.planned { background: rgba(255,255,255,.2); }
.project-symbol {
  width: 90px; height: 90px; border-radius: 28px; margin: auto 0 1.6rem;
  display: grid; place-items: center; font-family: Georgia, serif; font-size: 2rem;
  border: 1px solid rgba(0,0,0,.14); background: rgba(255,255,255,.22);
  backdrop-filter: blur(12px);
}
.project-type { margin: 0 0 .3rem; opacity: .56; }
.project-card h3 { margin: 0; font-family: Georgia, serif; font-weight: 400; font-size: 2.65rem; }
.project-card > p:not(.project-type) { max-width: 590px; }
.project-card ul { margin: 1rem 0 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: .45rem; }
.project-card li { padding: .32rem .62rem; border-radius: 99px; border: 1px solid rgba(0,0,0,.15); font-size: .68rem; }

.golden-viet { --card-bg: linear-gradient(145deg,#f4ead3,#d9c089); --card-orb: radial-gradient(circle,#fff1c6,rgba(152,119,49,.2)); }
.vong { --card-bg: linear-gradient(145deg,#ece8dd,#9aa18d); --card-orb: radial-gradient(circle,#f4eddf,rgba(82,96,78,.15)); }
.pilatonic { --card-bg: linear-gradient(145deg,#faf8f4,#d9d2e9); --card-orb: radial-gradient(circle,#f5f0ff,rgba(133,114,166,.22)); }
/* =========================================================
   MODEL HOUSE DISTRICT
   Stars become distinct digital rooms.
   ========================================================= */
.model-district {
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, var(--paper) 0%, #ece8df 48%, #e5e0d6 100%);
}
.model-district::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 180px;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(11,16,21,.06), transparent);
}
.district-heading { margin-bottom: 4rem; }
.district-intro { align-self: end; }
.district-threshold {
  margin-top: 1.25rem !important;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(35,47,52,.16);
  color: #354247 !important;
  font-weight: 650;
}

.house-list {
  display: grid;
  gap: 2.2rem;
}
.house-showcase {
  --house-bg: #fff;
  --house-ink: #222;
  --house-muted: rgba(20,30,34,.62);
  --house-border: rgba(20,30,34,.12);
  --house-accent: #777;
  position: relative;
  min-height: 600px;
  display: grid;
  grid-template-columns: minmax(320px, .83fr) minmax(460px, 1.17fr);
  overflow: hidden;
  border: 1px solid var(--house-border);
  border-radius: 34px;
  color: var(--house-ink);
  background: var(--house-bg);
  box-shadow: 0 30px 90px rgba(49,45,36,.12);
  opacity: 0;
  transform: translateY(42px);
  transition: opacity .7s ease, transform .8s cubic-bezier(.2,.75,.25,1);
}
.house-showcase:nth-child(even) {
  grid-template-columns: minmax(460px, 1.17fr) minmax(320px, .83fr);
}
.house-showcase:nth-child(even) .house-copy { order: 2; }
.house-showcase:nth-child(even) .house-stage { order: 1; }
.house-showcase.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.house-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem, 4vw, 4rem);
}
.house-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}
.house-showcase .project-type {
  margin-top: auto;
  padding-top: 5rem;
  color: var(--house-muted);
}
.house-showcase h3 {
  margin: .2rem 0 .85rem;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2.7rem, 4vw, 5.2rem);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.045em;
}
.house-description {
  max-width: 570px;
  margin: 0;
  color: var(--house-muted);
}
.house-proof {
  max-width: 590px;
  margin-top: 2rem;
  padding-top: 1.3rem;
  border-top: 1px solid var(--house-border);
}
.house-proof span {
  display: block;
  margin-bottom: .55rem;
  color: var(--house-muted);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .15em;
}
.house-proof strong {
  display: block;
  font-size: clamp(1.05rem, 1.5vw, 1.35rem);
  line-height: 1.42;
}
.house-packs {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}
.house-packs li {
  padding: .34rem .66rem;
  border: 1px solid var(--house-border);
  border-radius: 999px;
  font-size: .67rem;
}
.case-study-status {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-top: 1.6rem;
  color: var(--house-muted);
  font-size: .75rem;
  font-weight: 700;
  border-bottom: 1px solid var(--house-border);
}
.planned-copy { opacity: .78; }

.house-stage {
  position: relative;
  min-height: 600px;
  overflow: hidden;
  isolation: isolate;
}
.house-stage::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 22%;
  z-index: -1;
  background: linear-gradient(transparent, rgba(0,0,0,.07));
}
.stage-glow {
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  filter: blur(2px);
}

/* Golden Viet */
.house-golden {
  --house-bg: linear-gradient(145deg, #f8f2e5, #e5d1a6);
  --house-ink: #29261d;
  --house-muted: rgba(49,43,29,.65);
  --house-border: rgba(78,63,28,.16);
  --house-accent: #aa8240;
}
.golden-stage {
  padding: 9% 7%;
  background:
    radial-gradient(circle at 70% 16%, rgba(255,245,206,.9), transparent 35%),
    linear-gradient(145deg,#c39c55,#efdcae);
}
.golden-stage .stage-glow {
  right: -8%;
  top: -15%;
  background: radial-gradient(circle, rgba(255,244,195,.9), transparent 68%);
}
.browser-mockup {
  position: relative;
  z-index: 2;
  overflow: hidden;
  border: 1px solid rgba(76,60,27,.22);
  border-radius: 22px;
  box-shadow: 0 28px 70px rgba(64,47,17,.24);
  background: rgba(255,253,246,.96);
}
.browser-bar {
  height: 38px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 14px;
  color: rgba(38,33,22,.5);
  background: rgba(250,244,228,.9);
  border-bottom: 1px solid rgba(75,61,28,.1);
}
.browser-bar span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #c5ad7b;
}
.browser-bar small { margin-left: auto; font-size: .55rem; letter-spacing: .08em; }
.mock-nav {
  height: 58px;
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 0 20px;
  border-bottom: 1px solid rgba(75,61,28,.1);
}
.mock-nav b { margin-right: auto; font-size: .7rem; letter-spacing: .12em; }
.mock-nav i { font-style: normal; font-size: .58rem; color: rgba(45,39,25,.56); }
.golden-dashboard {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  padding: 18px;
}
.metric {
  padding: 15px;
  border: 1px solid rgba(80,66,34,.11);
  border-radius: 13px;
  background: #fffdf8;
}
.metric.primary { background: #2e332d; color: #fff; }
.metric small, .metric span { display: block; font-size: .5rem; opacity: .56; }
.metric strong { display: block; margin: .2rem 0; font-size: 1.4rem; }
.appointment-list {
  grid-column: 1 / -1;
  display: grid;
  border: 1px solid rgba(80,66,34,.11);
  border-radius: 13px;
  background: #fffdf8;
}
.appointment-list span {
  display: grid;
  grid-template-columns: 52px 1fr auto;
  gap: 8px;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(80,66,34,.08);
  font-size: .56rem;
}
.appointment-list span:last-child { border-bottom: 0; }
.appointment-list em { color: #8e773e; font-style: normal; }
.stage-caption {
  position: absolute;
  right: 7%;
  bottom: 5%;
  z-index: 3;
  display: flex;
  gap: .45rem;
}
.stage-caption span {
  padding: .35rem .5rem;
  border-radius: 999px;
  color: #fff7e8;
  background: rgba(45,40,27,.78);
  font-size: .5rem;
  letter-spacing: .08em;
}

/* VỌNG */
.house-vong {
  --house-bg: linear-gradient(145deg, #f2eee5, #b7bda9);
  --house-ink: #252c25;
  --house-muted: rgba(40,50,40,.66);
  --house-border: rgba(50,65,50,.15);
  --house-accent: #66705f;
}
.vong-stage {
  display: grid;
  grid-template-columns: 1fr .82fr;
  gap: 16px;
  padding: 8%;
  background:
    radial-gradient(circle at 25% 16%, rgba(255,251,238,.76), transparent 34%),
    linear-gradient(145deg,#66705f,#c9c8b5);
}
.vong-paper {
  position: relative;
  min-height: 420px;
  padding: 2.2rem;
  overflow: hidden;
  border-radius: 5px 26px 26px 5px;
  color: #334034;
  background: #f4efe4;
  box-shadow: 0 28px 62px rgba(33,43,34,.24);
}
.vong-mark {
  font-family: Georgia, serif;
  font-size: 2.8rem;
  letter-spacing: .12em;
}
.vong-paper p {
  position: absolute;
  left: 2.2rem;
  bottom: 2.2rem;
  margin: 0;
  font-family: Georgia, serif;
  font-size: 1.2rem;
  line-height: 1.55;
}
.vong-tree {
  position: absolute;
  right: 18%;
  top: 22%;
  width: 120px;
  height: 210px;
}
.vong-tree::before {
  content: "";
  position: absolute;
  left: 58px;
  top: 25px;
  width: 2px;
  height: 175px;
  background: #77765f;
  transform: rotate(3deg);
}
.branch {
  position: absolute;
  height: 1px;
  background: #77765f;
  transform-origin: left center;
}
.branch-a { left: 60px; top: 72px; width: 58px; transform: rotate(-35deg); }
.branch-b { left: 58px; top: 112px; width: 52px; transform: rotate(42deg); }
.leaf {
  position: absolute;
  width: 34px;
  height: 17px;
  border-radius: 100% 0 100% 0;
  background: #8d947e;
}
.leaf-a { right: 2px; top: 33px; transform: rotate(-10deg); }
.leaf-b { left: 5px; top: 89px; transform: rotate(170deg); }
.leaf-c { right: 10px; top: 132px; transform: rotate(18deg); }
.vong-library {
  align-self: end;
  padding: 1.5rem;
  border-radius: 20px;
  background: rgba(36,45,37,.83);
  box-shadow: 0 24px 50px rgba(26,35,28,.24);
}
.shelf-label {
  margin-bottom: 1rem;
  color: rgba(255,255,255,.54);
  font-size: .55rem;
  letter-spacing: .15em;
}
.mini-book {
  display: grid;
  grid-template-columns: 30px 1fr;
  gap: .6rem;
  align-items: center;
  margin-top: 8px;
  padding: .8rem;
  border-radius: 3px 10px 10px 3px;
  font-size: .56rem;
}
.mini-book span { opacity: .5; }
.book-moss { background: #7c866f; color: white; }
.book-paper { background: #ece4d6; color: #2d352d; }
.book-clay { background: #a77a63; color: white; }
.language-strip {
  position: absolute;
  right: 7%;
  top: 7%;
  display: flex;
  gap: .35rem;
}
.language-strip span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(255,255,255,.26);
  border-radius: 50%;
  color: white;
  font-size: .5rem;
}

/* PILATONIC */
.house-pilatonic {
  --house-bg: linear-gradient(145deg, #fbfaf7, #ddd5eb);
  --house-ink: #303039;
  --house-muted: rgba(52,50,62,.65);
  --house-border: rgba(80,68,105,.15);
  --house-accent: #9d85c1;
}
.pilatonic-stage {
  padding: 8%;
  background:
    radial-gradient(circle at 75% 15%, rgba(255,255,255,.88), transparent 34%),
    linear-gradient(145deg,#d9d2e9,#faf8f4);
}
.pilatonic-wordmark {
  margin-bottom: 1rem;
  color: #6f5d8e;
  font-size: 1rem;
  letter-spacing: .28em;
}
.pilatonic-wordmark small {
  display: block;
  margin-top: .25rem;
  font-size: .44rem;
  letter-spacing: .25em;
}
.schedule-card {
  position: relative;
  z-index: 2;
  padding: 1.35rem;
  border: 1px solid rgba(91,74,122,.14);
  border-radius: 22px;
  background: rgba(255,255,255,.84);
  box-shadow: 0 24px 62px rgba(87,70,117,.18);
}
.schedule-head {
  display: flex;
  justify-content: space-between;
  font-size: .58rem;
}
.schedule-head span { color: rgba(50,45,62,.45); }
.schedule-days {
  display: flex;
  gap: .35rem;
  margin: 1rem 0;
}
.schedule-days span {
  flex: 1;
  padding: .45rem .2rem;
  border-radius: 9px;
  text-align: center;
  font-size: .48rem;
  background: #f3f0f7;
}
.schedule-days .active { color: white; background: #9b84bd; }
.class-row {
  display: grid;
  grid-template-columns: 50px 1fr auto;
  gap: .65rem;
  align-items: center;
  padding: .85rem .45rem;
  border-top: 1px solid rgba(91,74,122,.1);
  font-size: .56rem;
}
.class-row time { color: #8d75ad; }
.class-row em { font-style: normal; color: rgba(50,45,62,.48); }
.lilac-row {
  margin: 0 -.4rem;
  padding-left: .85rem;
  padding-right: .85rem;
  border-radius: 12px;
  background: #f1ecf7;
}
.membership-card {
  position: absolute;
  right: 7%;
  bottom: 8%;
  z-index: 3;
  width: 42%;
  padding: 1rem;
  border-radius: 17px;
  color: white;
  background: #6f627e;
  box-shadow: 0 20px 44px rgba(70,58,88,.2);
}
.membership-card small,
.membership-card span { display: block; font-size: .48rem; opacity: .65; }
.membership-card strong { display: block; margin: .3rem 0; font-size: 1rem; }
.membership-card i {
  display: block;
  height: 4px;
  margin-top: .8rem;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255,255,255,.18);
}
.membership-card i b {
  display: block;
  width: 62%;
  height: 100%;
  background: #e1d5f0;
}
.movement-orbit {
  position: absolute;
  right: 8%;
  top: 12%;
  width: 110px;
  height: 110px;
  border: 1px solid rgba(100,78,135,.15);
  border-radius: 50%;
}
.movement-orbit span {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #a68cc7;
}
.movement-orbit span:nth-child(1) { left: 48px; top: -6px; }
.movement-orbit span:nth-child(2) { right: -6px; top: 48px; }
.movement-orbit span:nth-child(3) { left: 12px; bottom: 5px; }

html[lang="ko"] .house-proof strong,
html[lang="ko"] .case-study-status,
html[lang="ko"] .district-threshold {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

@media (max-width: 960px) {
  .house-showcase,
  .house-showcase:nth-child(even) {
    grid-template-columns: 1fr;
  }
  .house-showcase:nth-child(even) .house-copy,
  .house-showcase:nth-child(even) .house-stage {
    order: initial;
  }
  .house-stage { min-height: 520px; }
  .house-showcase .project-type { padding-top: 3.5rem; }
}

@media (max-width: 700px) {
  .district-heading { margin-bottom: 2.5rem; }
  .house-showcase {
    min-height: 0;
    border-radius: 26px;
  }
  .house-copy { padding: 1.6rem; }
  .house-showcase .project-type { padding-top: 2.8rem; }
  .house-showcase h3 { font-size: clamp(2.35rem, 12vw, 3.4rem); }
  .house-stage { min-height: 430px; }
  .golden-stage, .vong-stage, .pilatonic-stage { padding: 7%; }
  .vong-stage { grid-template-columns: 1fr; }
  .vong-paper { min-height: 310px; }
  .vong-library { display: none; }
  .golden-dashboard { grid-template-columns: 1fr 1fr; }
  .metric:nth-child(3) { display: none; }
  .appointment-list { grid-column: 1 / -1; }
  .appointment-list span { grid-template-columns: 44px 1fr; }
  .appointment-list em { display: none; }
  .stage-caption { display: none; }
  .membership-card { width: 52%; }
  .movement-orbit { width: 84px; height: 84px; }
  .job-path { grid-template-columns: auto 1fr auto; }
  .job-step:nth-of-type(n+3),
  .job-line:nth-of-type(n+3) { display: none; }
}

.apps-section { background: #10171e; color: white; }
.section-heading.light .section-kicker { color: rgba(255,255,255,.45); }
.app-orbit { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.app-card {
  min-height: 330px; padding: 2rem; border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--radius); background: rgba(255,255,255,.035);
}
.app-card h3 { margin: .4rem 0; font-family: Georgia, serif; font-weight: 400; font-size: 2rem; }
.app-card p:last-child { color: rgba(255,255,255,.64); }
.app-star { display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: 4rem; border-radius: 50%; }
.app-star.mint { color: var(--mint); box-shadow: 0 0 40px rgba(114,185,166,.25); }
.app-star.coral { color: var(--coral); box-shadow: 0 0 40px rgba(213,140,124,.25); }
.app-star.amber { color: var(--amber); box-shadow: 0 0 40px rgba(215,160,111,.25); }

.principle-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; }
.principle-grid article { padding: 2rem 1.4rem; border-top: 1px solid #bcb6aa; }
.principle-icon { display: block; font-size: 1.8rem; margin-bottom: 3rem; color: #66757b; }
.principle-grid h3 { margin: 0; font-family: Georgia, serif; font-size: 1.6rem; font-weight: 400; }
.principle-grid p { color: #657075; font-size: .91rem; }
.home-quote {
  margin: 5rem 0 0; padding: 3rem; border-radius: var(--radius);
  background: #252f35; color: #f1eee7; font-family: Georgia, serif;
  font-size: clamp(1.6rem,3vw,3.5rem); text-align: center;
}

.library-section { background: #dad3c5; }
.library-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6vw; align-items: center; }
.library-section p { max-width: 620px; color: #596367; }
.button-light { margin-top: 1rem; background: rgba(255,255,255,.35); border-color: rgba(0,0,0,.12); }
.book-stack { min-height: 460px; position: relative; perspective: 1000px; }
.book {
  position: absolute; left: 10%; width: 78%; height: 72px; padding: 0 1.4rem;
  display: flex; align-items: center; border-radius: 3px 12px 12px 3px;
  box-shadow: 0 18px 35px rgba(57,48,36,.18);
  transform: rotate(var(--r)); background: var(--b); color: var(--c);
  font-family: Georgia, serif; letter-spacing: .08em; font-size: .8rem;
}
.book::before { content: ""; width: 10px; align-self: stretch; margin-right: 1rem; border-right: 1px solid rgba(255,255,255,.2); }
.book-1 { --r: -4deg; --b: #66705f; --c: white; top: 40px; }
.book-2 { --r: 2deg; --b: #c4a263; --c: #252319; top: 112px; }
.book-3 { --r: -1deg; --b: #d1c8df; --c: #302d35; top: 184px; }
.book-4 { --r: 4deg; --b: #c57f73; --c: white; top: 256px; }
.book-5 { --r: -2deg; --b: #303c43; --c: white; top: 328px; }

footer {
  padding: 2.2rem 4vw; background: #0c1217; color: rgba(255,255,255,.7);
  display: flex; justify-content: space-between; gap: 1rem; align-items: center;
  font-size: .75rem;
}
footer strong { color: white; margin-right: 1rem; letter-spacing: .1em; }
.noscript { position: fixed; z-index: 1000; inset: auto 1rem 1rem; padding: 1rem; background: #fff4c7; color: #222; }


@media (min-width: 701px) and (max-width: 1120px) {
  .star-panel {
    right: 2vw;
    width: min(300px, 38vw);
    padding: 1.35rem;
  }
  .star-panel h2 { font-size: 1.78rem; }
}

@media (max-width: 960px) {
  .top-nav { display: none; }
  .site-header { grid-template-columns: 1fr auto; }
  .hero-content { width: min(540px, 84vw); margin-left: 6vw; padding-top: 27vh; }
  .hero h1 { font-size: clamp(2.75rem, 5.2vw, 4rem); }
  .star-panel { top: auto; bottom: 2rem; right: 4vw; transform: translateY(20px); }
  .star-panel.open { transform: translateY(0); }
  .origin-grid, .section-heading, .library-grid { grid-template-columns: 1fr; }
  .section-heading { align-items: start; }
  .app-orbit { grid-template-columns: 1fr; }
  .principle-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 700px) {
  .site-header { height: 70px; padding: 0 5vw; }
  .brand-lockup small { display: none; }

  /* Mobile has its own composition: constellation first, statement second. */
  .hero { min-height: 112svh; }
  .hero-content {
    width: 90vw;
    margin-left: 5vw;
    padding-top: 44svh;
    padding-bottom: 6.5rem;
  }
  .eyebrow {
    max-width: 82vw;
    margin-bottom: 1.05rem;
    font-size: .61rem;
    line-height: 1.55;
    letter-spacing: .15em;
  }
  .hero h1 {
    max-width: 90vw;
    font-size: clamp(2.45rem, 10.4vw, 3.15rem);
    line-height: 1.035;
    letter-spacing: -.035em;
    text-wrap: balance;
  }
  .hero-accent { margin-top: .13em; }

  html[lang="ko"] .hero h1 {
    font-size: clamp(2.35rem, 9.9vw, 3rem);
    line-height: 1.09;
    letter-spacing: -.047em;
  }

  .hero-copy {
    max-width: 92%;
    margin-top: 1.25rem;
    font-size: .9rem;
    line-height: 1.65;
  }
  .ko-emphasis { margin-top: .42rem; font-weight: 600; }
  .hero-actions { gap: .65rem; margin-top: 1.65rem; }
  .button { min-height: 47px; padding: .68rem 1rem; font-size: .82rem; }

  .scroll-cue { display: none; }

  /* Labels stay quiet until a star is selected. */
  .star-label {
    top: 21px;
    max-width: 100px;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: .47rem;
    opacity: 0;
    transform: translateX(-50%) translateY(-2px);
    transition: opacity .22s ease, color .22s ease, transform .22s ease;
  }
  .named-star.active .star-label,
  .named-star:focus-visible .star-label {
    opacity: 1;
    color: white;
    transform: translateX(-50%) translateY(2px);
  }
  .named-star { width: 20px; height: 20px; }
  .named-star::before { inset: 6px; }
  .named-star::after { inset: -1px; }

  /*
   * Mobile detail cards live in the page flow below the constellation.
   * They never cover stars, copy, buttons or Safari's bottom controls.
   */
  .star-panel {
    position: relative;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
    order: 1;
    width: 88vw;
    max-height: 0;
    margin: 42svh auto 0;
    padding: 0 1.45rem;
    overflow: hidden;
    border-width: 0;
    border-radius: 22px;
    opacity: 0;
    pointer-events: none;
    transform: none;
    transition:
      max-height .34s ease,
      opacity .24s ease,
      padding .34s ease,
      margin-bottom .34s ease,
      border-width .1s linear;
  }
  .star-panel.open {
    max-height: 430px;
    margin-bottom: 1rem;
    padding: 1.25rem 1.2rem;
    border-width: 1px;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }
  .star-panel h2 { font-size: 1.9rem; }
  .star-panel > p:not(.panel-category):not(.panel-status) {
    font-size: .86rem;
    line-height: 1.65;
  }
  .panel-link {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    margin-top: .75rem;
  }

  .hero {
    display: flex;
    flex-direction: column;
  }
  .hero-content {
    order: 2;
    padding-top: 2rem;
  }

  .mobile-explore-hint {
    position: absolute;
    z-index: 18;
    top: 37svh;
    left: 50%;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    max-width: 86vw;
    padding: .6rem .85rem;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 999px;
    color: rgba(255,255,255,.86);
    background: rgba(12,18,24,.72);
    backdrop-filter: blur(16px);
    box-shadow: 0 12px 34px rgba(0,0,0,.24);
    font-size: .72rem;
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 8px);
    transition: opacity .25s ease, transform .25s ease;
  }
  .mobile-explore-hint span:first-child {
    color: var(--gold);
  }
  body.explore-mode .mobile-explore-hint {
    opacity: 1;
    transform: translate(-50%, 0);
  }
  body.explore-mode .star-label {
    opacity: .78;
    transform: translateX(-50%) translateY(2px);
  }
  body.explore-mode .named-star::before {
    transform: scale(1.25);
  }

  .project-grid { grid-template-columns: 1fr; }
  .project-card { min-height: 470px; }
  .section-shell { width: 90vw; padding: 5.5rem 0; }
  .origin { padding-top: 6.5rem; }
  .origin blockquote { margin-top: 4rem; }
  .principle-grid { grid-template-columns: 1fr; }
  .book-stack { min-height: 430px; }
  footer { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}



/* =========================================================
   VONG REAL PORTFOLIO ROOM · v1.0
   Uses the approved brand mark and actual website screens.
   ========================================================= */
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.house-vong-real {
  --house-bg:
    radial-gradient(circle at 20% 8%, rgba(255,251,242,.92), transparent 34%),
    linear-gradient(145deg, #f6efe4 0%, #d7d7c7 100%);
  --house-ink: #263126;
  --house-muted: rgba(39,52,40,.67);
  --house-border: rgba(54,73,56,.15);
  --house-accent: #62715d;
}

.vong-house-copy {
  background:
    radial-gradient(circle at 82% 18%, rgba(255,255,255,.5), transparent 29%),
    linear-gradient(145deg, rgba(253,248,239,.9), rgba(226,226,211,.72));
}

.vong-copy-logo {
  display: block;
  width: min(315px, 77%);
  height: auto;
  margin: .45rem 0 1.15rem;
  object-fit: contain;
  object-position: left center;
  filter: drop-shadow(0 8px 20px rgba(53,65,44,.06));
}

.vong-real-stage {
  min-height: 650px;
  padding: 5.5%;
  overflow: hidden;
  background:
    radial-gradient(circle at 17% 8%, rgba(255,251,241,.82), transparent 28%),
    radial-gradient(circle at 88% 84%, rgba(44,68,50,.34), transparent 34%),
    linear-gradient(145deg, #9da58f 0%, #65745f 62%, #344b3c 100%);
}

.vong-real-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .14;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.22) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(145deg, transparent 6%, black 52%, transparent 96%);
}

.vong-photo-browser {
  position: absolute;
  z-index: 3;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 16px;
  background: #f8f1e7;
  box-shadow: 0 30px 80px rgba(24,38,27,.34);
}

.real-browser-bar {
  height: 33px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 12px;
  color: rgba(39,53,41,.48);
  background: #f7efe3;
  border-bottom: 1px solid rgba(54,73,56,.1);
}

.real-browser-bar span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #82907b;
  opacity: .55;
}

.real-browser-bar small {
  margin-left: auto;
  font-size: .49rem;
  letter-spacing: .08em;
}

.vong-photo-browser img,
.vong-story-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.vong-main-browser {
  left: 5.5%;
  top: 8%;
  width: 76%;
  aspect-ratio: 1.28 / 1;
  transform: rotate(-1.2deg);
}

.vong-main-browser img {
  height: calc(100% - 33px);
  object-position: center top;
}

.vong-library-browser {
  right: 4%;
  bottom: 7%;
  width: 48%;
  aspect-ratio: 1.4 / 1;
  z-index: 5;
  transform: rotate(1.5deg);
}

.vong-library-browser img {
  height: calc(100% - 33px);
  object-position: center top;
}

.vong-story-card {
  position: absolute;
  left: 8%;
  bottom: 6%;
  z-index: 4;
  width: 34%;
  aspect-ratio: 1.5 / 1;
  overflow: hidden;
  border: 6px solid rgba(248,242,232,.95);
  border-radius: 8px;
  box-shadow: 0 22px 55px rgba(24,38,27,.28);
  transform: rotate(-2deg);
}

.vong-story-card img {
  object-position: center 24%;
}

.vong-stage-logo {
  position: absolute;
  z-index: 7;
  right: 5%;
  top: 4%;
  width: 150px;
  height: auto;
  filter: drop-shadow(0 12px 26px rgba(31,49,35,.18));
}

.vong-live-note {
  position: absolute;
  z-index: 7;
  right: 5%;
  top: 30%;
  max-width: 200px;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 15px;
  color: #f6f0e5;
  background: rgba(38,58,43,.65);
  backdrop-filter: blur(14px);
  box-shadow: 0 18px 45px rgba(22,35,25,.2);
}

.vong-live-note span {
  display: block;
  margin-bottom: .55rem;
  font-size: .52rem;
  letter-spacing: .16em;
  opacity: .65;
}

.vong-live-note strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: .85rem;
  line-height: 1.45;
  font-weight: 400;
}

html[lang="ko"] .vong-live-note strong {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

@media (max-width: 960px) {
  .vong-real-stage { min-height: 590px; }
  .vong-main-browser { width: 82%; }
  .vong-library-browser { width: 50%; }
  .vong-stage-logo { width: 132px; }
  .vong-live-note { display: none; }
}

@media (max-width: 700px) {
  .vong-copy-logo {
    width: min(260px, 82%);
    margin-top: .25rem;
  }

  .vong-real-stage {
    min-height: 470px;
    padding: 0;
  }

  .vong-main-browser {
    left: 5%;
    top: 7%;
    width: 90%;
    aspect-ratio: 1.1 / 1;
    transform: rotate(-.7deg);
  }

  .vong-library-browser {
    right: 4%;
    bottom: 5%;
    width: 57%;
    aspect-ratio: 1.25 / 1;
  }

  .vong-story-card {
    left: 5%;
    bottom: 6%;
    width: 39%;
  }

  .vong-stage-logo {
    top: 2.5%;
    right: 3%;
    width: 104px;
  }
}



/* =========================================================
   VONG PORTFOLIO REFINEMENT · v1.1
   - Removes the floating centre logo.
   - Preserves the complete four-leaf clover in the copy logo.
   - Places Library and How We Care snapshots side by side.
   ========================================================= */

.vong-copy-logo {
  width: min(332px, 81%);
  overflow: visible;
  object-fit: contain;
  object-position: left center;
}

/* Defensive removal in case an older cached block remains. */
.vong-stage-logo {
  display: none !important;
}

/*
 * The main storefront remains the large hero screen.
 * The two supporting real screens sit along the bottom with a clear gap.
 */
.vong-main-browser {
  left: 5.5%;
  top: 7%;
  width: 78%;
  aspect-ratio: 1.3 / 1;
}

.vong-care-browser {
  left: 5.5%;
  bottom: 5.5%;
  z-index: 5;
  width: 42%;
  aspect-ratio: 1.36 / 1;
  transform: rotate(-1.2deg);
}

.vong-library-browser {
  right: 4.5%;
  bottom: 5.5%;
  z-index: 6;
  width: 43%;
  aspect-ratio: 1.36 / 1;
  transform: rotate(1.15deg);
}

.vong-care-browser img,
.vong-library-browser img {
  height: calc(100% - 33px);
  object-position: center top;
}

/* Keep the quiet identity note above the real screens without covering them. */
.vong-live-note {
  right: 4.5%;
  top: 29%;
  max-width: 205px;
}

@media (max-width: 960px) {
  .vong-copy-logo {
    width: min(300px, 80%);
  }

  .vong-main-browser {
    width: 86%;
  }

  .vong-care-browser {
    left: 4.5%;
    width: 43%;
  }

  .vong-library-browser {
    right: 4.5%;
    width: 43%;
  }
}

@media (max-width: 700px) {
  .vong-copy-logo {
    width: min(270px, 86%);
  }

  .vong-real-stage {
    min-height: 520px;
  }

  .vong-main-browser {
    left: 4%;
    top: 5%;
    width: 92%;
    aspect-ratio: 1.12 / 1;
  }

  .vong-care-browser {
    left: 4%;
    bottom: 4%;
    width: 44%;
    aspect-ratio: 1.18 / 1;
    transform: rotate(-.7deg);
  }

  .vong-library-browser {
    right: 4%;
    bottom: 4%;
    width: 44%;
    aspect-ratio: 1.18 / 1;
    transform: rotate(.7deg);
  }

  .vong-care-browser .real-browser-bar,
  .vong-library-browser .real-browser-bar {
    height: 27px;
  }

  .vong-care-browser img,
  .vong-library-browser img {
    height: calc(100% - 27px);
  }
}



/* =========================================================
   GOLDEN VIET REAL PORTFOLIO ROOM · v0.1
   Actual public and staff product screens.
   ========================================================= */
.house-golden-real {
  --house-bg:
    radial-gradient(circle at 16% 9%, rgba(255,252,241,.95), transparent 36%),
    linear-gradient(145deg, #f7f1e4 0%, #d8bd82 100%);
  --house-ink: #29261d;
  --house-muted: rgba(49,43,29,.66);
  --house-border: rgba(78,63,28,.16);
  --house-accent: #a77c32;
}

.golden-house-copy {
  background:
    radial-gradient(circle at 80% 14%, rgba(255,255,255,.44), transparent 30%),
    linear-gradient(145deg, rgba(255,250,239,.92), rgba(227,207,164,.7));
}

.golden-real-stage {
  min-height: 680px;
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 15%, rgba(255,244,200,.94), transparent 30%),
    radial-gradient(circle at 20% 82%, rgba(106,82,36,.26), transparent 38%),
    linear-gradient(145deg, #d5b66f 0%, #b68a3f 48%, #725b2e 100%);
}

.golden-real-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .16;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.3) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.3) 1px, transparent 1px);
  background-size: 46px 46px;
  mask-image: linear-gradient(145deg, transparent 4%, black 50%, transparent 96%);
}

.golden-real-kicker {
  position: absolute;
  z-index: 9;
  right: 5%;
  top: 5%;
  max-width: 220px;
  padding: 1rem 1.05rem;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 16px;
  color: #fff7e8;
  background: rgba(63,47,20,.64);
  backdrop-filter: blur(16px);
  box-shadow: 0 18px 50px rgba(58,40,12,.22);
}

.golden-real-kicker span {
  display: block;
  margin-bottom: .55rem;
  font-size: .5rem;
  letter-spacing: .16em;
  opacity: .7;
}

.golden-real-kicker strong {
  font-family: Georgia, "Times New Roman", serif;
  font-size: .88rem;
  line-height: 1.42;
  font-weight: 400;
}

.golden-screen {
  position: absolute;
  z-index: 3;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 17px;
  background: #f7f1e6;
  box-shadow: 0 30px 82px rgba(57,39,11,.34);
}

.golden-screen img {
  display: block;
  width: 100%;
  height: calc(100% - 33px);
  object-fit: cover;
  object-position: left top;
}

.golden-browser-bar {
  color: rgba(67,50,18,.52);
  background: rgba(252,246,233,.98);
  border-bottom-color: rgba(94,69,23,.1);
}

.golden-browser-bar span {
  background: #b38a42;
}

.golden-public-screen {
  left: 4.5%;
  top: 7%;
  width: 73%;
  aspect-ratio: 1.42 / 1;
  transform: rotate(-1.1deg);
}

.golden-today-screen {
  right: 3.5%;
  top: 31%;
  z-index: 5;
  width: 54%;
  aspect-ratio: 1.42 / 1;
  transform: rotate(1.1deg);
}

.golden-client-screen {
  left: 5%;
  bottom: 5%;
  z-index: 6;
  width: 41%;
  aspect-ratio: 1.42 / 1;
  transform: rotate(-1.2deg);
}

.golden-note-screen {
  right: 5%;
  bottom: 4%;
  z-index: 7;
  width: 36%;
  aspect-ratio: 1.22 / 1;
  transform: rotate(.8deg);
}

.golden-system-line {
  position: absolute;
  z-index: 10;
  left: 5%;
  right: 5%;
  bottom: 2.3%;
  display: flex;
  align-items: center;
  gap: .55rem;
  pointer-events: none;
}

.golden-system-line span {
  padding: .35rem .52rem;
  border-radius: 999px;
  color: #fff8e8;
  background: rgba(55,42,18,.8);
  font-size: .49rem;
  letter-spacing: .09em;
}

.golden-system-line i {
  flex: 1;
  height: 1px;
  background: rgba(255,248,232,.42);
}

html[lang="ko"] .golden-real-kicker strong {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

@media (max-width: 960px) {
  .golden-real-stage { min-height: 610px; }
  .golden-public-screen { width: 80%; }
  .golden-today-screen { width: 58%; top: 34%; }
  .golden-real-kicker { display: none; }
}

@media (max-width: 700px) {
  .golden-real-stage {
    min-height: 530px;
  }

  .golden-public-screen {
    left: 4%;
    top: 5%;
    width: 92%;
    aspect-ratio: 1.18 / 1;
    transform: rotate(-.6deg);
  }

  .golden-today-screen {
    right: 4%;
    top: 42%;
    width: 63%;
    aspect-ratio: 1.28 / 1;
    transform: rotate(.7deg);
  }

  .golden-client-screen {
    left: 4%;
    bottom: 5%;
    width: 45%;
    aspect-ratio: 1.12 / 1;
    transform: rotate(-.7deg);
  }

  .golden-note-screen {
    right: 4%;
    bottom: 4%;
    width: 42%;
    aspect-ratio: 1.05 / 1;
    transform: rotate(.5deg);
  }

  .golden-screen .real-browser-bar {
    height: 27px;
  }

  .golden-screen img {
    height: calc(100% - 27px);
  }

  .golden-system-line {
    display: none;
  }
}


/* PILATONIC REAL PORTFOLIO ROOM · v0.1 */
.house-pilatonic-real{--house-bg:radial-gradient(circle at 17% 8%,rgba(255,255,255,.96),transparent 34%),linear-gradient(145deg,#fbf9f5 0%,#ded5ed 100%);--house-ink:#302d38;--house-muted:rgba(54,49,67,.65);--house-border:rgba(89,71,122,.15);--house-accent:#876caf}
.pilatonic-house-copy{background:radial-gradient(circle at 82% 16%,rgba(255,255,255,.58),transparent 30%),linear-gradient(145deg,rgba(255,253,249,.94),rgba(225,216,237,.7))}
.pilatonic-real-stage{min-height:680px;padding:0;overflow:hidden;background:radial-gradient(circle at 72% 12%,rgba(255,255,255,.9),transparent 30%),radial-gradient(circle at 15% 84%,rgba(111,86,153,.2),transparent 35%),linear-gradient(145deg,#e7ddf3 0%,#c8b9dd 46%,#8f78b2 100%)}
.pilatonic-real-stage::before{content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;background-image:radial-gradient(circle at 20% 20%,rgba(255,255,255,.7) 0 1px,transparent 1.5px),radial-gradient(circle at 76% 62%,rgba(255,255,255,.55) 0 1px,transparent 1.5px);background-size:52px 52px,68px 68px;mask-image:linear-gradient(145deg,transparent 4%,black 50%,transparent 96%)}
.pilatonic-real-kicker{position:absolute;z-index:9;right:5%;top:5%;max-width:215px;padding:1rem 1.05rem;border:1px solid rgba(255,255,255,.35);border-radius:16px;color:#fbf8ff;background:rgba(89,67,125,.62);backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(62,43,90,.2)}
.pilatonic-real-kicker span{display:block;margin-bottom:.55rem;font-size:.5rem;letter-spacing:.16em;opacity:.72}.pilatonic-real-kicker strong{font-family:Georgia,"Times New Roman",serif;font-size:.9rem;line-height:1.42;font-weight:400}
.pilatonic-screen{position:absolute;z-index:3;overflow:hidden;border:1px solid rgba(255,255,255,.48);border-radius:18px;background:#faf8fc;box-shadow:0 30px 82px rgba(63,44,91,.3)}
.pilatonic-screen img{display:block;width:100%;height:calc(100% - 33px);object-fit:cover;object-position:left top}.pilatonic-browser-bar{color:rgba(76,58,106,.5);background:rgba(251,248,253,.98);border-bottom-color:rgba(100,80,134,.1)}.pilatonic-browser-bar span{background:#9d84bd}
.pilatonic-home-screen{left:4.5%;top:7%;width:77%;aspect-ratio:1.85/1;transform:rotate(-1deg)}.pilatonic-offer-screen{right:3.5%;bottom:4.5%;z-index:6;width:58%;aspect-ratio:1.85/1;transform:rotate(1deg)}.pilatonic-statement-screen{left:5%;bottom:6%;z-index:5;width:35%;aspect-ratio:1.55/1;transform:rotate(-1.3deg)}
.pilatonic-flow-line{position:absolute;z-index:10;left:5%;right:5%;bottom:2.2%;display:flex;align-items:center;gap:.45rem;pointer-events:none}.pilatonic-flow-line span{padding:.34rem .48rem;border-radius:999px;color:#fffaff;background:rgba(76,57,105,.8);font-size:.48rem;letter-spacing:.09em}.pilatonic-flow-line i{flex:1;height:1px;background:rgba(255,250,255,.45)}
html[lang="ko"] .pilatonic-real-kicker strong{font-family:-apple-system,BlinkMacSystemFont,"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif}
@media(max-width:960px){.pilatonic-real-stage{min-height:610px}.pilatonic-home-screen{width:84%}.pilatonic-offer-screen{width:61%}.pilatonic-real-kicker{display:none}}
@media(max-width:700px){.pilatonic-real-stage{min-height:530px}.pilatonic-home-screen{left:4%;top:5%;width:92%;aspect-ratio:1.35/1;transform:rotate(-.5deg)}.pilatonic-offer-screen{right:4%;bottom:4%;width:61%;aspect-ratio:1.32/1;transform:rotate(.6deg)}.pilatonic-statement-screen{left:4%;bottom:5%;width:38%;aspect-ratio:1.1/1;transform:rotate(-.7deg)}.pilatonic-screen .real-browser-bar{height:27px}.pilatonic-screen img{height:calc(100% - 27px)}.pilatonic-flow-line{display:none}}



/* =========================================================
   LIVE PROJECT DOORS · v1.4
   Real project sites open in a new tab while SKALA remains home.
   ========================================================= */
.live-site-link,
.app-live-link {
  text-decoration: none;
  transition:
    color .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.live-site-link {
  color: var(--house-ink);
  border-bottom-color: var(--house-accent);
}

.live-site-link:hover,
.live-site-link:focus-visible {
  color: var(--house-accent);
  transform: translateX(3px);
}

.stage-live-link {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 1rem;
  color: white;
  text-decoration: none;
  cursor: pointer;
}

.stage-live-link span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .65rem .9rem;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 999px;
  color: rgba(255,255,255,.96);
  background: rgba(22,25,27,.62);
  backdrop-filter: blur(15px);
  box-shadow: 0 14px 36px rgba(0,0,0,.2);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .02em;
  opacity: 0;
  transform: translateY(7px);
  transition: opacity .24s ease, transform .24s ease, background .24s ease;
}

.stage-live-link:hover span,
.stage-live-link:focus-visible span {
  opacity: 1;
  transform: translateY(0);
  background: rgba(22,25,27,.78);
}

.stage-live-link:focus-visible {
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: -5px;
  border-radius: inherit;
}

.app-live-link {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  margin-top: 1.4rem;
  padding-bottom: .25rem;
  border-bottom: 1px solid rgba(255,255,255,.26);
  color: rgba(255,255,255,.9);
  font-size: .76rem;
  font-weight: 750;
}

.app-live-link:hover,
.app-live-link:focus-visible {
  color: white;
  border-bottom-color: currentColor;
  transform: translateX(3px);
}

.panel-link.external-link::after {
  content: " ↗";
}

@media (max-width: 700px) {
  .stage-live-link {
    padding: .75rem;
  }

  .stage-live-link span {
    min-height: 40px;
    opacity: 1;
    transform: none;
    font-size: .66rem;
  }
}



/* =========================================================
   APPLIED LABS & INDEPENDENT VENTURES · v1.5
   Vietnam Bridge stays independent while visibly connected.
   ========================================================= */
.ventures-section {
  position: relative;
  overflow: hidden;
  padding: 116px 0;
  color: #10272a;
  background:
    radial-gradient(circle at 83% 8%, rgba(189,116,71,.16), transparent 27%),
    linear-gradient(160deg, #f7f3eb 0%, #ebe4d8 100%);
  border-bottom: 1px solid rgba(16,39,42,.1);
}

.venture-heading {
  margin-bottom: 3.6rem;
}

.venture-heading > p {
  align-self: end;
  max-width: 530px;
  margin: 0;
  color: #68777a;
  line-height: 1.8;
}

.venture-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(330px,.78fr) minmax(500px,1.22fr);
  min-height: 650px;
  overflow: hidden;
  border: 1px solid rgba(16,39,42,.14);
  border-radius: 34px;
  background: #fffdf9;
  box-shadow: 0 34px 100px rgba(26,44,46,.15);
}

.venture-copy {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem,4vw,4rem);
  background:
    radial-gradient(circle at 85% 12%, rgba(189,116,71,.12), transparent 28%),
    linear-gradient(145deg,#fffdf9,#efe8dc);
}

.venture-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.venture-number {
  color: #bd7447;
  font-size: .7rem;
  font-weight: 850;
  letter-spacing: .16em;
}

.venture-status {
  padding: .42rem .72rem;
  border: 1px solid rgba(43,109,98,.18);
  border-radius: 999px;
  color: #164b45;
  background: rgba(43,109,98,.08);
  font-size: .65rem;
  font-weight: 750;
}

.venture-type {
  margin: auto 0 .9rem;
  padding-top: 4rem;
  color: #2b6d62;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.vb-brand-lockup,
.vb-mini-brand {
  display: flex;
  align-items: center;
  gap: .9rem;
}

.vb-brand-lockup {
  margin-bottom: 1.35rem;
}

.vb-brand-lockup > div,
.vb-mini-brand > div {
  display: flex;
  flex-direction: column;
  gap: .28rem;
}

.vb-brand-lockup strong {
  font-size: clamp(1.8rem,3vw,3rem);
  letter-spacing: .05em;
}

.vb-brand-lockup small {
  color: #68777a;
  font-size: .62rem;
  letter-spacing: .15em;
}

.vb-mark {
  display: grid;
  grid-template-columns: 7px 7px 7px;
  align-items: end;
  gap: 4px;
  width: 29px;
  height: 40px;
  flex: 0 0 auto;
}

.vb-mark i,
.vb-mark b {
  display: block;
  border-radius: 999px;
  background: #2b6d62;
}

.vb-mark i:first-child { height: 19px; }
.vb-mark b {
  height: 38px;
  background: #bd7447;
}
.vb-mark i:last-child { height: 28px; }

.venture-description {
  max-width: 550px;
  margin: 0;
  color: #244045;
  font-size: 1rem;
  line-height: 1.75;
}

.venture-proof {
  margin-top: 2rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(16,39,42,.14);
}

.venture-proof span {
  display: block;
  margin-bottom: .55rem;
  color: #68777a;
  font-size: .6rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.venture-proof strong {
  display: block;
  max-width: 570px;
  line-height: 1.45;
  font-size: clamp(1.05rem,1.45vw,1.32rem);
}

.venture-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: 1.4rem;
}

.venture-tags span {
  padding: .36rem .62rem;
  border: 1px solid rgba(16,39,42,.14);
  border-radius: 999px;
  color: #2b6d62;
  font-size: .59rem;
  font-weight: 750;
  letter-spacing: .06em;
}

.venture-actions {
  display: grid;
  gap: .75rem;
  margin-top: 1.7rem;
}

.venture-link {
  display: inline-flex;
  align-items: center;
  align-self: start;
  width: max-content;
  min-height: 42px;
  padding: 0 .95rem;
  border-radius: 999px;
  font-size: .72rem;
  font-weight: 750;
}

.venture-link.pending {
  color: #68777a;
  border: 1px solid rgba(16,39,42,.13);
  background: rgba(255,255,255,.42);
}

.venture-relation {
  max-width: 520px;
  color: #68777a;
  font-size: .7rem;
  line-height: 1.55;
}

.venture-visual {
  position: relative;
  min-height: 650px;
  overflow: hidden;
  background:
    radial-gradient(circle at 77% 10%, rgba(189,116,71,.34), transparent 30%),
    linear-gradient(145deg,#244045 0%,#10272a 68%,#164b45 100%);
}

.venture-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .14;
  background-image:
    linear-gradient(rgba(255,255,255,.22) 1px, transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.22) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(145deg,transparent 2%,black 55%,transparent 100%);
}

.vb-browser {
  position: absolute;
  z-index: 3;
  left: 5.5%;
  top: 7%;
  width: 79%;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 22px;
  background: #f7f3eb;
  box-shadow: 0 34px 90px rgba(0,0,0,.3);
  transform: rotate(-.8deg);
}

.vb-browser-bar {
  height: 37px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 13px;
  color: rgba(16,39,42,.45);
  background: #fffdf9;
  border-bottom: 1px solid rgba(16,39,42,.1);
}

.vb-browser-bar span {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #2b6d62;
  opacity: .55;
}

.vb-browser-bar small {
  margin-left: auto;
  font-size: .51rem;
  letter-spacing: .08em;
}

.vb-screen {
  min-height: 445px;
  padding: 1.25rem;
  background: #f7f3eb;
}

.vb-screen-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.vb-mini-brand .vb-mark {
  grid-template-columns: 4px 4px 4px;
  gap: 2px;
  width: 16px;
  height: 23px;
}

.vb-mini-brand .vb-mark i:first-child { height: 10px; }
.vb-mini-brand .vb-mark b { height: 22px; }
.vb-mini-brand .vb-mark i:last-child { height: 16px; }

.vb-mini-brand strong {
  font-size: .66rem;
  letter-spacing: .12em;
}

.vb-mini-brand small,
.vb-lang {
  color: #68777a;
  font-size: .44rem;
  letter-spacing: .1em;
}

.vb-map-panel {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 18px;
  color: white;
  background: #10272a;
}

.vb-map-panel > p {
  margin: 0;
  color: rgba(255,255,255,.58);
  font-size: .46rem;
  letter-spacing: .13em;
}

.vb-route {
  position: relative;
  height: 250px;
}

.vb-route svg {
  position: absolute;
  inset: 20px 0 auto;
  width: 100%;
  height: 190px;
}

.vb-route path {
  fill: none;
  stroke-linecap: round;
}

.vb-route-soft {
  stroke: rgba(255,255,255,.15);
  stroke-width: 2;
  stroke-dasharray: 4 10;
}

.vb-route-main {
  stroke: #bd7447;
  stroke-width: 3;
  filter: drop-shadow(0 0 7px rgba(189,116,71,.48));
}

.vb-place {
  position: absolute;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .32rem;
}

.vb-place span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  color: #10272a;
  background: #f7f3eb;
  font-size: .58rem;
  font-weight: 850;
}

.vb-place small {
  color: rgba(255,255,255,.67);
  font-size: .42rem;
}

.vb-au { left: 1%; bottom: 17px; }
.vb-kr { right: 32%; top: 3px; }
.vb-vn { right: 1%; top: 70px; }
.vb-kr span { color: white; background: #2b6d62; }

.vb-note {
  position: absolute;
  padding: .35rem .48rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  color: rgba(255,255,255,.65);
  background: rgba(255,255,255,.04);
  font-size: .4rem;
  font-style: normal;
}

.note-a { left: 18%; top: 118px; }
.note-b { left: 47%; top: 166px; }
.note-c { right: 2%; bottom: 15px; }

.vb-brief-row {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto;
  align-items: center;
  gap: .55rem;
  margin-top: .85rem;
}

.vb-brief-row > div {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.vb-brief-row span {
  color: #bd7447;
  font-size: .43rem;
  font-weight: 850;
}

.vb-brief-row strong {
  font-size: .45rem;
  letter-spacing: .06em;
}

.vb-brief-row i {
  height: 1px;
  background: rgba(16,39,42,.17);
}

.vb-trust-card {
  position: absolute;
  z-index: 6;
  right: 5%;
  bottom: 7%;
  width: 43%;
  padding: 1.15rem;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 18px;
  color: #10272a;
  background: rgba(255,253,249,.94);
  box-shadow: 0 22px 58px rgba(0,0,0,.2);
  transform: rotate(1.2deg);
}

.vb-trust-card small,
.vb-trust-card span {
  display: block;
  color: #68777a;
  font-size: .45rem;
  letter-spacing: .1em;
}

.vb-trust-card strong {
  display: block;
  margin: .55rem 0;
  font-size: .92rem;
  line-height: 1.32;
}

.vb-independent-stamp {
  position: absolute;
  z-index: 7;
  left: 5%;
  bottom: 5%;
  display: grid;
  gap: .35rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 16px;
  color: white;
  background: rgba(16,39,42,.75);
  backdrop-filter: blur(12px);
}

.vb-independent-stamp span {
  color: #db9a70;
  font-size: .43rem;
  font-weight: 850;
  letter-spacing: .16em;
}

.vb-independent-stamp strong {
  font-size: .68rem;
  line-height: 1.35;
  letter-spacing: .05em;
}

html[lang="ko"] .venture-card [data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

@media (max-width: 960px) {
  .venture-card {
    grid-template-columns: 1fr;
  }

  .venture-visual {
    min-height: 590px;
  }

  .venture-type {
    padding-top: 3rem;
  }
}

@media (max-width: 700px) {
  .ventures-section {
    padding: 82px 0;
  }

  .venture-heading {
    margin-bottom: 2.3rem;
  }

  .venture-card {
    border-radius: 26px;
  }

  .venture-copy {
    padding: 1.55rem;
  }

  .venture-status {
    max-width: 67%;
    text-align: right;
  }

  .venture-type {
    padding-top: 2.6rem;
  }

  .vb-brand-lockup strong {
    font-size: 1.75rem;
  }

  .venture-visual {
    min-height: 515px;
  }

  .vb-browser {
    left: 4%;
    top: 5%;
    width: 92%;
  }

  .vb-screen {
    min-height: 370px;
  }

  .vb-route {
    height: 205px;
  }

  .vb-route svg {
    height: 155px;
  }

  .vb-trust-card {
    right: 4%;
    bottom: 5%;
    width: 55%;
  }

  .vb-independent-stamp {
    left: 4%;
    bottom: 5%;
  }
}



/* =========================================================
   VIETNAM BRIDGE LIVE DOOR · v1.5.1
   ========================================================= */
.venture-link.live {
  color: #fffdf9;
  border: 1px solid rgba(43,109,98,.18);
  background: #2b6d62;
  box-shadow: 0 10px 28px rgba(43,109,98,.18);
  text-decoration: none;
  transition:
    transform .2s ease,
    background .2s ease,
    box-shadow .2s ease;
}

.venture-link.live:hover,
.venture-link.live:focus-visible {
  transform: translateX(3px);
  background: #164b45;
  box-shadow: 0 14px 34px rgba(43,109,98,.26);
}

.venture-visual-link {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: flex-end;
  justify-content: flex-end;
  padding: 1rem;
  border-radius: inherit;
  color: white;
  text-decoration: none;
}

.venture-visual-link span {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: .65rem .9rem;
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  color: rgba(255,255,255,.96);
  background: rgba(16,39,42,.7);
  backdrop-filter: blur(14px);
  box-shadow: 0 14px 34px rgba(0,0,0,.2);
  font-size: .68rem;
  font-weight: 750;
  opacity: 0;
  transform: translateY(7px);
  transition:
    opacity .22s ease,
    transform .22s ease,
    background .22s ease;
}

.venture-visual-link:hover span,
.venture-visual-link:focus-visible span {
  opacity: 1;
  transform: translateY(0);
  background: rgba(16,39,42,.84);
}

.venture-visual-link:focus-visible {
  outline: 2px solid rgba(255,255,255,.9);
  outline-offset: -5px;
}

@media (max-width: 700px) {
  .venture-visual-link {
    padding: .75rem;
  }

  .venture-visual-link span {
    opacity: 1;
    transform: none;
  }
}


/* =========================================================
   SEOUL ↔ SYDNEY CREATIVE COLLABORATION · v1.6
   A private, project-by-project proposal—not a co-founder claim.
   ========================================================= */
.collaboration-section {
  position: relative;
  overflow: hidden;
  padding: 116px 0;
  color: #f4f5f7;
  background:
    radial-gradient(circle at 82% 12%, rgba(122,111,244,.22), transparent 28%),
    radial-gradient(circle at 16% 84%, rgba(55,198,203,.13), transparent 32%),
    linear-gradient(150deg, #11151c 0%, #171b24 52%, #0d1118 100%);
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.collaboration-section::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .16;
  pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,.15) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.15) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: radial-gradient(circle at 50% 48%, black, transparent 76%);
}

.collaboration-heading { margin-bottom: 3.6rem; }
.collaboration-heading .section-kicker { color: #9e9af5; }
.collaboration-heading h2 { color: #fff; }
.collaboration-heading > p {
  align-self: end;
  max-width: 560px;
  margin: 0;
  color: rgba(232,235,242,.68);
  line-height: 1.8;
}

.collaboration-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(420px,.92fr) minmax(500px,1.08fr);
  min-height: 760px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 34px;
  background: rgba(22,27,36,.92);
  box-shadow: 0 40px 120px rgba(0,0,0,.34);
}

.collaboration-copy {
  position: relative;
  z-index: 5;
  display: flex;
  flex-direction: column;
  padding: clamp(2rem,4vw,4rem);
  background:
    radial-gradient(circle at 90% 10%, rgba(122,111,244,.16), transparent 30%),
    linear-gradient(145deg, rgba(28,34,45,.98), rgba(16,20,28,.98));
}

.collaboration-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.collaboration-index {
  color: #65d8db;
  font-size: .66rem;
  font-weight: 850;
  letter-spacing: .17em;
}

.collaboration-status {
  padding: .44rem .72rem;
  border: 1px solid rgba(158,154,245,.25);
  border-radius: 999px;
  color: #cbc8ff;
  background: rgba(122,111,244,.09);
  font-size: .62rem;
  font-weight: 750;
}

.collaboration-type {
  margin: 4.4rem 0 .8rem;
  color: rgba(232,235,242,.52);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.collaboration-copy h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(2.4rem,4.6vw,4.8rem);
  font-weight: 520;
  letter-spacing: -.04em;
}

.collaboration-copy h3 span {
  color: #9e9af5;
  font-weight: 320;
}

.collaboration-description {
  max-width: 660px;
  margin: 1.25rem 0 0;
  color: rgba(232,235,242,.72);
  font-size: .98rem;
  line-height: 1.8;
}

.collaboration-role-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: .7rem;
  margin-top: 2.2rem;
}

.collaboration-role-grid section {
  min-height: 190px;
  padding: 1.05rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 17px;
  background: rgba(255,255,255,.035);
}

.collaboration-role-grid small {
  display: block;
  margin-bottom: .7rem;
  color: #65d8db;
  font-size: .49rem;
  font-weight: 800;
  letter-spacing: .12em;
}

.collaboration-role-grid strong {
  display: block;
  color: #fff;
  font-size: .9rem;
  line-height: 1.35;
}

.collaboration-role-grid p {
  margin: .7rem 0 0;
  color: rgba(232,235,242,.58);
  font-size: .69rem;
  line-height: 1.58;
}

.collaboration-principle {
  margin-top: 1.8rem;
  padding: 1.15rem 1.25rem;
  border-left: 2px solid #9e9af5;
  background: rgba(158,154,245,.07);
}

.collaboration-principle span {
  display: block;
  margin-bottom: .45rem;
  color: #b9b6ff;
  font-size: .52rem;
  font-weight: 800;
  letter-spacing: .14em;
}

.collaboration-principle strong {
  display: block;
  color: #f7f7fb;
  font-size: .9rem;
  line-height: 1.48;
}

.collaboration-flow {
  display: flex;
  align-items: center;
  gap: .38rem;
  margin-top: 1.45rem;
}

.collaboration-flow span {
  color: rgba(232,235,242,.64);
  font-size: .48rem;
  font-weight: 750;
  letter-spacing: .07em;
  white-space: nowrap;
}

.collaboration-flow i {
  flex: 1;
  min-width: 9px;
  height: 1px;
  background: linear-gradient(90deg, rgba(101,216,219,.18), rgba(158,154,245,.55));
}

.collaboration-next {
  margin-top: auto;
  padding-top: 1.8rem;
}

.collaboration-next span {
  color: rgba(232,235,242,.55);
  font-size: .69rem;
}

.collaboration-visual {
  position: relative;
  min-height: 760px;
  overflow: hidden;
  background:
    radial-gradient(circle at 74% 12%, rgba(158,154,245,.33), transparent 28%),
    radial-gradient(circle at 18% 88%, rgba(101,216,219,.18), transparent 36%),
    linear-gradient(145deg, #202634 0%, #11161f 72%);
}

.creative-grid {
  position: absolute;
  inset: 0;
  opacity: .14;
  background-image:
    radial-gradient(circle, rgba(255,255,255,.65) 0 1px, transparent 1.4px),
    linear-gradient(120deg, transparent 48%, rgba(158,154,245,.42) 49%, transparent 50%);
  background-size: 34px 34px, 100% 100%;
}

.portfolio-window {
  position: absolute;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 16px;
  background: #f6f4ef;
  box-shadow: 0 26px 70px rgba(0,0,0,.34);
}

.portfolio-window > div {
  height: 31px;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 11px;
  color: rgba(18,22,29,.48);
  background: rgba(250,249,246,.98);
  border-bottom: 1px solid rgba(18,22,29,.08);
}

.portfolio-window > div span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #837de0;
}

.portfolio-window > div small {
  margin-left: auto;
  font-size: .47rem;
  letter-spacing: .08em;
}

.portfolio-window img {
  display: block;
  width: 100%;
  height: calc(100% - 31px);
  object-fit: cover;
  object-position: left top;
}

.portfolio-golden {
  left: 5%;
  top: 6%;
  width: 69%;
  aspect-ratio: 1.42;
  transform: rotate(-1.1deg);
}

.portfolio-vong {
  right: 4%;
  top: 30%;
  z-index: 3;
  width: 53%;
  aspect-ratio: 1.45;
  transform: rotate(1.2deg);
}

.portfolio-pilatonic {
  left: 7%;
  bottom: 10%;
  z-index: 4;
  width: 49%;
  aspect-ratio: 1.55;
  transform: rotate(-1.3deg);
}

.dennis-now-card,
.heedae-join-card,
.collaboration-seal {
  position: absolute;
  z-index: 8;
  border: 1px solid rgba(255,255,255,.19);
  backdrop-filter: blur(15px);
  box-shadow: 0 18px 50px rgba(0,0,0,.24);
}

.dennis-now-card {
  right: 4%;
  top: 5%;
  width: 39%;
  padding: 1rem;
  border-radius: 17px;
  color: #f5f5fb;
  background: rgba(19,24,33,.78);
}

.dennis-now-card small,
.heedae-join-card small {
  display: block;
  color: #65d8db;
  font-size: .46rem;
  font-weight: 800;
  letter-spacing: .13em;
}

.dennis-now-card strong,
.heedae-join-card strong {
  display: block;
  margin: .55rem 0;
  font-size: .85rem;
  line-height: 1.36;
}

.dennis-now-card ul {
  margin: .7rem 0 0;
  padding: 0;
  list-style: none;
}

.dennis-now-card li {
  padding: .31rem 0;
  border-top: 1px solid rgba(255,255,255,.08);
  color: rgba(240,241,246,.67);
  font-size: .55rem;
}

.heedae-join-card {
  right: 4%;
  bottom: 6%;
  width: 39%;
  padding: 1rem;
  border-radius: 17px;
  color: #10141b;
  background: rgba(245,244,255,.92);
}

.heedae-join-card small { color: #6f68ca; }
.heedae-join-card span {
  display: block;
  margin-top: .8rem;
  color: #6f68ca;
  font-size: .47rem;
  font-weight: 800;
  letter-spacing: .11em;
}

.collaboration-seal {
  left: 5%;
  bottom: 4%;
  padding: .85rem .95rem;
  border-radius: 15px;
  color: #fff;
  background: rgba(21,27,36,.82);
}

.collaboration-seal span {
  display: block;
  color: #9e9af5;
  font-size: .42rem;
  font-weight: 850;
  letter-spacing: .13em;
}

.collaboration-seal strong {
  display: block;
  margin-top: .45rem;
  font-size: .63rem;
  line-height: 1.35;
  letter-spacing: .06em;
}

html[lang="ko"] .collaboration-section [data-i18n] {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
}

@media (max-width: 1080px) {
  .collaboration-card { grid-template-columns: 1fr; }
  .collaboration-visual { min-height: 690px; }
  .collaboration-role-grid { grid-template-columns: 1fr 1fr; }
  .collaboration-role-grid section:last-child { grid-column: 1 / -1; min-height: auto; }
}

@media (max-width: 700px) {
  .collaboration-section { padding: 82px 0; }
  .collaboration-heading { margin-bottom: 2.3rem; }
  .collaboration-card { border-radius: 26px; }
  .collaboration-copy { padding: 1.55rem; }
  .collaboration-meta { align-items: flex-start; }
  .collaboration-status { max-width: 62%; text-align: right; }
  .collaboration-type { margin-top: 3rem; }
  .collaboration-copy h3 { font-size: 2.45rem; }
  .collaboration-role-grid { grid-template-columns: 1fr; }
  .collaboration-role-grid section:last-child { grid-column: auto; }
  .collaboration-flow { flex-wrap: wrap; }
  .collaboration-flow i { flex: 0 0 14px; }
  .collaboration-visual { min-height: 600px; }
  .portfolio-golden { left: 4%; width: 84%; }
  .portfolio-vong { right: 3%; top: 32%; width: 62%; }
  .portfolio-pilatonic { left: 4%; bottom: 12%; width: 58%; }
  .dennis-now-card { right: 3%; width: 48%; }
  .heedae-join-card { right: 3%; bottom: 5%; width: 47%; }
  .collaboration-seal { left: 4%; bottom: 4%; }
}



/* =========================================================
   APPROVED ORIGINAL HEADER LOGO · RESTORED v1.7.1
   Official master name remains SKALA Constellation Studio.
   This visual lockup is the protected SKALA Home signature.
   ========================================================= */
.brand-lockup {
  min-width: auto;
  display: flex;
  align-items: center;
  gap: .75rem;
  text-decoration: none;
  letter-spacing: .08em;
}

.brand-lockup strong {
  display: block;
  font-size: .82rem;
  letter-spacing: inherit;
}

.brand-lockup small {
  display: block;
  margin-top: .05rem;
  font-size: .66rem;
  font-weight: inherit;
  letter-spacing: inherit;
  opacity: .65;
}

@media (max-width: 700px) {
  .brand-lockup {
    min-width: auto;
  }

  .brand-lockup strong {
    font-size: .82rem;
  }

  .brand-lockup small {
    font-size: .66rem;
  }
}



/* SKALA LIBRARY · THE QUIET ORBIT · v1.8 */
.quiet-orbit-section{position:relative;isolation:isolate;overflow:hidden;padding:128px 0 118px;color:#f4efe6;background:radial-gradient(circle at 70% 33%,rgba(183,139,88,.16),transparent 22%),radial-gradient(circle at 18% 85%,rgba(117,137,112,.12),transparent 28%),linear-gradient(154deg,#11181f 0%,#0b1117 48%,#16181a 100%)}
.library-stars,.library-stars::before,.library-stars::after{position:absolute;inset:0;content:"";pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.7) 0 1px,transparent 1.3px),radial-gradient(circle,rgba(224,202,166,.55) 0 .7px,transparent 1px);background-size:109px 127px,73px 91px;background-position:13px 23px,47px 11px;opacity:.23}.library-stars::before{transform:rotate(7deg) scale(1.05);opacity:.36}.library-stars::after{transform:rotate(-5deg) scale(1.08);opacity:.18}
.library-orbit{position:absolute;z-index:-1;border:1px solid rgba(229,215,192,.13);border-radius:50%;transform:rotate(-17deg)}.orbit-a{width:980px;height:420px;right:-270px;top:240px}.orbit-b{width:720px;height:260px;left:-310px;bottom:35px}
.quiet-orbit-shell{position:relative;z-index:2}.quiet-orbit-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:4rem;align-items:end;margin-bottom:4rem}.quiet-orbit-heading h2{max-width:850px;margin:.85rem 0 0;color:#f7f1e7;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.55rem,5.2vw,5.8rem);font-weight:500;line-height:.98;letter-spacing:-.04em}.quiet-orbit-heading>p{max-width:520px;margin:0;color:rgba(244,239,230,.67);font-size:.96rem;line-height:1.8}
.library-feature-card{display:grid;grid-template-columns:minmax(340px,.9fr) minmax(480px,1.1fr);min-height:680px;overflow:hidden;border:1px solid rgba(240,226,203,.17);border-radius:38px;background:rgba(255,255,255,.035);box-shadow:0 42px 130px rgba(0,0,0,.34);backdrop-filter:blur(18px)}.library-feature-copy{display:flex;flex-direction:column;padding:clamp(2rem,4vw,4.4rem);background:radial-gradient(circle at 0 100%,rgba(127,143,117,.12),transparent 34%),linear-gradient(150deg,rgba(255,255,255,.06),rgba(255,255,255,.015))}.library-feature-meta{display:flex;justify-content:space-between;gap:1rem;color:rgba(237,220,195,.68);font-size:.61rem;font-weight:800;letter-spacing:.14em}.library-collection-label{margin:auto 0 .85rem;padding-top:4rem;color:#c6a36f;font-size:.64rem;font-weight:800;letter-spacing:.16em}.library-feature-copy h3{margin:0;color:#fff9ef;font-size:clamp(2.2rem,4vw,4.2rem);line-height:1.05;letter-spacing:-.035em}.library-feature-subtitle{margin:.8rem 0 0;color:rgba(244,239,230,.72);font-size:1rem;line-height:1.7}.library-feature-copy blockquote{margin:2rem 0 0;padding:1.3rem 0 1.35rem 1.4rem;border-left:1px solid rgba(198,163,111,.62)}.library-feature-copy blockquote span,.library-feature-copy blockquote strong{display:block}.library-feature-copy blockquote span{color:#c6a36f;font-family:Georgia,"Times New Roman",serif;font-size:1.1rem;font-style:italic}.library-feature-copy blockquote strong{max-width:560px;margin-top:.65rem;color:#f6efe4;font-size:1.08rem;line-height:1.7}.library-feature-description{max-width:590px;margin:1.35rem 0 0;color:rgba(244,239,230,.64);font-size:.9rem;line-height:1.8}
.library-language-doors{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;margin-top:2rem}.library-door{display:grid;gap:.35rem;padding:1rem 1.05rem;border:1px solid rgba(240,226,203,.14);border-radius:16px;color:#f8f2e8;text-decoration:none;background:rgba(255,255,255,.035);transition:transform .22s ease,border-color .22s ease,background .22s ease}.library-door:hover,.library-door:focus-visible{transform:translateY(-3px);border-color:rgba(198,163,111,.52);background:rgba(198,163,111,.08)}.library-door small{color:rgba(244,239,230,.48);font-size:.5rem;letter-spacing:.12em}.library-door strong{font-size:.77rem}
.library-book-stage{position:relative;display:block;min-height:680px;overflow:hidden;color:#fff;text-decoration:none;background:radial-gradient(circle at 47% 46%,rgba(245,224,188,.22),transparent 24%),radial-gradient(circle at 72% 22%,rgba(143,158,134,.12),transparent 31%),linear-gradient(145deg,#1a2023,#0e151a 65%,#22201d)}.library-book-stage::before,.library-book-stage::after{content:"";position:absolute;border:1px solid rgba(229,215,192,.18);border-radius:50%;transform:rotate(-19deg)}.library-book-stage::before{width:760px;height:310px;left:-70px;top:165px}.library-book-stage::after{width:560px;height:220px;left:65px;top:215px}.library-glow{position:absolute;width:350px;height:350px;left:39%;top:48%;border-radius:50%;transform:translate(-50%,-50%);background:rgba(235,213,178,.16);filter:blur(52px)}.library-book{position:absolute;z-index:4;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.3);border-radius:12px;background:#f5f0e7;box-shadow:0 36px 70px rgba(0,0,0,.43);transition:transform .3s ease,box-shadow .3s ease}.library-book img{display:block;width:100%;height:auto}.library-book-ko{width:43%;left:21%;top:12%;transform:rotate(-5.2deg)}.library-book-vi{width:36%;right:10%;bottom:7%;transform:rotate(7deg)}.library-book-stage:hover .library-book-ko{transform:translateY(-8px) rotate(-4deg);box-shadow:0 45px 85px rgba(0,0,0,.52)}.library-book-stage:hover .library-book-vi{transform:translateY(-5px) rotate(6deg)}.orbit-label{position:absolute;z-index:3;color:rgba(242,229,207,.42);font-size:.48rem;font-weight:800;letter-spacing:.18em}.orbit-label-one{left:6%;top:19%}.orbit-label-two{right:7%;top:31%}.orbit-label-three{left:13%;bottom:12%}.library-enter{position:absolute;z-index:8;right:1rem;bottom:1rem;padding:.7rem .95rem;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:rgba(255,255,255,.88);background:rgba(11,17,23,.62);backdrop-filter:blur(12px);font-size:.68rem;font-weight:800}
.future-shelves{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin-top:1rem}.future-shelves article{display:grid;grid-template-columns:auto 1fr;gap:.75rem 1rem;min-height:170px;padding:1.25rem;border:1px solid rgba(240,226,203,.11);border-radius:22px;background:rgba(255,255,255,.025)}.future-shelves article>span{color:#c6a36f;font-size:.56rem;font-weight:850;letter-spacing:.12em}.future-shelves div{display:grid;gap:.45rem}.future-shelves small{color:rgba(244,239,230,.42);font-size:.5rem;letter-spacing:.12em}.future-shelves strong{color:rgba(244,239,230,.82);font-size:.82rem;line-height:1.4}.future-shelves em{grid-column:2;align-self:end;color:rgba(244,239,230,.38);font-size:.67rem;font-style:normal}
@media(max-width:960px){.quiet-orbit-heading{grid-template-columns:1fr;gap:1.5rem}.library-feature-card{grid-template-columns:1fr}.library-book-stage{min-height:650px}.future-shelves{grid-template-columns:1fr}}@media(max-width:700px){.quiet-orbit-section{padding:88px 0 76px}.quiet-orbit-heading{margin-bottom:2.4rem}.quiet-orbit-heading h2{font-size:clamp(2.4rem,13vw,4rem)}.library-feature-card{border-radius:27px}.library-feature-copy{padding:1.5rem}.library-feature-meta{align-items:flex-start}.library-feature-meta span:last-child{max-width:55%;text-align:right}.library-collection-label{padding-top:3rem}.library-feature-copy h3{font-size:2.35rem}.library-language-doors{grid-template-columns:1fr}.library-book-stage{min-height:500px}.library-book-ko{width:53%;left:11%;top:10%}.library-book-vi{width:44%;right:6%;bottom:8%}}


/* =========================================================
   SKALA LIBRARY · EDITION REFINEMENT v1.9.2
   Titles recede. Editions replace language-file labels.
   ========================================================= */
.quiet-orbit-heading {
  grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
  gap: clamp(2.5rem, 5vw, 5.5rem);
  align-items: center;
  margin-bottom: 3.25rem;
}

.quiet-orbit-heading h2 {
  max-width: 760px;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-size: clamp(2rem, 3.15vw, 3.45rem);
  font-weight: 560;
  line-height: 1.15;
  letter-spacing: -.035em;
  word-break: keep-all;
  text-wrap: balance;
}

.quiet-orbit-heading > p {
  max-width: 470px;
  font-size: .88rem;
  line-height: 1.85;
}

.library-feature-card {
  grid-template-columns: minmax(360px, .92fr) minmax(460px, 1.08fr);
  min-height: 570px;
}

.library-feature-copy {
  padding: clamp(2rem, 3.5vw, 3.7rem);
}

.library-collection-label {
  padding-top: 2.6rem;
}

.library-feature-copy h3 {
  max-width: 15ch;
  font-size: clamp(2rem, 2.8vw, 2.85rem);
  line-height: 1.13;
  font-weight: 620;
  word-break: keep-all;
  text-wrap: balance;
}

.library-feature-subtitle {
  font-size: .92rem;
}

.library-feature-copy blockquote {
  margin-top: 1.55rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.library-feature-copy blockquote strong {
  font-size: .96rem;
}

.library-feature-description {
  font-size: .84rem;
}

.library-language-doors {
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  margin-top: 1.55rem;
}

.library-door {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  gap: .28rem .8rem;
  padding: .95rem 1rem;
  border-radius: 14px;
}

.library-door small {
  grid-column: 1 / -1;
  color: #c6a36f;
  font-size: .45rem;
  font-weight: 800;
  letter-spacing: .16em;
}

.library-door strong {
  max-width: 22ch;
  font-size: .72rem;
  line-height: 1.4;
}

.library-door span {
  color: rgba(244,239,230,.62);
  font-size: .62rem;
}

.library-door em {
  grid-column: 2;
  grid-row: 2 / span 2;
  align-self: end;
  color: rgba(244,239,230,.34);
  font-size: .49rem;
  font-style: normal;
  white-space: nowrap;
}

.library-book-stage {
  min-height: 570px;
}

.library-book-ko {
  width: 35%;
  left: 24%;
  top: 12%;
}

.library-book-vi {
  width: 29%;
  right: 10%;
  bottom: 8%;
}

.library-book-stage::before {
  width: 650px;
  height: 270px;
}

.library-book-stage::after {
  width: 470px;
  height: 185px;
}

@media (max-width: 960px) {
  .quiet-orbit-heading h2 {
    max-width: 700px;
    font-size: clamp(2rem, 5.8vw, 3.25rem);
  }

  .library-feature-card {
    grid-template-columns: 1fr;
  }

  .library-book-stage {
    min-height: 560px;
  }
}

@media (max-width: 700px) {
  .quiet-orbit-heading h2 {
    font-size: clamp(1.9rem, 8.5vw, 2.65rem);
    line-height: 1.18;
  }

  .library-feature-copy h3 {
    font-size: clamp(1.8rem, 8.4vw, 2.4rem);
  }

  .library-language-doors {
    grid-template-columns: 1fr;
  }

  .library-book-stage {
    min-height: 450px;
  }

  .library-book-ko {
    width: 45%;
    left: 13%;
  }

  .library-book-vi {
    width: 37%;
    right: 8%;
  }
}




/* =========================================================
   SKALA MOBILE HEADER & LIBRARY TITLE · v1.9.6
   A real mobile entrance, with a quiet Library heading.
   ========================================================= */
.header-actions {
  display: flex;
  align-items: center;
  gap: .55rem;
}

.mobile-menu-toggle {
  display: none;
  align-items: center;
  justify-content: center;
  gap: .46rem;
  min-width: 58px;
  height: 38px;
  padding: 0 .72rem;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  color: rgba(255,255,255,.92);
  background: rgba(255,255,255,.055);
  cursor: pointer;
}

.mobile-menu-toggle > span:last-child {
  font-size: .64rem;
  font-weight: 720;
}

.mobile-menu-lines {
  display: grid;
  gap: 4px;
  width: 13px;
}

.mobile-menu-lines i {
  display: block;
  width: 13px;
  height: 1px;
  background: currentColor;
  transition: transform .22s ease;
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-lines i:first-child {
  transform: translateY(2.5px) rotate(45deg);
}

.mobile-menu-toggle[aria-expanded="true"] .mobile-menu-lines i:last-child {
  transform: translateY(-2.5px) rotate(-45deg);
}

.mobile-menu-backdrop {
  position: fixed;
  z-index: 180;
  inset: 0;
  visibility: hidden;
  opacity: 0;
  background: rgba(3,7,11,.62);
  backdrop-filter: blur(6px);
  transition: opacity .25s ease, visibility .25s ease;
}

.mobile-menu-backdrop.open {
  visibility: visible;
  opacity: 1;
}

.mobile-menu-panel {
  position: fixed;
  z-index: 190;
  top: 0;
  right: 0;
  width: min(88vw, 360px);
  height: 100svh;
  padding:
    max(22px, env(safe-area-inset-top))
    1.2rem
    max(24px, env(safe-area-inset-bottom));
  color: #f5f0e7;
  background:
    radial-gradient(circle at 88% 8%, rgba(198,163,111,.16), transparent 26%),
    linear-gradient(160deg, #121b23, #080e14 72%);
  border-left: 1px solid rgba(255,255,255,.1);
  box-shadow: -30px 0 90px rgba(0,0,0,.38);
  overflow-y: auto;
  visibility: hidden;
  transform: translateX(104%);
  transition: transform .32s cubic-bezier(.22,.7,.2,1), visibility .32s ease;
}

.mobile-menu-panel.open {
  visibility: visible;
  transform: translateX(0);
}

body.mobile-menu-open {
  overflow: hidden;
}

.mobile-menu-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .5rem .15rem 1.4rem;
  border-bottom: 1px solid rgba(255,255,255,.1);
}

.mobile-menu-head > div {
  display: grid;
  gap: .25rem;
}

.mobile-menu-head small {
  color: #c6a36f;
  font-size: .48rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.mobile-menu-head strong {
  font-size: 1rem;
  font-weight: 600;
}

.mobile-menu-head button {
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 50%;
  color: #fff;
  background: rgba(255,255,255,.045);
  font-size: 1.4rem;
  cursor: pointer;
}

.mobile-menu-nav {
  display: grid;
  padding: 1.1rem 0;
}

.mobile-menu-nav > a {
  display: grid;
  grid-template-columns: 32px 1fr;
  align-items: center;
  min-height: 58px;
  padding: .7rem .4rem;
  border-bottom: 1px solid rgba(255,255,255,.075);
  color: rgba(245,240,231,.84);
  text-decoration: none;
}

.mobile-menu-nav > a > span {
  color: rgba(198,163,111,.7);
  font-size: .53rem;
  font-weight: 800;
  letter-spacing: .08em;
}

.mobile-menu-nav strong {
  font-size: .88rem;
  font-weight: 560;
}

.mobile-menu-nav > a:active,
.mobile-menu-nav > a:focus-visible {
  color: #fff;
  background: rgba(255,255,255,.04);
}

.mobile-library-door {
  margin-top: .8rem;
  padding: 1rem .75rem !important;
  border: 1px solid rgba(198,163,111,.3) !important;
  border-radius: 18px;
  background:
    radial-gradient(circle at 90% 20%, rgba(198,163,111,.14), transparent 36%),
    rgba(255,255,255,.035);
}

.mobile-library-door > div {
  display: grid;
  gap: .22rem;
}

.mobile-library-door small {
  color: rgba(198,163,111,.72);
  font-size: .46rem;
  letter-spacing: .14em;
}

.mobile-library-door strong {
  color: #fff8eb;
}

.mobile-menu-foot {
  margin: 1.4rem .35rem 0;
  color: rgba(245,240,231,.42);
  font-size: .65rem;
  line-height: 1.7;
}

.library-title-mobile {
  display: none;
}

@media (max-width: 960px) {
  .mobile-menu-toggle {
    display: inline-flex;
  }

  .site-header {
    grid-template-columns: minmax(0,1fr) auto;
    gap: .7rem;
  }
}

@media (max-width: 820px) {
  .quiet-orbit-heading {
    display: block !important;
    grid-template-columns: none !important;
    gap: 0 !important;
    align-items: initial !important;
    margin-bottom: 2.1rem !important;
  }

  .quiet-orbit-heading > div {
    width: 100%;
  }

  .quiet-orbit-heading h2 {
    width: 100%;
    max-width: 18ch !important;
    margin: .7rem 0 0 !important;
    font-size: clamp(1.8rem, 7.1vw, 2.35rem) !important;
    font-weight: 570 !important;
    line-height: 1.2 !important;
    letter-spacing: -.025em !important;
    word-break: keep-all !important;
    text-wrap: balance;
  }

  .library-title-desktop {
    display: none;
  }

  .library-title-mobile {
    display: inline;
  }

  .quiet-orbit-heading > p {
    position: static !important;
    width: 100%;
    max-width: 31rem !important;
    margin: 1rem 0 0 !important;
    font-size: .82rem !important;
    line-height: 1.78 !important;
  }
}

@media (max-width: 700px) {
  .site-header {
    padding: 0 4vw;
  }

  .brand-lockup {
    gap: .55rem;
  }

  .brand-lockup strong {
    font-size: .72rem;
  }

  .brand-lockup small {
    display: block;
    font-size: .52rem;
  }

  .brand-mark {
    font-size: 1rem;
  }

  .header-actions {
    gap: .38rem;
  }

  .mobile-menu-toggle {
    min-width: 52px;
    height: 36px;
    padding: 0 .58rem;
  }

  .mobile-menu-toggle > span:last-child {
    font-size: .58rem;
  }

  .language-toggle {
    min-width: 40px;
    height: 36px;
  }

  .quiet-orbit-section {
    padding-top: 92px;
  }

  .quiet-orbit-heading .section-kicker {
    font-size: .5rem;
    letter-spacing: .14em;
  }

  .quiet-orbit-heading h2 {
    max-width: 15ch !important;
    font-size: clamp(1.72rem, 7.6vw, 2.15rem) !important;
  }
}

@media (max-width: 380px) {
  .brand-lockup small {
    display: none;
  }

  .mobile-menu-toggle > span:last-child {
    display: none;
  }

  .mobile-menu-toggle {
    min-width: 38px;
    width: 38px;
    padding: 0;
  }
}




/* =========================================================
   SKALA CONSTELLATION SYMBOL FAMILY · v1.9.7
   Compass · Anchor · Voyage · Home as one visual language.
   ========================================================= */
.skala-symbol-grid {
  gap: clamp(.85rem, 1.3vw, 1.35rem);
}

.principle-card {
  position: relative;
  min-height: 355px;
  padding: 1.45rem 1.35rem 1.65rem !important;
  overflow: hidden;
  border: 1px solid rgba(89,104,109,.13);
  border-top-color: rgba(89,104,109,.18) !important;
  border-radius: 22px;
  background:
    radial-gradient(circle at 78% 18%, rgba(255,255,255,.82), transparent 30%),
    linear-gradient(145deg, rgba(255,255,255,.48), rgba(239,235,226,.72));
  box-shadow:
    0 18px 46px rgba(53,61,63,.07),
    inset 0 1px 0 rgba(255,255,255,.58);
  isolation: isolate;
}

.principle-card::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  opacity: .36;
  background:
    radial-gradient(circle at 12% 18%, currentColor 0 1px, transparent 1.6px),
    radial-gradient(circle at 82% 34%, currentColor 0 1px, transparent 1.6px),
    radial-gradient(circle at 65% 84%, currentColor 0 1px, transparent 1.6px);
  background-size: 54px 54px, 72px 72px, 64px 64px;
  mask-image: linear-gradient(to bottom, black, transparent 76%);
}

.principle-card::after {
  content: "";
  position: absolute;
  z-index: -1;
  width: 160px;
  height: 160px;
  right: -64px;
  top: -68px;
  border: 1px solid currentColor;
  border-radius: 50%;
  opacity: .08;
}

.principle-compass { color: #9a7c47; }
.principle-anchor { color: #647467; }
.principle-voyage { color: #6f8290; }
.principle-home { color: #8a7165; }

.principle-icon.skala-symbol {
  display: grid;
  place-items: center;
  width: 104px;
  height: 104px;
  margin: 0 0 2.35rem;
  border: 1px solid rgba(100,112,115,.16);
  border-radius: 31px;
  color: currentColor;
  background:
    radial-gradient(circle at 50% 42%, rgba(255,255,255,.92), rgba(255,255,255,.44) 64%, transparent 65%),
    rgba(247,244,237,.74);
  box-shadow:
    0 18px 44px rgba(70,79,81,.09),
    inset 0 0 0 1px rgba(255,255,255,.48);
  transform: rotate(-1.5deg);
}

.principle-card:nth-child(even) .principle-icon.skala-symbol {
  transform: rotate(1.5deg);
}

.skala-symbol svg {
  width: 78px;
  height: 78px;
  overflow: visible;
}

.symbol-line,
.symbol-route,
.symbol-orbit {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.55;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.symbol-orbit {
  opacity: .25;
  stroke-dasharray: 2 7;
}

.orbit-inner,
.route-secondary {
  opacity: .16;
}

.symbol-route {
  stroke-dasharray: 3 6;
  opacity: .62;
}

.symbol-star {
  fill: rgba(255,250,240,.68);
  stroke: currentColor;
  stroke-width: 1.25;
  stroke-linejoin: round;
}

.small-star,
.voyage-star,
.home-light {
  fill: rgba(255,255,255,.7);
}

.symbol-node {
  stroke: rgba(255,255,255,.88);
  stroke-width: 1.15;
  filter: drop-shadow(0 0 6px currentColor);
}

.node-gold { fill: #c6a36f; color: #c6a36f; }
.node-moss { fill: #768a73; color: #768a73; }
.node-blue { fill: #7e97a9; color: #7e97a9; }
.node-soft { fill: currentColor; opacity: .7; }
.node-quiet { fill: #9da6a2; color: #9da6a2; }

.principle-card h3 {
  color: #2a3337;
  font-size: 1.42rem;
}

.principle-card p {
  max-width: 31ch;
  color: #687377;
  line-height: 1.72;
}

.principle-card:hover .symbol-orbit,
.principle-card:focus-within .symbol-orbit {
  animation: skalaOrbit 7s linear infinite;
  transform-origin: 60px 60px;
}

.principle-card:hover .symbol-node,
.principle-card:focus-within .symbol-node {
  animation: skalaNodePulse 2.8s ease-in-out infinite;
}

.principle-card:hover .symbol-route,
.principle-card:focus-within .symbol-route {
  animation: skalaRoute 3.6s linear infinite;
}

@keyframes skalaOrbit {
  to { transform: rotate(360deg); }
}

@keyframes skalaNodePulse {
  0%,100% { opacity: .74; }
  50% { opacity: 1; }
}

@keyframes skalaRoute {
  to { stroke-dashoffset: -36; }
}

@media (max-width: 960px) {
  .principle-card {
    min-height: 330px;
  }
}

@media (max-width: 700px) {
  .skala-symbol-grid {
    gap: .85rem;
  }

  .principle-card {
    display: grid;
    grid-template-columns: 78px minmax(0,1fr);
    grid-template-rows: auto 1fr;
    gap: .15rem 1rem;
    min-height: 0;
    padding: 1.25rem !important;
    border-radius: 19px;
  }

  .principle-icon.skala-symbol {
    grid-row: 1 / span 2;
    width: 76px;
    height: 76px;
    margin: 0;
    border-radius: 23px;
  }

  .skala-symbol svg {
    width: 58px;
    height: 58px;
  }

  .principle-card h3 {
    align-self: end;
    font-size: 1.18rem;
  }

  .principle-card p {
    margin: .3rem 0 0;
    font-size: .82rem;
    line-height: 1.62;
  }
}

@media (prefers-reduced-motion: reduce) {
  .principle-card:hover .symbol-orbit,
  .principle-card:hover .symbol-node,
  .principle-card:hover .symbol-route {
    animation: none !important;
  }
}




/* =========================================================
   DENNIS STORY · THE BUILDER BEHIND THE CONSTELLATION v1.9.9
   The protected constellation entrance remains unchanged.
   ========================================================= */
.dennis-story{position:relative;overflow:hidden;color:#263238;background:radial-gradient(circle at 88% 10%,rgba(198,163,111,.13),transparent 27%),radial-gradient(circle at 8% 78%,rgba(112,139,145,.1),transparent 30%),linear-gradient(155deg,#f7f3eb 0%,#ebe5da 100%);border-bottom:1px solid rgba(55,66,70,.09)}
.dennis-story::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.24;background-image:linear-gradient(rgba(72,83,87,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(72,83,87,.06) 1px,transparent 1px);background-size:46px 46px;mask-image:linear-gradient(140deg,transparent 2%,black 52%,transparent 100%)}
.dennis-story-stars{position:absolute;inset:0;pointer-events:none;opacity:.3;background:radial-gradient(circle at 12% 22%,#9c8358 0 1px,transparent 1.7px),radial-gradient(circle at 32% 13%,#647b7f 0 1px,transparent 1.7px),radial-gradient(circle at 74% 28%,#8c7e70 0 1px,transparent 1.7px),radial-gradient(circle at 91% 64%,#718783 0 1px,transparent 1.7px),radial-gradient(circle at 18% 78%,#a5815e 0 1px,transparent 1.7px);background-size:170px 170px,220px 220px,190px 190px,260px 260px,210px 210px}
.dennis-story-shell{position:relative;z-index:2;padding-top:clamp(7rem,9vw,9rem);padding-bottom:clamp(7rem,9vw,9rem)}
.dennis-story-heading{margin-bottom:clamp(3rem,5vw,4.8rem)}
.dennis-story-heading-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.62fr);gap:clamp(2.5rem,6vw,6rem);align-items:end}
.dennis-story-heading h2{max-width:860px;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;font-size:clamp(2.35rem,4.15vw,4.7rem);font-weight:560;line-height:1.09;letter-spacing:-.045em;word-break:keep-all;text-wrap:balance}
.story-title-mobile{display:none}
.dennis-story-intro{max-width:510px;color:#5e6a6d;font-size:.94rem;line-height:1.86}.dennis-story-intro p{margin:0}
.dennis-story-note{margin-top:1rem!important;padding-top:1rem;border-top:1px solid rgba(54,67,71,.15);color:#8b6d45;font-size:.75rem;font-weight:700;letter-spacing:.025em}
.dennis-story-workbench{display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(360px,.95fr);gap:1rem;align-items:stretch}
.dennis-story-map,.dennis-story-stages{border:1px solid rgba(52,66,70,.13);border-radius:30px;background:rgba(255,255,255,.43);box-shadow:0 26px 70px rgba(45,55,58,.1),inset 0 1px 0 rgba(255,255,255,.62)}
.dennis-story-map{position:relative;min-height:560px;overflow:hidden;background:radial-gradient(circle at 74% 18%,rgba(198,163,111,.13),transparent 28%),linear-gradient(150deg,rgba(255,255,255,.62),rgba(231,227,217,.66))}
.dennis-story-map::after{content:"";position:absolute;width:520px;height:520px;left:9%;top:3%;border:1px solid rgba(76,91,95,.08);border-radius:50%;transform:rotate(-13deg)}
.dennis-story-map svg{position:absolute;inset:4% 3% 11%;width:94%;height:85%;overflow:visible}
.story-orbit,.story-route,.story-icon path,.story-icon rect,.story-icon circle{fill:none;stroke:#6c7b7f;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.story-orbit{stroke-width:1.1;stroke-dasharray:3 9;opacity:.25}.orbit-return{opacity:.13}.story-route{stroke-width:1.25;stroke-dasharray:3 7;opacity:.48}
.story-node{stroke:rgba(255,255,255,.9);stroke-width:2;filter:drop-shadow(0 0 9px currentColor)}.node-timber{fill:#a77a63;color:#a77a63}.node-care{fill:#c49b68;color:#c49b68}.node-vietnam{fill:#778c79;color:#778c79}.node-digital{fill:#728ca0;color:#728ca0}.node-home{fill:#8c79a6;color:#8c79a6}
.story-icon path,.story-icon rect,.story-icon circle{stroke-width:1.8;opacity:.76}.story-star-shape{fill:rgba(255,250,239,.7)!important}
.dennis-story-map text{fill:rgba(48,61,65,.56);font-family:-apple-system,BlinkMacSystemFont,"Pretendard",sans-serif;font-size:11px;font-weight:780;letter-spacing:1.4px}
.story-map-caption{position:absolute;left:1.35rem;right:1.35rem;bottom:1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid rgba(54,67,71,.13)}
.story-map-caption span{color:#9a7c4d;font-size:.52rem;font-weight:800;letter-spacing:.15em}.story-map-caption strong{color:#536064;font-size:.72rem;font-weight:560;text-align:right}
.dennis-story-stages{display:grid;padding:.55rem 1.25rem}.dennis-story-stages article{display:grid;grid-template-columns:42px minmax(0,1fr);gap:.7rem;padding:1.3rem .2rem;border-bottom:1px solid rgba(54,67,71,.1)}.dennis-story-stages article:last-child{border-bottom:0}
.dennis-story-stages article>span{color:#b38b55;font-size:.56rem;font-weight:850}.dennis-story-stages article>div{display:grid;gap:.34rem}.dennis-story-stages small{color:#899397;font-size:.49rem;font-weight:760;letter-spacing:.13em}.dennis-story-stages strong{color:#303c40;font-size:.94rem;font-weight:640}.dennis-story-stages p{max-width:46ch;margin:0;color:#687477;font-size:.74rem;line-height:1.7}
.dennis-story-footer{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-top:3.2rem;padding-top:2rem;border-top:1px solid rgba(54,67,71,.15)}
.dennis-story-footer blockquote{display:grid;gap:.45rem;margin:0}.dennis-story-footer blockquote span{color:#344145;font-family:-apple-system,BlinkMacSystemFont,"Pretendard Variable","Pretendard","Noto Sans KR",sans-serif;font-size:clamp(1.35rem,2.25vw,2.3rem);font-weight:570;letter-spacing:-.025em}.dennis-story-footer blockquote small{color:#778286;font-size:.7rem}
.story-next-link{display:inline-flex;align-items:center;min-height:44px;padding:0 1rem;border:1px solid rgba(53,66,70,.18);border-radius:999px;color:#435156;background:rgba(255,255,255,.42);text-decoration:none;font-size:.72rem;font-weight:680;transition:transform .2s ease,background .2s ease}.story-next-link:hover,.story-next-link:focus-visible{transform:translateY(-2px);background:rgba(255,255,255,.75)}
@media(max-width:1000px){.dennis-story-heading-grid,.dennis-story-workbench{grid-template-columns:1fr}.dennis-story-intro{max-width:650px}.dennis-story-map{min-height:510px}}
@media(max-width:700px){.dennis-story-shell{padding-top:5.7rem;padding-bottom:5.8rem}.dennis-story-heading{margin-bottom:2.4rem}.dennis-story-heading-grid{gap:1.35rem}.story-title-desktop{display:none}.story-title-mobile{display:inline}.dennis-story-heading h2{max-width:14ch;font-size:clamp(2rem,9.2vw,2.75rem);line-height:1.14;letter-spacing:-.035em}.dennis-story-intro{font-size:.84rem;line-height:1.82}.dennis-story-map{min-height:390px;border-radius:23px}.dennis-story-map svg{inset:3% -7% 15%;width:114%;height:82%}.dennis-story-map text{font-size:9px}.story-map-caption{display:grid;gap:.35rem;left:1rem;right:1rem;bottom:1rem}.story-map-caption strong{text-align:left;font-size:.64rem}.dennis-story-stages{padding:.4rem .9rem;border-radius:23px}.dennis-story-stages article{grid-template-columns:34px minmax(0,1fr);padding:1.05rem .1rem}.dennis-story-stages strong{font-size:.88rem}.dennis-story-stages p{font-size:.7rem}.dennis-story-footer{display:grid;align-items:start;margin-top:2.5rem}.dennis-story-footer blockquote span{font-size:1.45rem}.story-next-link{width:max-content}}
@media(prefers-reduced-motion:no-preference){.dennis-story-map .story-route{animation:dennisStoryRoute 7s linear infinite}.dennis-story-map .story-node{animation:dennisStoryPulse 3.8s ease-in-out infinite}.dennis-story-map .story-node:nth-of-type(2n){animation-delay:-1.8s}}
@keyframes dennisStoryRoute{to{stroke-dashoffset:-70}}
@keyframes dennisStoryPulse{0%,100%{opacity:.72}50%{opacity:1}}




/* =========================================================
   QUIET LIFE CONSTELLATION · v1.10.0
   ========================================================= */
.dennis-life-orbit{position:relative;min-height:96vh;overflow:hidden;color:#f2eee7;background:radial-gradient(circle at 74% 18%,rgba(99,124,145,.13),transparent 27%),radial-gradient(circle at 28% 70%,rgba(176,126,92,.09),transparent 29%),linear-gradient(180deg,#071018 0%,#0a131b 58%,#0d161d 100%);border-top:1px solid rgba(255,255,255,.035);border-bottom:1px solid rgba(255,255,255,.045)}
.dennis-life-orbit::before{content:"";position:absolute;inset:-1px 0 auto;height:180px;pointer-events:none;background:linear-gradient(to bottom,#071018 0%,rgba(7,16,24,.9) 45%,transparent 100%)}
.life-orbit-stars{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%;pointer-events:none;opacity:.82;background:none!important;mask-image:linear-gradient(to bottom,rgba(0,0,0,.84),black 82%,transparent 100%)}
.life-orbit-glow{position:absolute;width:520px;height:520px;border:1px solid rgba(181,197,204,.08);border-radius:50%;pointer-events:none}.life-glow-one{left:-110px;top:130px;transform:rotate(-17deg)}.life-glow-two{right:-190px;bottom:-50px;width:680px;height:680px;border-color:rgba(194,160,110,.07)}
.life-orbit-shell{position:relative;z-index:2;padding-top:clamp(5.5rem,7vw,7.5rem);padding-bottom:clamp(5rem,7vw,7rem)}
.life-orbit-header{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:.5rem}.life-orbit-header>p{margin:0;color:rgba(211,188,147,.66);font-size:.52rem;font-weight:800;letter-spacing:.19em}
.life-orbit-header h2{display:grid;gap:.22rem;margin:0;text-align:right;font-family:-apple-system,BlinkMacSystemFont,"Pretendard Variable","Pretendard","Noto Sans KR","Apple SD Gothic Neo",sans-serif}.life-orbit-header h2>span{color:rgba(239,235,226,.74);font-size:.66rem;font-weight:760;letter-spacing:.14em}.life-orbit-header h2>small{color:rgba(239,235,226,.42);font-size:.58rem;font-weight:520;letter-spacing:.04em}
.life-constellation-stage{position:relative;min-height:min(64vw,760px)}.life-map{width:100%;height:auto;overflow:visible}.life-map-mobile{display:none}
.life-wide-orbit,.life-route,.life-builder-mark path,.future-house path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.life-wide-orbit{stroke:rgba(192,205,211,.09);stroke-width:1.1}.life-wide-orbit.orbit-second{stroke:rgba(198,163,111,.07)}
.life-route{stroke:rgba(184,201,207,.36);stroke-width:1.15;stroke-dasharray:3 9}.route-return{stroke:rgba(198,163,111,.23)}.route-future{stroke:rgba(142,160,176,.24)}
.life-node{stroke:rgba(255,255,255,.82);stroke-width:1.5;filter:drop-shadow(0 0 10px currentColor)}.node-seoul{fill:#c8a66f;color:#c8a66f}.node-sydney{fill:#aa785e;color:#aa785e}.node-hcm{fill:#738a76;color:#738a76}.node-dennis{fill:#7e91a4;color:#7e91a4}.node-future-one{fill:#8b78a6;color:#8b78a6}.node-future-two{fill:#8aa09a;color:#8aa09a}.node-future-three,.node-future-four{fill:#87949a;color:#87949a;opacity:.64}
.life-builder-mark path,.future-house path{stroke:rgba(237,232,222,.68);stroke-width:1.45}.life-builder-star{fill:rgba(240,234,221,.54)!important;stroke:rgba(240,234,221,.76)!important}.future-house{opacity:.72}
.life-label text{fill:rgba(239,235,226,.76);font-family:-apple-system,BlinkMacSystemFont,"Pretendard","Noto Sans KR",sans-serif;font-size:14px;font-weight:760;letter-spacing:2.4px}.life-label .life-label-small{fill:rgba(239,235,226,.32);font-size:8.5px;font-weight:640;letter-spacing:1.7px}.life-label .life-label-name{fill:rgba(208,192,160,.7);font-size:20px;font-weight:520;letter-spacing:4px}
.life-orbit-footer{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-top:1.65rem;border-top:1px solid rgba(255,255,255,.075)}.life-orbit-footer p{display:grid;gap:.4rem;margin:0}.life-orbit-footer strong{color:rgba(245,241,233,.86);font-family:-apple-system,BlinkMacSystemFont,"Pretendard Variable","Pretendard","Noto Sans KR",sans-serif;font-size:clamp(1.15rem,1.65vw,1.55rem);font-weight:520;letter-spacing:-.02em}.life-orbit-footer span{color:rgba(239,235,226,.4);font-size:.7rem;line-height:1.7}.life-orbit-footer a{color:rgba(239,235,226,.6);text-decoration:none;font-size:.68rem;font-weight:650;transition:color .2s ease,transform .2s ease}.life-orbit-footer a:hover,.life-orbit-footer a:focus-visible{color:#fff;transform:translateY(-2px)}
@media(prefers-reduced-motion:no-preference){.life-route{animation:lifeConstellationRoute 8s linear infinite}.life-node{animation:lifeConstellationPulse 4.6s ease-in-out infinite}.life-node:nth-of-type(2n){animation-delay:-2.1s}.future-house{animation:futureHomeBreath 5.5s ease-in-out infinite}}
@keyframes lifeConstellationRoute{to{stroke-dashoffset:-72}}@keyframes lifeConstellationPulse{0%,100%{opacity:.66}50%{opacity:1}}@keyframes futureHomeBreath{0%,100%{opacity:.44}50%{opacity:.86}}
@media(max-width:760px){.dennis-life-orbit{min-height:auto}.life-orbit-shell{padding-top:5.2rem;padding-bottom:4.8rem}.life-orbit-header{display:grid;gap:.75rem;align-items:start}.life-orbit-header h2{text-align:left}.life-orbit-header h2>span{font-size:.59rem}.life-orbit-header h2>small{font-size:.55rem}.life-constellation-stage{min-height:auto;margin-top:.5rem}.life-map-desktop{display:none}.life-map-mobile{display:block}.life-label text{font-size:14px;letter-spacing:1.8px}.life-label .life-label-small{font-size:8.5px}.life-label .life-label-name{font-size:19px}.life-orbit-footer{display:grid;gap:1.35rem;align-items:start;margin-top:.4rem}.life-orbit-footer strong{font-size:1.18rem}.life-orbit-footer span{max-width:31ch;font-size:.66rem}.life-orbit-footer a{width:max-content}}




/* =========================================================
   GATHERING SENTENCE CONSTELLATION · v1.10.1
   Letters gather from Seoul · Sydney · Ho Chi Minh City ·
   SKALA Constellation Home · unnamed future homes.
   ========================================================= */
.life-phrase-field {
  position: absolute;
  z-index: 8;
  inset: 0;
  overflow: visible;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.2s ease;
}

.life-phrase-field.ready.positioned {
  opacity: 1;
}

.life-phrase-composition {
  position: absolute;
  left: 50%;
  top: 71%;
  display: grid;
  gap: .52rem;
  width: min(940px, 76%);
  transform: translate(-50%, -50%);
  text-align: center;
}

.life-phrase-line {
  display: flex;
  justify-content: center;
  white-space: nowrap;
}

.life-glyph {
  display: inline-block;
  color: rgba(246, 241, 231, .9);
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif;
  font-size: clamp(1.08rem, 1.62vw, 1.72rem);
  font-weight: 520;
  line-height: 1.18;
  letter-spacing: -.025em;
  text-shadow:
    0 0 16px rgba(228, 217, 195, .18),
    0 0 36px rgba(143, 168, 179, .08);
  opacity: 0;
  transform:
    translate3d(var(--scatter-start-x, 0), var(--scatter-start-y, 0), 0)
    rotate(var(--scatter-start-r, 0deg))
    scale(.48);
  filter: blur(2.4px);
  will-change: transform, opacity, filter;
  animation:
    lifeGlyphGather 26s cubic-bezier(.22, .72, .18, 1) infinite;
  animation-delay: var(--glyph-delay, 0ms);
  animation-play-state: paused;
}

.life-phrase-field.phrase-active .life-glyph {
  animation-play-state: running;
}

.life-phrase-accessible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

@keyframes lifeGlyphGather {
  0% {
    opacity: .025;
    transform:
      translate3d(var(--scatter-start-x), var(--scatter-start-y), 0)
      rotate(var(--scatter-start-r))
      scale(.42);
    filter: blur(3px);
  }
  8% {
    opacity: .12;
  }
  19% {
    opacity: .82;
    transform:
      translate3d(0, 0, 0)
      rotate(0deg)
      scale(1);
    filter: blur(0);
  }
  47% {
    opacity: .9;
    transform:
      translate3d(0, 0, 0)
      rotate(0deg)
      scale(1);
    filter: blur(0);
  }
  61% {
    opacity: .28;
  }
  72% {
    opacity: .045;
    transform:
      translate3d(var(--scatter-end-x), var(--scatter-end-y), 0)
      rotate(var(--scatter-end-r))
      scale(.46);
    filter: blur(2.7px);
  }
  100% {
    opacity: .025;
    transform:
      translate3d(var(--scatter-end-x), var(--scatter-end-y), 0)
      rotate(var(--scatter-end-r))
      scale(.42);
    filter: blur(3px);
  }
}

/* The renamed maker mark is a quiet signature, not a job title. */
.life-orbit-header h2 > span {
  color: rgba(239, 235, 226, .7);
}

.life-orbit-header h2 > small {
  color: rgba(208, 192, 160, .58);
  font-size: .61rem;
  font-weight: 620;
  letter-spacing: .17em;
}

@media (max-width: 760px) {
  .life-phrase-composition {
    top: 57%;
    gap: .42rem;
    width: 88%;
  }

  .life-glyph {
    font-size: clamp(.9rem, 3.65vw, 1.12rem);
    font-weight: 520;
    letter-spacing: -.035em;
  }

  .life-orbit-header h2 > span {
    font-size: .56rem;
  }

  .life-orbit-header h2 > small {
    font-size: .55rem;
  }
}

@media (max-width: 390px) {
  .life-phrase-composition {
    top: 56%;
    width: 92%;
  }

  .life-glyph {
    font-size: clamp(.82rem, 3.45vw, 1rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .life-phrase-field {
    opacity: 1;
  }

  .life-glyph {
    opacity: .76;
    transform: none !important;
    filter: none !important;
    animation: none !important;
  }
}




/* =========================================================
   RANDOM LIFE STARS · v1.10.2
   True random positions replace repeating CSS background tiles.
   ========================================================= */
.life-orbit-glow {
  z-index: 0;
}

.life-orbit-shell {
  z-index: 2;
}

@media (max-width: 760px) {
  .life-orbit-stars {
    opacity: .72;
  }
}

@media (prefers-reduced-motion: reduce) {
  .life-orbit-stars {
    opacity: .7;
  }
}


/* =========================================================
   SKALA LIBRARY · FIRST SHELF PREVIEW v1.10.3
   ========================================================= */
.first-shelf-preview a {
  display:grid;
  grid-template-columns:auto 1fr;
  gap:.75rem 1rem;
  min-height:170px;
  padding:1.25rem;
  border:1px solid rgba(240,226,203,.11);
  border-radius:22px;
  color:inherit;
  background:
    radial-gradient(circle at 88% 18%,rgba(198,163,111,.08),transparent 30%),
    rgba(255,255,255,.025);
  text-decoration:none;
  transition:transform .25s ease,border-color .25s ease,background .25s ease;
}
.first-shelf-preview a:hover,
.first-shelf-preview a:focus-visible {
  transform:translateY(-4px);
  border-color:rgba(198,163,111,.3);
  background:
    radial-gradient(circle at 88% 18%,rgba(198,163,111,.14),transparent 32%),
    rgba(255,255,255,.04);
}
.first-shelf-preview a>span{color:#c6a36f;font-size:.56rem;font-weight:850;letter-spacing:.12em}
.first-shelf-preview a div{display:grid;gap:.45rem}
.first-shelf-preview a small{color:rgba(244,239,230,.42);font-size:.5rem;letter-spacing:.12em}
.first-shelf-preview a strong{color:rgba(244,239,230,.82);font-size:.82rem;line-height:1.4}
.first-shelf-preview a em{grid-column:2;align-self:end;color:rgba(244,239,230,.42);font-size:.67rem;font-style:normal}


/* =========================================================
   DENNIS THOUGHTS · THREE LANGUAGE EDITIONS · v1.10.6
   ========================================================= */
.library-three-editions {
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.library-three-editions .library-door {
  grid-template-columns:1fr;
  align-content:start;
}

.library-three-editions .library-door strong {
  min-height:2.7em;
}

.library-three-editions .library-door span,
.library-three-editions .library-door em {
  justify-self:start;
}

.library-book-en {
  width:31%;
  left:37%;
  bottom:5%;
  transform:rotate(1.2deg);
  z-index:6;
}

.library-book-stage:hover .library-book-en {
  transform:translateY(-10px) rotate(.4deg);
  box-shadow:0 48px 90px rgba(0,0,0,.54);
}

.library-book-stage .library-book-ko {
  width:34%;
  left:8%;
  top:12%;
}

.library-book-stage .library-book-vi {
  width:31%;
  right:7%;
  bottom:12%;
}

@media(max-width:1120px) {
  .library-three-editions {
    grid-template-columns:1fr;
  }

  .library-three-editions .library-door strong {
    min-height:0;
  }
}

@media(max-width:700px) {
  .library-book-stage .library-book-ko {
    width:42%;
    left:4%;
    top:8%;
  }

  .library-book-stage .library-book-vi {
    width:38%;
    right:3%;
    bottom:9%;
  }

  .library-book-en {
    width:38%;
    left:31%;
    bottom:2%;
  }
}


/* =========================================================
   WARM SAJU · LIVING APP STAR · v1.10.7
   ========================================================= */
.warm-saju-card {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 14%,rgba(215,160,111,.13),transparent 28%),
    rgba(255,255,255,.035);
}

.warm-saju-card::after {
  content:"";
  position:absolute;
  width:180px;
  height:180px;
  right:-70px;
  bottom:-80px;
  border:1px solid rgba(215,160,111,.1);
  border-radius:50%;
  pointer-events:none;
}

.warm-saju-card-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:1rem;
}

.warm-saju-card-head .app-star {
  margin-bottom:4rem;
}

.warm-saju-status {
  padding:.45rem .62rem;
  border:1px solid rgba(215,160,111,.2);
  border-radius:999px;
  color:rgba(242,213,181,.72);
  background:rgba(215,160,111,.045);
  font-size:.52rem;
  font-weight:720;
  letter-spacing:.04em;
  white-space:nowrap;
}

.warm-saju-languages {
  display:flex;
  flex-wrap:wrap;
  gap:.38rem;
  margin-top:1.15rem;
}

.warm-saju-languages span {
  padding:.38rem .55rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:rgba(255,255,255,.58);
  font-size:.52rem;
}

html[lang="ko"] .warm-saju-card h3,
html[lang="ko"] .warm-saju-living-work h3,
html[lang="ko"] .warm-saju-mirror h4 {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif;
  letter-spacing:-.035em;
}

.warm-saju-living-work {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  gap:clamp(2rem,5vw,5rem);
  min-height:590px;
  margin-top:1rem;
  padding:clamp(2rem,5vw,5rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.095);
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 14% 12%,rgba(217,164,118,.12),transparent 30%),
    radial-gradient(circle at 88% 86%,rgba(119,136,135,.11),transparent 34%),
    linear-gradient(145deg,#141b20 0%,#0d151b 100%);
  box-shadow:0 34px 90px rgba(0,0,0,.18);
}

.warm-saju-living-work::before {
  content:"";
  position:absolute;
  inset:0;
  opacity:.24;
  pointer-events:none;
  background-image:
    radial-gradient(circle at 12% 16%,rgba(239,216,188,.62) 0 1px,transparent 1.5px),
    radial-gradient(circle at 48% 74%,rgba(215,160,111,.58) 0 1px,transparent 1.5px),
    radial-gradient(circle at 83% 28%,rgba(188,207,201,.55) 0 1px,transparent 1.5px);
  background-size:83px 91px,117px 109px,137px 127px;
}

.warm-saju-story-copy,
.warm-saju-quiet-flow {
  position:relative;
  z-index:3;
}

.warm-saju-story-copy {
  align-self:center;
}

.warm-saju-story-meta {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.65rem;
  color:rgba(255,255,255,.36);
  font-size:.48rem;
  font-weight:760;
  letter-spacing:.13em;
}

.warm-saju-story-meta span:first-child {
  color:rgba(223,177,133,.72);
}

.warm-saju-story-copy h3 {
  max-width:14ch;
  margin:1.2rem 0 1.2rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(2rem,4vw,4.15rem);
  font-weight:400;
  line-height:1.08;
  letter-spacing:-.04em;
}

.warm-saju-story-intro {
  max-width:660px;
  color:rgba(255,255,255,.58);
  font-size:.91rem;
  line-height:1.85;
}

.warm-saju-principles {
  display:flex;
  flex-wrap:wrap;
  gap:.5rem;
  margin-top:1.6rem;
}

.warm-saju-principles span {
  padding:.52rem .68rem;
  border:1px solid rgba(215,160,111,.18);
  border-radius:999px;
  color:rgba(244,216,188,.68);
  background:rgba(215,160,111,.035);
  font-size:.57rem;
  font-weight:680;
}

.warm-saju-main-link {
  display:inline-flex;
  margin-top:2rem;
  padding-bottom:.28rem;
  border-bottom:1px solid rgba(255,255,255,.26);
  color:rgba(255,255,255,.88);
  text-decoration:none;
  font-size:.76rem;
  font-weight:750;
  transition:transform .2s ease,border-color .2s ease,color .2s ease;
}

.warm-saju-main-link:hover,
.warm-saju-main-link:focus-visible {
  color:#fff;
  border-bottom-color:#fff;
  transform:translateX(3px);
}

.warm-saju-quiet-flow {
  display:grid;
  align-content:center;
  gap:1rem;
}

.warm-saju-flow-line {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center;
  gap:.5rem;
  padding:1.1rem;
  border:1px solid rgba(255,255,255,.075);
  border-radius:20px;
  background:rgba(255,255,255,.022);
}

.warm-saju-flow-line section {
  display:grid;
  gap:.28rem;
  min-width:0;
}

.warm-saju-flow-line small {
  color:rgba(215,160,111,.66);
  font-size:.46rem;
  font-weight:800;
}

.warm-saju-flow-line strong {
  color:rgba(255,255,255,.68);
  font-size:.61rem;
  font-weight:650;
  line-height:1.45;
}

.warm-saju-flow-line i {
  width:18px;
  height:1px;
  background:linear-gradient(90deg,rgba(215,160,111,.12),rgba(255,255,255,.2));
}

.warm-saju-mirror {
  display:grid;
  grid-template-columns:96px 1fr;
  gap:1.2rem;
  align-items:center;
  padding:1.4rem;
  border:1px solid rgba(255,255,255,.085);
  border-radius:22px;
  background:
    radial-gradient(circle at 12% 20%,rgba(215,160,111,.075),transparent 34%),
    rgba(255,255,255,.025);
}

.mirror-symbol {
  position:relative;
  width:84px;
  height:104px;
  display:grid;
  place-items:center;
  border:1px solid rgba(215,160,111,.28);
  border-radius:46% 46% 42% 42%;
  box-shadow:
    inset 0 0 35px rgba(215,160,111,.05),
    0 0 36px rgba(215,160,111,.06);
}

.mirror-symbol::before,
.mirror-symbol::after {
  content:"";
  position:absolute;
  border-radius:50%;
}

.mirror-symbol::before {
  width:8px;
  height:8px;
  top:26px;
  left:25px;
  background:rgba(239,210,181,.72);
  box-shadow:
    26px 14px 0 rgba(194,214,207,.5),
    10px 43px 0 rgba(215,160,111,.42);
}

.mirror-symbol::after {
  width:42px;
  height:1px;
  background:rgba(255,255,255,.12);
  transform:rotate(-28deg);
}

.mirror-symbol span {
  position:absolute;
  bottom:-10px;
  width:42px;
  height:10px;
  border-bottom:1px solid rgba(215,160,111,.24);
  border-radius:50%;
}

.warm-saju-mirror small {
  color:rgba(215,160,111,.7);
  font-size:.47rem;
  font-weight:780;
  letter-spacing:.13em;
}

.warm-saju-mirror h4 {
  margin:.38rem 0 .55rem;
  font-family:Georgia,"Times New Roman",serif;
  font-size:1.45rem;
  font-weight:400;
}

.warm-saju-mirror p {
  margin:0;
  color:rgba(255,255,255,.5);
  font-size:.76rem;
  line-height:1.75;
}

.warm-saju-boundary {
  margin:0;
  padding:0 .2rem;
  color:rgba(255,255,255,.3);
  font-size:.58rem;
  line-height:1.7;
}

.warm-saju-glow-field {
  position:absolute;
  inset:0;
  pointer-events:none;
}

.warm-orbit {
  position:absolute;
  border:1px solid rgba(215,160,111,.065);
  border-radius:50%;
}

.orbit-one {
  width:470px;
  height:190px;
  left:-140px;
  top:30px;
  transform:rotate(-13deg);
}

.orbit-two {
  width:570px;
  height:250px;
  right:-170px;
  bottom:-50px;
  border-color:rgba(174,198,191,.055);
  transform:rotate(19deg);
}

.warm-light {
  position:absolute;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:rgba(255,255,255,.56);
  font-size:.45rem;
  box-shadow:0 0 24px currentColor;
  animation:warmSajuBreathe 6.5s ease-in-out infinite;
}

.light-main {
  width:28px;
  height:28px;
  left:47%;
  top:12%;
  color:rgba(228,178,130,.7);
  font-size:.85rem;
}

.light-ko {
  width:20px;
  height:20px;
  right:18%;
  top:17%;
  color:rgba(229,191,151,.55);
  animation-delay:-1.5s;
}

.light-en {
  width:18px;
  height:18px;
  right:7%;
  bottom:16%;
  color:rgba(176,199,191,.48);
  animation-delay:-3s;
}

.light-vi {
  width:17px;
  height:17px;
  left:34%;
  bottom:9%;
  color:rgba(213,147,131,.46);
  animation-delay:-4.5s;
}

@keyframes warmSajuBreathe {
  0%,100% { opacity:.34; transform:scale(.92); }
  50% { opacity:.82; transform:scale(1.08); }
}

@media(max-width:1000px) {
  .warm-saju-living-work {
    grid-template-columns:1fr;
    min-height:0;
  }

  .warm-saju-story-copy h3 {
    max-width:18ch;
  }
}

@media(max-width:720px) {
  .warm-saju-card-head .app-star {
    margin-bottom:3rem;
  }

  .warm-saju-status {
    max-width:150px;
    white-space:normal;
    text-align:right;
  }

  .warm-saju-living-work {
    padding:2rem 1.15rem;
  }

  .warm-saju-story-copy h3 {
    max-width:14ch;
    font-size:clamp(2rem,10vw,3rem);
  }

  .warm-saju-flow-line {
    grid-template-columns:1fr;
  }

  .warm-saju-flow-line i {
    width:1px;
    height:12px;
    margin-left:.2rem;
    background:linear-gradient(180deg,rgba(215,160,111,.12),rgba(255,255,255,.18));
  }

  .warm-saju-mirror {
    grid-template-columns:68px 1fr;
    padding:1rem;
  }

  .mirror-symbol {
    width:62px;
    height:78px;
  }

  .mirror-symbol::before {
    top:19px;
    left:18px;
    box-shadow:
      18px 11px 0 rgba(194,214,207,.5),
      8px 31px 0 rgba(215,160,111,.42);
  }

  .mirror-symbol::after {
    width:31px;
  }

  .light-main {
    left:auto;
    right:13%;
    top:6%;
  }
}

@media(prefers-reduced-motion:reduce) {
  .warm-light {
    animation:none;
  }
}


/* =========================================================
   WARM SAJU · PRIVATE TEST / PUBLIC STORY · v1.10.8
   ========================================================= */

/* English and Korean titles are separated by the global Home language. */
.warm-saju-card h3 {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif;
  font-weight:620;
  letter-spacing:-.035em;
}

.warm-saju-private-note {
  position:relative;
  z-index:2;
  margin:1.4rem 0 0;
  padding-top:.9rem;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.38)!important;
  font-size:.58rem;
  line-height:1.65;
}

.warm-saju-living-work {
  grid-template-columns:minmax(0,.95fr) minmax(280px,.58fr);
  grid-template-areas:
    "story device"
    "flow flow";
  align-items:center;
}

.warm-saju-story-copy {
  grid-area:story;
}

.warm-saju-device-scene {
  grid-area:device;
  position:relative;
  z-index:4;
  display:grid;
  justify-items:center;
  align-self:center;
  min-width:0;
  margin:0;
  padding:1.1rem 0 0;
}

.warm-saju-device-orbit {
  position:absolute;
  z-index:0;
  width:390px;
  height:210px;
  left:50%;
  top:44%;
  border:1px solid rgba(219,176,132,.14);
  border-radius:50%;
  transform:translate(-50%,-50%) rotate(-17deg);
}

.warm-saju-device-orbit::before,
.warm-saju-device-orbit::after {
  content:"";
  position:absolute;
  border-radius:50%;
  background:#d8b27d;
  box-shadow:0 0 18px rgba(216,178,125,.48);
}

.warm-saju-device-orbit::before {
  width:7px;
  height:7px;
  left:20%;
  top:14%;
}

.warm-saju-device-orbit::after {
  width:5px;
  height:5px;
  right:15%;
  bottom:18%;
  background:#91aaa2;
  box-shadow:0 0 16px rgba(145,170,162,.42);
}

.warm-saju-phone-shell {
  position:relative;
  z-index:2;
  width:min(100%,330px);
  padding:9px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:36px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.035)),
    #111a20;
  box-shadow:
    0 42px 84px rgba(0,0,0,.42),
    0 0 50px rgba(214,164,116,.07),
    inset 0 1px 0 rgba(255,255,255,.18);
  transform:rotate(1.25deg);
  transition:transform .45s ease,box-shadow .45s ease;
}

.warm-saju-living-work:hover .warm-saju-phone-shell {
  transform:translateY(-7px) rotate(.35deg);
  box-shadow:
    0 50px 94px rgba(0,0,0,.5),
    0 0 62px rgba(214,164,116,.1),
    inset 0 1px 0 rgba(255,255,255,.2);
}

.warm-saju-phone-shell img {
  display:block;
  width:100%;
  height:auto;
  border-radius:28px;
}

.warm-saju-phone-top {
  position:absolute;
  z-index:4;
  left:50%;
  top:13px;
  width:68px;
  height:18px;
  border-radius:999px;
  background:rgba(12,18,22,.88);
  transform:translateX(-50%);
  box-shadow:0 1px 0 rgba(255,255,255,.05);
}

.warm-saju-phone-top span {
  position:absolute;
  right:9px;
  top:6px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(98,124,119,.8);
}

.warm-saju-device-scene figcaption {
  position:relative;
  z-index:2;
  margin-top:1rem;
  color:rgba(255,255,255,.34);
  font-size:.53rem;
  font-weight:620;
  letter-spacing:.04em;
  text-align:center;
}

.warm-saju-quiet-flow {
  grid-area:flow;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:1rem;
  align-items:stretch;
  margin-top:.8rem;
}

.warm-saju-flow-line {
  min-height:100%;
}

.warm-saju-mirror {
  min-height:100%;
}

.warm-saju-boundary {
  grid-column:1 / -1;
}

/* Home page Korean must never inherit the app's old-book serif. */
html[lang="ko"] .warm-saju-card h3,
html[lang="ko"] .warm-saju-story-copy h3,
html[lang="ko"] .warm-saju-mirror h4 {
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif!important;
  font-weight:600;
  letter-spacing:-.04em;
}

@media(max-width:1080px) {
  .warm-saju-living-work {
    grid-template-columns:minmax(0,1fr) minmax(260px,.5fr);
  }

  .warm-saju-phone-shell {
    width:min(100%,285px);
  }

  .warm-saju-quiet-flow {
    grid-template-columns:1fr;
  }

  .warm-saju-boundary {
    grid-column:auto;
  }
}

@media(max-width:820px) {
  .warm-saju-living-work {
    grid-template-columns:1fr;
    grid-template-areas:
      "story"
      "device"
      "flow";
  }

  .warm-saju-device-scene {
    padding:1.4rem 0 1rem;
  }

  .warm-saju-phone-shell {
    width:min(82vw,340px);
    transform:none;
  }

  .warm-saju-living-work:hover .warm-saju-phone-shell {
    transform:translateY(-5px);
  }

  .warm-saju-device-orbit {
    width:min(92vw,430px);
  }
}

@media(max-width:520px) {
  .warm-saju-phone-shell {
    width:min(84vw,315px);
    padding:7px;
    border-radius:32px;
  }

  .warm-saju-phone-shell img {
    border-radius:25px;
  }

  .warm-saju-phone-top {
    top:11px;
  }

  .warm-saju-languages span {
    font-size:.5rem;
  }
}

@media(prefers-reduced-motion:reduce) {
  .warm-saju-phone-shell,
  .warm-saju-living-work:hover .warm-saju-phone-shell {
    transform:none;
    transition:none;
  }
}


/* =========================================================
   SAYSURE PUBLIC · LIVING PRACTICAL LANGUAGE STAR · v1.10.9
   ========================================================= */
.saysure-card {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 88% 12%,rgba(118,165,128,.12),transparent 29%),
    radial-gradient(circle at 8% 92%,rgba(227,156,118,.07),transparent 32%),
    rgba(255,255,255,.035);
}

.saysure-card::after {
  content:"";
  position:absolute;
  width:190px;
  height:190px;
  right:-74px;
  bottom:-88px;
  border:1px solid rgba(141,182,150,.1);
  border-radius:50%;
  pointer-events:none;
}

.saysure-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.saysure-card-head .app-star {
  margin-bottom:4rem;
}

.saysure-status {
  position:relative;
  z-index:2;
  padding:.45rem .62rem;
  border:1px solid rgba(142,181,151,.22);
  border-radius:999px;
  color:rgba(184,220,193,.74);
  background:rgba(115,161,126,.045);
  font-size:.52rem;
  font-weight:720;
  letter-spacing:.035em;
  white-space:nowrap;
}

.saysure-feature-tags {
  display:flex;
  flex-wrap:wrap;
  gap:.38rem;
  margin-top:1.1rem;
}

.saysure-feature-tags span {
  padding:.38rem .55rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:rgba(255,255,255,.55);
  font-size:.51rem;
}

.saysure-release-note {
  position:relative;
  z-index:2;
  margin:1.35rem 0 0;
  padding-top:.88rem;
  border-top:1px solid rgba(255,255,255,.085);
  color:rgba(255,255,255,.36)!important;
  font-size:.57rem;
  line-height:1.65;
}

.saysure-living-work {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.88fr) minmax(340px,.78fr);
  grid-template-areas:
    "copy devices"
    "flow flow"
    "boundary boundary";
  gap:clamp(1.8rem,4.5vw,4.5rem);
  min-height:650px;
  margin-top:1rem;
  padding:clamp(2rem,5vw,5rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.095);
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 12% 13%,rgba(232,174,137,.1),transparent 31%),
    radial-gradient(circle at 86% 82%,rgba(113,158,124,.11),transparent 34%),
    linear-gradient(145deg,#151b1d,#0c1519 100%);
  box-shadow:0 34px 90px rgba(0,0,0,.18);
}

.saysure-story-copy {
  position:relative;
  z-index:4;
  grid-area:copy;
  align-self:center;
}

.saysure-story-meta {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.65rem;
  color:rgba(255,255,255,.34);
  font-size:.47rem;
  font-weight:760;
  letter-spacing:.12em;
}

.saysure-story-meta span:first-child {
  color:rgba(153,196,163,.72);
}

.saysure-story-copy h3 {
  max-width:14ch;
  margin:1.2rem 0;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif;
  font-size:clamp(2rem,4vw,4rem);
  font-weight:590;
  line-height:1.08;
  letter-spacing:-.047em;
  word-break:keep-all;
}

.saysure-story-intro {
  max-width:650px;
  color:rgba(255,255,255,.57);
  font-size:.9rem;
  line-height:1.85;
}

.saysure-story-principles {
  display:flex;
  flex-wrap:wrap;
  gap:.48rem;
  margin-top:1.55rem;
}

.saysure-story-principles span {
  padding:.52rem .67rem;
  border:1px solid rgba(146,185,155,.18);
  border-radius:999px;
  color:rgba(195,223,201,.66);
  background:rgba(112,158,123,.035);
  font-size:.56rem;
  font-weight:680;
}

.saysure-appstore-door {
  width:max-content;
  margin:2rem 0 0;
  padding:.72rem .88rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:rgba(255,255,255,.4);
  background:rgba(255,255,255,.018);
  font-size:.5rem;
  font-weight:760;
  letter-spacing:.1em;
}

.saysure-device-stage {
  position:relative;
  z-index:4;
  grid-area:devices;
  min-height:500px;
  margin:0;
}

.saysure-phone {
  position:absolute;
  overflow:hidden;
  padding:8px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:35px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.14),rgba(255,255,255,.035)),
    #10181c;
  box-shadow:
    0 42px 84px rgba(0,0,0,.43),
    inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .45s ease,box-shadow .45s ease;
}

.saysure-phone img {
  display:block;
  width:100%;
  height:auto;
  border-radius:27px;
}

.saysure-phone-home {
  z-index:3;
  width:min(68%,285px);
  left:0;
  top:18px;
  transform:rotate(-4deg);
}

.saysure-phone-situations {
  z-index:2;
  width:min(67%,278px);
  right:0;
  top:82px;
  transform:rotate(4deg);
}

.saysure-living-work:hover .saysure-phone-home {
  transform:translateY(-7px) rotate(-2.4deg);
}

.saysure-living-work:hover .saysure-phone-situations {
  transform:translateY(-5px) rotate(2.4deg);
}

.saysure-phone-sensor {
  position:absolute;
  z-index:5;
  top:12px;
  left:50%;
  width:66px;
  height:17px;
  border-radius:999px;
  background:rgba(13,18,21,.9);
  transform:translateX(-50%);
}

.saysure-phone-sensor span {
  position:absolute;
  right:9px;
  top:6px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(85,116,104,.8);
}

.saysure-device-stage figcaption {
  position:absolute;
  left:50%;
  bottom:0;
  width:100%;
  color:rgba(255,255,255,.33);
  font-size:.52rem;
  font-weight:620;
  letter-spacing:.035em;
  text-align:center;
  transform:translateX(-50%);
}

.saysure-practical-flow {
  position:relative;
  z-index:4;
  grid-area:flow;
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  gap:.55rem;
  align-items:center;
  padding:1.15rem;
  border:1px solid rgba(255,255,255,.075);
  border-radius:21px;
  background:rgba(255,255,255,.021);
}

.saysure-practical-flow section {
  display:grid;
  gap:.28rem;
}

.saysure-practical-flow small {
  color:rgba(151,196,161,.68);
  font-size:.46rem;
  font-weight:800;
}

.saysure-practical-flow strong {
  color:rgba(255,255,255,.68);
  font-size:.61rem;
  font-weight:650;
  line-height:1.45;
}

.saysure-practical-flow i {
  width:18px;
  height:1px;
  background:linear-gradient(90deg,rgba(137,180,147,.12),rgba(255,255,255,.2));
}

.saysure-project-boundary {
  position:relative;
  z-index:4;
  grid-area:boundary;
  margin:0;
  color:rgba(255,255,255,.29);
  font-size:.58rem;
  line-height:1.7;
}

.saysure-orbit-field {
  position:absolute;
  inset:0;
  pointer-events:none;
}

.saysure-orbit {
  position:absolute;
  border:1px solid rgba(146,187,155,.06);
  border-radius:50%;
}

.saysure-orbit-one {
  width:520px;
  height:210px;
  left:-170px;
  top:42px;
  transform:rotate(-14deg);
}

.saysure-orbit-two {
  width:590px;
  height:250px;
  right:-185px;
  bottom:-70px;
  border-color:rgba(228,167,131,.055);
  transform:rotate(18deg);
}

.saysure-orbit-light {
  position:absolute;
  color:rgba(155,201,165,.58);
  text-shadow:0 0 20px currentColor;
  animation:saysureLightBreathe 7s ease-in-out infinite;
}

.saysure-light-one {
  left:48%;
  top:8%;
  font-size:.9rem;
}

.saysure-light-two {
  right:9%;
  top:21%;
  color:rgba(225,170,134,.48);
  animation-delay:-2.2s;
}

.saysure-light-three {
  left:31%;
  bottom:10%;
  color:rgba(151,182,179,.45);
  animation-delay:-4.3s;
}

@keyframes saysureLightBreathe {
  0%,100% { opacity:.3; transform:scale(.92); }
  50% { opacity:.82; transform:scale(1.08); }
}

@media(max-width:1050px) {
  .saysure-living-work {
    grid-template-columns:minmax(0,1fr) minmax(300px,.66fr);
  }

  .saysure-device-stage {
    min-height:455px;
  }
}

@media(max-width:820px) {
  .saysure-living-work {
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "devices"
      "flow"
      "boundary";
  }

  .saysure-story-copy h3 {
    max-width:15ch;
  }

  .saysure-device-stage {
    width:min(100%,600px);
    min-height:560px;
    justify-self:center;
  }

  .saysure-phone-home {
    width:min(58%,310px);
    left:6%;
  }

  .saysure-phone-situations {
    width:min(57%,304px);
    right:6%;
  }
}

@media(max-width:600px) {
  .saysure-card-head .app-star {
    margin-bottom:3rem;
  }

  .saysure-status {
    max-width:142px;
    white-space:normal;
    text-align:right;
  }

  .saysure-living-work {
    padding:2rem 1.15rem;
  }

  .saysure-story-copy h3 {
    font-size:clamp(2rem,10vw,2.9rem);
  }

  .saysure-device-stage {
    min-height:455px;
  }

  .saysure-phone {
    padding:6px;
    border-radius:29px;
  }

  .saysure-phone img {
    border-radius:23px;
  }

  .saysure-phone-home {
    width:58%;
    left:0;
  }

  .saysure-phone-situations {
    width:57%;
    right:0;
    top:68px;
  }

  .saysure-phone-sensor {
    top:10px;
    width:54px;
    height:14px;
  }

  .saysure-phone-sensor span {
    top:5px;
  }

  .saysure-practical-flow {
    grid-template-columns:1fr;
  }

  .saysure-practical-flow i {
    width:1px;
    height:12px;
    margin-left:.2rem;
    background:linear-gradient(180deg,rgba(137,180,147,.12),rgba(255,255,255,.18));
  }
}

@media(prefers-reduced-motion:reduce) {
  .saysure-phone,
  .saysure-living-work:hover .saysure-phone-home,
  .saysure-living-work:hover .saysure-phone-situations {
    transform:none;
    transition:none;
  }

  .saysure-orbit-light {
    animation:none;
  }
}


/* =========================================================
   SAYBRIDGE · MEANING & RELATIONSHIP PROTECTION · v1.10.10
   ========================================================= */
.saybridge-card {
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 86% 14%,rgba(213,140,124,.13),transparent 29%),
    radial-gradient(circle at 8% 92%,rgba(125,150,164,.065),transparent 32%),
    rgba(255,255,255,.035);
}

.saybridge-card::after {
  content:"";
  position:absolute;
  width:188px;
  height:188px;
  right:-74px;
  bottom:-86px;
  border:1px solid rgba(213,140,124,.11);
  border-radius:50%;
  pointer-events:none;
}

.saybridge-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
}

.saybridge-card-head .app-star {
  margin-bottom:4rem;
}

.saybridge-status {
  position:relative;
  z-index:2;
  padding:.45rem .62rem;
  border:1px solid rgba(213,140,124,.23);
  border-radius:999px;
  color:rgba(239,183,171,.77);
  background:rgba(213,140,124,.045);
  font-size:.52rem;
  font-weight:720;
  letter-spacing:.035em;
  white-space:nowrap;
}

.saybridge-languages {
  display:flex;
  flex-wrap:wrap;
  gap:.38rem;
  margin-top:1.1rem;
}

.saybridge-languages span {
  padding:.38rem .55rem;
  border:1px solid rgba(255,255,255,.09);
  border-radius:999px;
  color:rgba(255,255,255,.55);
  font-size:.51rem;
}

.saybridge-private-note {
  position:relative;
  z-index:2;
  margin:1.35rem 0 0;
  padding-top:.88rem;
  border-top:1px solid rgba(255,255,255,.085);
  color:rgba(255,255,255,.36)!important;
  font-size:.57rem;
  line-height:1.65;
}

.saybridge-living-work {
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(340px,.82fr);
  grid-template-areas:
    "copy map"
    "discovery discovery"
    "boundary boundary";
  gap:clamp(1.8rem,4.5vw,4.5rem);
  min-height:650px;
  margin-top:1rem;
  padding:clamp(2rem,5vw,5rem);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.095);
  border-radius:var(--radius);
  background:
    radial-gradient(circle at 13% 12%,rgba(213,140,124,.11),transparent 31%),
    radial-gradient(circle at 87% 83%,rgba(118,145,159,.09),transparent 35%),
    linear-gradient(145deg,#17191f,#0d141a 100%);
  box-shadow:0 34px 90px rgba(0,0,0,.18);
}

.saybridge-story-copy,
.saybridge-meaning-map,
.saybridge-discovery,
.saybridge-boundary {
  position:relative;
  z-index:4;
}

.saybridge-story-copy {
  grid-area:copy;
  align-self:center;
}

.saybridge-story-meta {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:.65rem;
  color:rgba(255,255,255,.34);
  font-size:.47rem;
  font-weight:760;
  letter-spacing:.12em;
}

.saybridge-story-meta span:first-child {
  color:rgba(226,154,139,.76);
}

.saybridge-story-copy h3 {
  max-width:14ch;
  margin:1.2rem 0;
  font-family:
    -apple-system,
    BlinkMacSystemFont,
    "Pretendard Variable",
    "Pretendard",
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    sans-serif;
  font-size:clamp(2rem,4vw,3.85rem);
  font-weight:590;
  line-height:1.09;
  letter-spacing:-.047em;
  word-break:keep-all;
}

.saybridge-story-intro {
  max-width:650px;
  color:rgba(255,255,255,.57);
  font-size:.9rem;
  line-height:1.85;
}

.saybridge-principles {
  display:flex;
  flex-wrap:wrap;
  gap:.48rem;
  margin-top:1.55rem;
}

.saybridge-principles span {
  padding:.52rem .67rem;
  border:1px solid rgba(213,140,124,.19);
  border-radius:999px;
  color:rgba(239,190,178,.69);
  background:rgba(213,140,124,.035);
  font-size:.56rem;
  font-weight:680;
}

.saybridge-meaning-map {
  grid-area:map;
  display:grid;
  gap:1rem;
  align-content:center;
  padding:1.25rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:24px;
  background:
    radial-gradient(circle at 82% 15%,rgba(213,140,124,.07),transparent 29%),
    rgba(255,255,255,.022);
}

.saybridge-meaning-map header {
  display:grid;
  gap:.36rem;
}

.saybridge-meaning-map header small,
.saybridge-quiet-check small,
.saybridge-discovery small {
  color:rgba(224,154,140,.72);
  font-size:.46rem;
  font-weight:790;
  letter-spacing:.12em;
}

.saybridge-meaning-map header strong {
  color:rgba(255,255,255,.77);
  font-size:.92rem;
  font-weight:650;
  line-height:1.5;
}

.saybridge-meaning-nodes {
  display:grid;
  grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;
  align-items:center;
  gap:.4rem;
}

.saybridge-meaning-nodes section {
  display:grid;
  gap:.28rem;
  min-width:0;
}

.saybridge-meaning-nodes section>span {
  color:rgba(224,154,140,.65);
  font-size:.43rem;
  font-weight:820;
}

.saybridge-meaning-nodes strong {
  color:rgba(255,255,255,.67);
  font-size:.62rem;
  line-height:1.4;
}

.saybridge-meaning-nodes p {
  margin:0;
  color:rgba(255,255,255,.35);
  font-size:.52rem;
  line-height:1.55;
}

.saybridge-meaning-nodes i {
  width:15px;
  height:1px;
  background:linear-gradient(90deg,rgba(213,140,124,.12),rgba(255,255,255,.17));
}

.saybridge-quiet-check {
  display:grid;
  grid-template-columns:78px 1fr;
  gap:1rem;
  align-items:center;
  padding:1rem;
  border:1px solid rgba(255,255,255,.075);
  border-radius:19px;
  background:rgba(255,255,255,.018);
}

.quiet-check-symbol {
  position:relative;
  width:68px;
  height:68px;
  border:1px solid rgba(213,140,124,.25);
  border-radius:50%;
  box-shadow:
    inset 0 0 28px rgba(213,140,124,.04),
    0 0 28px rgba(213,140,124,.05);
}

.quiet-check-symbol::before {
  content:"";
  position:absolute;
  left:15px;
  right:15px;
  top:33px;
  height:1px;
  background:rgba(255,255,255,.12);
}

.quiet-check-symbol span {
  position:absolute;
  top:27px;
  width:12px;
  height:12px;
  border:1px solid rgba(255,255,255,.35);
  border-radius:50%;
  background:#151a20;
}

.quiet-check-symbol span:first-child {
  left:10px;
}

.quiet-check-symbol span:last-child {
  right:10px;
  border-color:rgba(213,140,124,.55);
  box-shadow:0 0 12px rgba(213,140,124,.2);
}

.saybridge-quiet-check h4 {
  margin:.35rem 0 .45rem;
  color:rgba(255,255,255,.78);
  font-size:1rem;
  font-weight:630;
  line-height:1.4;
}

.saybridge-quiet-check p {
  margin:0;
  color:rgba(255,255,255,.42);
  font-size:.68rem;
  line-height:1.72;
}

.saybridge-discovery {
  grid-area:discovery;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  gap:1rem;
}

.saybridge-discovery>div {
  padding:1.35rem;
  border:1px solid rgba(255,255,255,.075);
  border-radius:22px;
  background:rgba(255,255,255,.02);
}

.saybridge-discovery h4 {
  max-width:24ch;
  margin:.55rem 0 .72rem;
  color:rgba(255,255,255,.8);
  font-size:clamp(1.2rem,2vw,1.75rem);
  font-weight:610;
  line-height:1.35;
  letter-spacing:-.025em;
}

.saybridge-discovery p {
  margin:0;
  color:rgba(255,255,255,.45);
  font-size:.74rem;
  line-height:1.78;
}

.saybridge-change-example {
  background:
    radial-gradient(circle at 90% 8%,rgba(213,140,124,.07),transparent 30%),
    rgba(255,255,255,.02)!important;
}

.saybridge-change-example blockquote {
  margin:.55rem 0 .75rem;
  padding-left:1rem;
  border-left:1px solid rgba(213,140,124,.42);
  color:rgba(255,255,255,.7);
  font-size:.87rem;
  line-height:1.75;
}

.saybridge-boundary {
  grid-area:boundary;
  margin:0;
  color:rgba(255,255,255,.29);
  font-size:.58rem;
  line-height:1.7;
}

.saybridge-orbit-field {
  position:absolute;
  inset:0;
  pointer-events:none;
}

.saybridge-orbit {
  position:absolute;
  border:1px solid rgba(213,140,124,.06);
  border-radius:50%;
}

.bridge-orbit-one {
  width:520px;
  height:210px;
  left:-165px;
  top:44px;
  transform:rotate(-14deg);
}

.bridge-orbit-two {
  width:590px;
  height:255px;
  right:-180px;
  bottom:-70px;
  border-color:rgba(116,146,162,.055);
  transform:rotate(18deg);
}

.saybridge-light {
  position:absolute;
  color:rgba(225,152,137,.58);
  text-shadow:0 0 20px currentColor;
  animation:saybridgeLightBreathe 7.2s ease-in-out infinite;
}

.bridge-light-one {
  left:48%;
  top:8%;
  font-size:.9rem;
}

.bridge-light-two {
  right:10%;
  top:22%;
  color:rgba(145,173,185,.46);
  animation-delay:-2.4s;
}

.bridge-light-three {
  left:30%;
  bottom:9%;
  color:rgba(218,177,151,.43);
  animation-delay:-4.5s;
}

@keyframes saybridgeLightBreathe {
  0%,100% { opacity:.3; transform:scale(.92); }
  50% { opacity:.82; transform:scale(1.08); }
}

@media(max-width:1050px) {
  .saybridge-living-work {
    grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);
  }

  .saybridge-meaning-nodes {
    grid-template-columns:1fr 1fr;
    gap:.7rem;
  }

  .saybridge-meaning-nodes i {
    display:none;
  }
}

@media(max-width:820px) {
  .saybridge-living-work {
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "map"
      "discovery"
      "boundary";
  }

  .saybridge-story-copy h3 {
    max-width:15ch;
  }

  .saybridge-discovery {
    grid-template-columns:1fr;
  }
}

@media(max-width:600px) {
  .saybridge-card-head .app-star {
    margin-bottom:3rem;
  }

  .saybridge-status {
    max-width:142px;
    white-space:normal;
    text-align:right;
  }

  .saybridge-living-work {
    padding:2rem 1.15rem;
  }

  .saybridge-story-copy h3 {
    font-size:clamp(2rem,10vw,2.9rem);
  }

  .saybridge-meaning-nodes {
    grid-template-columns:1fr;
  }

  .saybridge-quiet-check {
    grid-template-columns:58px 1fr;
    padding:.9rem;
  }

  .quiet-check-symbol {
    width:52px;
    height:52px;
  }

  .quiet-check-symbol::before {
    left:11px;
    right:11px;
    top:25px;
  }

  .quiet-check-symbol span {
    top:20px;
    width:10px;
    height:10px;
  }

  .quiet-check-symbol span:first-child {
    left:7px;
  }

  .quiet-check-symbol span:last-child {
    right:7px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .saybridge-light {
    animation:none;
  }
}


/* =========================================================
   SAYBRIDGE · REAL HOME SCREENS · v1.10.11
   ========================================================= */
.saybridge-living-work {
  grid-template-columns:minmax(0,.82fr) minmax(350px,.72fr);
  grid-template-areas:
    "copy devices"
    "map map"
    "discovery discovery"
    "boundary boundary";
}

.saybridge-device-stage {
  position:relative;
  z-index:4;
  grid-area:devices;
  min-height:540px;
  margin:0;
  align-self:center;
}

.saybridge-phone {
  position:absolute;
  overflow:hidden;
  padding:8px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:36px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.13),rgba(255,255,255,.035)),
    #11181e;
  box-shadow:
    0 42px 88px rgba(0,0,0,.44),
    inset 0 1px 0 rgba(255,255,255,.18);
  transition:transform .45s ease,box-shadow .45s ease;
}

.saybridge-phone img {
  display:block;
  width:100%;
  height:auto;
  border-radius:28px;
}

.saybridge-phone-en {
  z-index:3;
  width:min(68%,300px);
  left:0;
  top:10px;
  transform:rotate(-4deg);
}

.saybridge-phone-vi {
  z-index:2;
  width:min(66%,290px);
  right:0;
  top:80px;
  transform:rotate(4deg);
}

.saybridge-living-work:hover .saybridge-phone-en {
  transform:translateY(-7px) rotate(-2.2deg);
  box-shadow:
    0 50px 96px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.2);
}

.saybridge-living-work:hover .saybridge-phone-vi {
  transform:translateY(-5px) rotate(2.2deg);
  box-shadow:
    0 48px 92px rgba(0,0,0,.48),
    inset 0 1px 0 rgba(255,255,255,.2);
}

.saybridge-phone-sensor {
  position:absolute;
  z-index:5;
  left:50%;
  top:12px;
  width:68px;
  height:18px;
  border-radius:999px;
  background:rgba(13,18,22,.9);
  transform:translateX(-50%);
}

.saybridge-phone-sensor span {
  position:absolute;
  right:9px;
  top:6px;
  width:5px;
  height:5px;
  border-radius:50%;
  background:rgba(115,98,87,.82);
}

.saybridge-device-stage figcaption {
  position:absolute;
  left:50%;
  bottom:0;
  width:100%;
  color:rgba(255,255,255,.33);
  font-size:.52rem;
  font-weight:620;
  letter-spacing:.035em;
  text-align:center;
  transform:translateX(-50%);
}

.saybridge-device-orbit {
  position:absolute;
  z-index:0;
  width:440px;
  height:220px;
  left:50%;
  top:47%;
  border:1px solid rgba(213,140,124,.12);
  border-radius:50%;
  transform:translate(-50%,-50%) rotate(-15deg);
}

.saybridge-device-orbit::before,
.saybridge-device-orbit::after {
  content:"";
  position:absolute;
  border-radius:50%;
  box-shadow:0 0 16px currentColor;
}

.saybridge-device-orbit::before {
  width:7px;
  height:7px;
  left:18%;
  top:14%;
  color:rgba(227,157,143,.55);
  background:currentColor;
}

.saybridge-device-orbit::after {
  width:5px;
  height:5px;
  right:15%;
  bottom:18%;
  color:rgba(144,171,184,.45);
  background:currentColor;
}

.saybridge-meaning-map {
  grid-area:map;
}

@media(max-width:1080px) {
  .saybridge-living-work {
    grid-template-columns:minmax(0,1fr) minmax(310px,.66fr);
  }

  .saybridge-device-stage {
    min-height:500px;
  }

  .saybridge-phone-en {
    width:min(67%,275px);
  }

  .saybridge-phone-vi {
    width:min(65%,266px);
  }
}

@media(max-width:820px) {
  .saybridge-living-work {
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "devices"
      "map"
      "discovery"
      "boundary";
  }

  .saybridge-device-stage {
    width:min(100%,620px);
    min-height:590px;
    justify-self:center;
  }

  .saybridge-phone-en {
    width:min(58%,315px);
    left:6%;
  }

  .saybridge-phone-vi {
    width:min(57%,306px);
    right:6%;
  }
}

@media(max-width:600px) {
  .saybridge-device-stage {
    min-height:470px;
  }

  .saybridge-phone {
    padding:6px;
    border-radius:30px;
  }

  .saybridge-phone img {
    border-radius:24px;
  }

  .saybridge-phone-en {
    width:59%;
    left:0;
  }

  .saybridge-phone-vi {
    width:58%;
    right:0;
    top:68px;
  }

  .saybridge-phone-sensor {
    top:10px;
    width:54px;
    height:14px;
  }

  .saybridge-phone-sensor span {
    top:5px;
  }

  .saybridge-device-orbit {
    width:min(92vw,430px);
  }
}

@media(prefers-reduced-motion:reduce) {
  .saybridge-phone,
  .saybridge-living-work:hover .saybridge-phone-en,
  .saybridge-living-work:hover .saybridge-phone-vi {
    transform:none;
    transition:none;
  }
}


/* =========================================================
   TITLE RHYTHM POLISH · v1.10.13
   Approved copy is unchanged. Only sentence breathing is designed.
   ========================================================= */
.rhythm-title .rhythm-line {
  display:block;
}

.rhythm-title .rhythm-line + .rhythm-line {
  margin-top:.015em;
}

/* Korean large titles must not split inside a natural word group. */
html[lang="ko"] .section-heading h2,
html[lang="ko"] .saysure-story-copy h3,
html[lang="ko"] .saybridge-story-copy h3,
html[lang="ko"] .saybridge-discovery h4,
html[lang="ko"] .warm-saju-story-copy h3,
html[lang="ko"] .quiet-orbit-heading h2 {
  word-break:keep-all;
  overflow-wrap:normal;
}

/* English keeps normal word boundaries while following designed clauses. */
html[lang="en"] .rhythm-title {
  word-break:normal;
  overflow-wrap:normal;
}

/* On generous screens the designed phrase is treated like a graphic line. */
@media(min-width:900px) {
  .rhythm-title .rhythm-line {
    white-space:nowrap;
  }
}

/* On narrower screens preserve the intended starting points,
   but allow a line to wrap again rather than overflow. */
@media(max-width:899px) {
  .rhythm-title .rhythm-line {
    white-space:normal;
  }

  html[lang="ko"] .rhythm-title .rhythm-line {
    word-break:keep-all;
    overflow-wrap:normal;
  }
}

/* Very narrow mobile fallback: never force clipping. */
@media(max-width:420px) {
  html[lang="ko"] .rhythm-title .rhythm-line {
    overflow-wrap:anywhere;
  }
}


/* =========================================================
   THREE-LANGUAGE DIRECT SELECTOR · v1.10.26
   ========================================================= */
.skala-language-switcher{
  display:inline-flex!important;
  align-items:center;
  gap:2px;
  min-width:0!important;
  min-height:36px;
  padding:3px!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:999px!important;
  background:rgba(255,255,255,.025)!important;
  cursor:default!important;
}
.skala-language-switcher>button{
  appearance:none;
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(245,239,230,.48);
  min-height:30px;
  padding:0 .58rem;
  font:inherit;
  font-size:.56rem;
  font-weight:720;
  letter-spacing:.01em;
  cursor:pointer;
  white-space:nowrap;
}
.skala-language-switcher>button:hover,
.skala-language-switcher>button:focus-visible{
  color:rgba(255,255,255,.92);
  background:rgba(255,255,255,.055);
  outline:none;
}
.skala-language-switcher>button.is-active{
  color:#fff;
  background:rgba(191,155,101,.16);
  box-shadow:inset 0 0 0 1px rgba(191,155,101,.2);
}
@media(max-width:600px){
  .skala-language-switcher>button{
    min-height:28px;
    padding:0 .42rem;
    font-size:.51rem;
  }
}

.skala-language-switcher .lang-short{display:none}
.skala-language-switcher .lang-full{display:inline}
@media(max-width:760px){
  .skala-language-switcher .lang-full{display:none}
  .skala-language-switcher .lang-short{display:inline}
}


/* =========================================================
   PUBLIC DOOR CHECK · v1.10.28
   Official brand lockup + public contact only.
   ========================================================= */
.brand-lockup strong {
  font-size: .76rem;
  letter-spacing: .065em;
  white-space: nowrap;
}
.footer-public-door {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.footer-contact {
  color: rgba(255,255,255,.78);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.22);
  transition: color .2s ease, border-color .2s ease;
}
.footer-contact:hover,
.footer-contact:focus-visible {
  color: #fff;
  border-color: rgba(255,255,255,.72);
}
@media (max-width: 700px) {
  .brand-lockup strong {
    max-width: 11.8rem;
    white-space: normal;
    font-size: .62rem;
    line-height: 1.18;
    letter-spacing: .045em;
  }
  .brand-lockup small { display: none; }
  .footer-public-door {
    display: grid;
    gap: .35rem;
  }
}


/* =========================================================
   TRADES · JOB & QUOTE MODEL HOUSE · v1.10.31
   Quiet Blueprint + stronger process line refinement.
   ========================================================= */
.house-trades {
  --house-bg: linear-gradient(145deg, #e3e8ea, #879ba7);
  --house-ink: #17242b;
  --house-muted: rgba(24,38,45,.65);
  --house-border: rgba(31,54,66,.16);
  --house-accent: #708895;
}

.trades-stage {
  padding: 9%;
  color: #eff5f7;
  background:
    radial-gradient(circle at 83% 16%, rgba(220,233,238,.13), transparent 24%),
    radial-gradient(circle at 68% 54%, rgba(227,236,240,.1), transparent 24%),
    linear-gradient(145deg,#344c59,#7b929e);
}

.trades-blueprint-grid {
  position: absolute;
  inset: 0;
  opacity: .18;
  background-image:
    linear-gradient(rgba(255,255,255,.45) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.45) 1px, transparent 1px);
  background-size: 32px 32px;
}

.trades-blueprint-accent,
.trades-blueprint-outline,
.trades-blueprint-axis,
.trades-blueprint-node {
  position: absolute;
  z-index: 1;
}

.trades-blueprint-accent {
  border: 1px solid rgba(239,246,248,.12);
  border-radius: 999px;
  transform: rotate(-8deg);
}

.trades-accent-a {
  width: 33%;
  height: 18%;
  left: 43%;
  top: 42%;
}

.trades-accent-b {
  width: 26%;
  height: 14%;
  left: 49%;
  top: 48%;
  border-color: rgba(239,246,248,.08);
}

.trades-blueprint-outline {
  left: 47%;
  top: 45%;
  width: 22%;
  min-width: 190px;
  min-height: 136px;
  padding: 1rem 1rem .8rem;
  border: 1px solid rgba(239,246,248,.16);
  border-radius: 18px;
  background: transparent;
}

.trades-blueprint-outline::before,
.trades-blueprint-outline::after {
  content: "";
  position: absolute;
  background: rgba(239,246,248,.18);
}

.trades-blueprint-outline::before {
  left: 14px;
  right: 14px;
  top: 18px;
  height: 1px;
}

.trades-blueprint-outline::after {
  left: 18px;
  top: 14px;
  bottom: 14px;
  width: 1px;
}

.trades-outline-kicker,
.trades-outline-copy {
  display: block;
  color: rgba(240,247,249,.66);
}

.trades-outline-kicker {
  margin-left: 15px;
  font-size: .45rem;
  font-weight: 800;
  letter-spacing: .16em;
}

.trades-outline-copy {
  position: absolute;
  left: 1rem;
  bottom: .95rem;
  font-size: .54rem;
  letter-spacing: .08em;
}

.trades-blueprint-axis {
  color: rgba(236,244,247,.36);
  font-size: .44rem;
  font-weight: 700;
  letter-spacing: .18em;
}

.trades-axis-top {
  left: 10%;
  top: 12%;
}

.trades-axis-side {
  right: 8%;
  top: 40%;
  transform: rotate(90deg);
  transform-origin: right top;
}

.trades-axis-bottom {
  left: 36%;
  bottom: 28%;
}

.trades-blueprint-node {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(236,244,247,.44);
  box-shadow: 0 0 0 6px rgba(236,244,247,.06);
}

.trades-node-one {
  left: 56%;
  top: 55%;
}

.trades-node-two {
  left: 70%;
  top: 50%;
}

.trades-job-path {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
  align-items: center;
  margin-top: 3rem;
}

.trades-job-step {
  position: relative;
  display: grid;
  place-items: center;
  width: 76px;
  height: 76px;
  text-align: center;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 50%;
  background: rgba(19,35,44,.4);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}

.trades-job-step::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
}

.trades-job-step span,
.trades-job-step small {
  font-size: .46rem;
  opacity: .62;
}

.trades-job-step span {
  letter-spacing: .12em;
}

.trades-job-step b {
  font-size: .58rem;
  letter-spacing: -.01em;
}

.trades-job-step.complete {
  background: rgba(226,233,220,.16);
  border-color: rgba(225,235,214,.56);
}

.trades-job-step.complete::after {
  border-color: rgba(225,235,214,.18);
}

.trades-job-line {
  position: relative;
  height: 1px;
  background: rgba(255,255,255,.18);
}

.trades-job-line::before,
.trades-job-line::after {
  content: "";
  position: absolute;
  top: -3px;
  width: 1px;
  height: 7px;
  background: rgba(255,255,255,.18);
}

.trades-job-line::before { left: 0; }
.trades-job-line::after { right: 0; }

.trades-job-line.complete {
  background: #c7d1bf;
}

.trades-job-line.complete::before,
.trades-job-line.complete::after {
  background: rgba(199,209,191,.85);
}

.trades-experience-card {
  position: absolute;
  left: 9%;
  bottom: 9%;
  z-index: 2;
  width: 58%;
  padding: 1.2rem 1.25rem;
  border-radius: 16px;
  color: #21323b;
  background: rgba(244,246,243,.96);
  box-shadow: 0 24px 55px rgba(12,24,31,.24);
}

.trades-experience-card small,
.trades-experience-card span {
  display: block;
  font-size: .5rem;
  letter-spacing: .06em;
  opacity: .58;
}

.trades-experience-card strong {
  display: block;
  margin: .42rem 0 .75rem;
  font-size: .92rem;
  line-height: 1.45;
}

.trades-20y-mark {
  position: absolute;
  right: 8%;
  bottom: 8%;
  z-index: 2;
  display: grid;
  place-items: center;
  align-content: center;
  width: 88px;
  height: 72px;
  border-radius: 22px;
  color: #243943;
  background: #d5b468;
  box-shadow: 0 20px 40px rgba(13,25,31,.22);
}

.trades-20y-mark strong {
  font-size: 1.35rem;
  line-height: 1;
}

.trades-20y-mark small {
  margin-top: .28rem;
  font-size: .42rem;
  font-weight: 800;
  letter-spacing: .15em;
}

.named-star.proximity::before {
  transform: scale(1.5);
  box-shadow: 0 0 14px currentColor, 0 0 38px currentColor;
}

.named-star.proximity .star-label {
  color: white;
  opacity: 1;
  transform: translateX(-50%) translateY(2px);
}

@media (max-width: 1120px) {
  .library-three-editions {
    grid-template-columns: 1fr;
  }

  .library-three-editions .library-door {
    min-height: 0;
  }

  .library-three-editions .library-door strong {
    min-height: 0;
    -webkit-line-clamp: unset;
    overflow: visible;
  }
}

@media (max-width: 980px) {
  .trades-blueprint-outline {
    left: 43%;
    width: 28%;
  }

  .trades-axis-bottom {
    left: 31%;
  }
}

@media (max-width: 900px) {
  .trades-stage {
    padding: 7%;
  }

  .trades-job-step {
    width: 66px;
    height: 66px;
  }

  .trades-experience-card {
    width: 62%;
  }

  .trades-blueprint-outline {
    top: 47%;
    width: 30%;
    min-width: 170px;
    min-height: 122px;
  }
}

@media (max-width: 700px) {
  .trades-job-path {
    margin-top: 1.25rem;
    grid-template-columns: repeat(4, 1fr);
    gap: .35rem;
  }

  .trades-job-line {
    display: none;
  }

  .trades-job-step {
    width: 58px;
    height: 58px;
    justify-self: center;
  }

  .trades-blueprint-outline,
  .trades-blueprint-axis,
  .trades-blueprint-node,
  .trades-blueprint-accent {
    display: none;
  }

  .trades-experience-card {
    left: 7%;
    bottom: 8%;
    width: 68%;
    padding: .9rem;
  }

  .trades-20y-mark {
    right: 6%;
    bottom: 8%;
    width: 70px;
    height: 60px;
  }
}

/* keep Home book cards professional even with long multilingual titles */
.library-three-editions .library-door {
  min-height: 190px;
  gap: .45rem;
}

.library-three-editions .library-door strong {
  max-width: 100%;
  min-height: 3.8em;
  font-size: .69rem;
  line-height: 1.36;
  overflow-wrap: anywhere;
  word-break: keep-all;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.library-three-editions .library-door span {
  min-height: 1.4em;
}

.library-three-editions .library-door em {
  margin-top: auto;
}

