:root{
  --bg:#f8f5ef;
  --paper:#fffdfa;
  --paper-soft:#f4eee5;
  --text:#3f342d;
  --muted:#7d726a;
  --gold:#c59b59;
  --gold-deep:#9f7337;
  --line:rgba(91,70,52,.12);
  --line-strong:rgba(91,70,52,.20);
  --shadow:0 22px 65px rgba(104,82,58,.10);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
body{
  font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
button:focus-visible,a:focus-visible{outline:2px solid rgba(197,155,89,.65);outline-offset:3px}

.hub-shell{
  min-height:100svh;
  position:relative;
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(circle at 8% 12%,rgba(255,255,255,.95),transparent 26%),
    radial-gradient(circle at 91% 18%,rgba(231,215,193,.42),transparent 28%),
    linear-gradient(180deg,#fbfaf7 0%,#f8f4ed 56%,#f3eee6 100%);
}
.hub-sky{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.hub-stars{display:none}
.hub-glow{
  position:absolute;inset:auto 0 -20% 0;height:55%;
  background:radial-gradient(ellipse at center,rgba(208,174,123,.12),transparent 66%);
  filter:blur(18px);
}

.hub-topbar{
  width:min(1180px,calc(100% - 36px));
  margin:0 auto;
  min-height:76px;
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:1px solid rgba(91,70,52,.08);
}
.hub-brand{
  display:flex;align-items:center;gap:10px;
  font-family:Georgia,"Noto Serif KR","Batang",serif;
  font-size:18px;font-weight:700;letter-spacing:.015em;
}
.hub-brand-dot{
  width:9px;height:9px;border-radius:50%;
  background:#d5ad69;box-shadow:0 0 0 5px rgba(213,173,105,.10);
}
.hub-lang{
  border:1px solid var(--line);
  background:rgba(255,255,255,.68);
  padding:8px 14px;border-radius:999px;cursor:pointer;
  box-shadow:0 6px 20px rgba(104,82,58,.05);
  transition:.2s ease;
}
.hub-lang:hover{transform:translateY(-1px);background:#fff;border-color:var(--line-strong)}

.hub-main{width:min(1180px,calc(100% - 30px));margin:0 auto;padding:28px 0 72px}
.hub-intro{
  position:relative;isolation:isolate;overflow:hidden;
  min-height:310px;
  max-width:none;
  margin:0 auto 28px;
  padding:65px min(18vw,220px) 54px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  border:1px solid rgba(105,80,58,.09);
  border-radius:30px;
  background:
    linear-gradient(90deg,rgba(255,253,249,.58),rgba(255,253,249,.95) 31%,rgba(255,253,249,.97) 69%,rgba(255,253,249,.58)),
    linear-gradient(180deg,#fffdf9,#f5eee5);
  box-shadow:var(--shadow);
}
.hub-intro::before,.hub-intro::after{
  content:"";position:absolute;top:-2px;bottom:-2px;width:44%;z-index:-1;
  background-repeat:no-repeat;background-size:cover;
  opacity:.78;pointer-events:none;
}
.hub-intro::before{
  left:-2px;background-image:url("warm-left.webp");
  background-position:left center;
  -webkit-mask-image:linear-gradient(90deg,#000 0 68%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0 68%,transparent 100%);
}
.hub-intro::after{
  right:-8px;width:48%;background-image:url("warm-human.webp");
  background-position:right center;
  -webkit-mask-image:linear-gradient(270deg,#000 0 70%,transparent 100%);
  mask-image:linear-gradient(270deg,#000 0 70%,transparent 100%);
}
.hub-kicker{
  font-size:11px;letter-spacing:.10em;color:#9f835f;
  margin:0 0 14px;padding:7px 11px;border-radius:999px;
  background:rgba(255,255,255,.58);border:1px solid rgba(151,118,75,.10);
}
.hub-intro h1{
  font-family:Georgia,"Noto Serif KR","Nanum Myeongjo","Batang",serif;
  font-size:clamp(38px,5.1vw,58px);line-height:1.16;
  font-weight:700;letter-spacing:-.045em;margin:0 0 16px;color:#3c3028;
  text-shadow:0 1px 0 rgba(255,255,255,.8);
}
.hub-lead{
  max-width:640px;margin:0 auto;color:#756a62;line-height:1.82;
  font-size:14px;word-break:keep-all;text-shadow:0 1px 0 rgba(255,255,255,.7);
}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.service-card{
  position:relative;min-height:255px;
  border:1px solid var(--line);
  border-radius:24px;padding:25px;padding-right:calc(42% + 18px);
  background:rgba(255,253,249,.92);
  box-shadow:0 14px 40px rgba(96,75,54,.07);
  display:flex;flex-direction:column;overflow:hidden;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease,background .22s ease;
}
.service-card > *{position:relative;z-index:2}
.service-card::before{
  content:"";position:absolute;inset:auto -18% -52% 38%;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(201,159,96,.11),transparent 66%);pointer-events:none;
}
.service-card::after{
  content:"";position:absolute;width:130px;height:130px;right:-36px;top:-46px;border-radius:50%;
  background:radial-gradient(circle,rgba(230,216,195,.38),transparent 70%);pointer-events:none;
}
.service-card:nth-child(2),.service-card:nth-child(5){background:rgba(252,249,244,.93)}
.service-card.featured{
  border-color:rgba(181,137,72,.20);
  background:linear-gradient(145deg,rgba(255,253,249,.96),rgba(248,238,223,.88));
}
.service-card:hover{
  transform:translateY(-4px);border-color:rgba(139,104,59,.24);
  box-shadow:0 22px 52px rgba(96,75,54,.11);background:#fffdfa;
}
.service-card-media{
  position:absolute;top:-3px;right:-3px;bottom:-3px;width:60%;display:block;z-index:1;pointer-events:none;
  border-radius:0;background-repeat:no-repeat;background-size:cover;background-position:center;
  opacity:.98;transform:scale(1.012);transform-origin:center right;
  transition:transform .65s cubic-bezier(.22,.61,.36,1),filter .65s ease,opacity .65s ease;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.22) 8%,rgba(0,0,0,.75) 22%,#000 36%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0,rgba(0,0,0,.22) 8%,rgba(0,0,0,.75) 22%,#000 36%,#000 100%);
}
.service-card-media::after{
  content:"";position:absolute;inset:0;border-radius:0;
  background:linear-gradient(90deg,rgba(255,252,247,.98) 0%,rgba(255,252,247,.88) 18%,rgba(255,252,247,.36) 40%,rgba(255,252,247,.06) 68%,rgba(255,252,247,0) 100%);
}
.card-heart .service-card-media{background-image:url("card-heart.webp");background-position:center right}
.card-question .service-card-media{background-image:url("card-question.webp");background-position:70% center}
.card-words .service-card-media{background-image:url("card-words.webp");background-position:right center}
.card-traces .service-card-media{background-image:url("card-traces.webp");background-position:center}
.card-burden .service-card-media{background-image:url("card-burden.webp");background-position:center right}
.card-together .service-card-media{background-image:url("card-together.webp");background-position:center right}
.service-no{position:absolute;right:20px;top:19px;font-size:11px;color:#b8a087;letter-spacing:.04em}
.service-symbol{
  width:46px;height:46px;border-radius:15px;
  border:1px solid rgba(184,141,81,.18);display:grid;place-items:center;
  color:#b4884f;font-size:22px;margin-bottom:24px;
  background:rgba(249,239,224,.70);box-shadow:inset 0 1px rgba(255,255,255,.9);
}
.featured .service-symbol{color:#a97a3e;background:rgba(246,231,207,.78)}
.service-card h2{margin:0 0 10px;font-size:22px;letter-spacing:-.035em;color:#46382f}
.service-card p{margin:0;color:#85786f;font-size:13px;line-height:1.72;word-break:keep-all;flex:1}
.service-action{
  width:max-content;margin-top:22px;padding:8px 12px;border-radius:999px;
  color:#9c7442;font-size:11px;display:flex;gap:9px;align-items:center;
  background:#f7efe4;border:1px solid rgba(176,132,73,.08);
}
.service-card:hover .service-action{background:#f2e5d3;color:#7e572d}
.service-card:hover .service-card-media{
  transform:scale(1.045);
  filter:saturate(1.035) brightness(1.015);
  opacity:1;
}

.hub-note{display:flex;align-items:center;gap:18px;justify-content:center;margin:44px auto 0;color:#9a8c82;font-size:12px}
.hub-note-line{width:70px;height:1px;background:rgba(95,73,53,.12)}
.hub-footer{text-align:center;color:#aaa097;font-size:10px;padding:0 15px 24px}

@media(max-width:900px){
  .hub-intro{padding-left:70px;padding-right:70px}
  .hub-intro::before,.hub-intro::after{opacity:.62}
  .hub-intro::before{width:46%}
  .hub-intro::after{width:50%;right:-10px}
  .service-card{padding-right:calc(40% + 18px)}
  .service-card-media{width:58%;right:-3px}
  .service-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
  .hub-topbar{min-height:64px;width:calc(100% - 26px)}
  .hub-brand{font-size:16px}
  .hub-main{width:calc(100% - 20px);padding:18px 0 54px}
  .hub-intro{min-height:360px;margin-bottom:18px;padding:56px 25px 42px;border-radius:24px}
  .hub-intro::before{width:60%;opacity:.45;background-position:28% center}
  .hub-intro::after{width:68%;right:-12px;opacity:.54;background-position:right center}
  .hub-intro h1{font-size:clamp(35px,10vw,44px)}
  .hub-kicker{font-size:10px}
  .hub-lead{font-size:13px;line-height:1.72}
  .service-grid{grid-template-columns:1fr;gap:11px}
  .service-card{min-height:226px;padding:21px;padding-right:calc(44% + 12px);border-radius:21px}
  .service-symbol{margin-bottom:18px}
  .hub-note{margin-top:34px;gap:11px}
  .hub-note-line{width:38px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

/* ===== Real anonymous lines: flowing cards ===== */
.anonymous-line-panel{
  margin:0 auto 16px;
  border:1px solid rgba(160,119,68,.14);
  border-radius:24px;
  background:linear-gradient(135deg,rgba(255,253,249,.94),rgba(247,239,227,.86));
  box-shadow:0 14px 38px rgba(96,75,54,.065);
  padding:18px 0 20px;
  overflow:hidden;
}
.anonymous-line-panel[hidden]{display:none}
.anonymous-line-heading{
  display:flex;align-items:center;gap:9px;
  padding:0 24px 12px;
}
.anonymous-line-quote{
  flex:0 0 auto;
  font-family:Georgia,"Noto Serif KR","Batang",serif;
  font-size:30px;line-height:.8;color:rgba(181,137,72,.58);
}
.anonymous-line-label{
  display:block;
  font-size:10px;letter-spacing:.075em;color:#a1815c;font-weight:700;
}
.anonymous-line-viewport{
  position:relative;width:100%;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 4%,#000 96%,transparent 100%);
}
.anonymous-line-track{
  --anonymous-card-gap:12px;
  display:flex;align-items:stretch;column-gap:var(--anonymous-card-gap);
  width:max-content;will-change:transform;
  padding-left:24px;
}
.anonymous-line-set{
  display:flex;align-items:stretch;gap:var(--anonymous-card-gap);
}
.anonymous-line-card{
  flex:0 0 clamp(220px,30vw,330px);
  min-height:124px;
  border:1px solid rgba(154,116,70,.16);
  border-radius:18px;
  background:rgba(255,255,255,.72);
  box-shadow:0 8px 22px rgba(93,69,46,.045);
  padding:17px 18px 15px;
  display:flex;flex-direction:column;justify-content:space-between;gap:12px;
  color:inherit;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.anonymous-line-card:hover,.anonymous-line-card:focus-visible{
  border-color:rgba(151,108,56,.28);
  background:rgba(255,255,255,.92);
  box-shadow:0 11px 26px rgba(93,69,46,.075);
}
.anonymous-line-text{
  margin:0;color:#493a31;
  font-family:Georgia,"Noto Serif KR","Nanum Myeongjo","Batang",serif;
  font-size:clamp(15px,1.65vw,18px);line-height:1.68;letter-spacing:-.018em;
  word-break:keep-all;overflow-wrap:anywhere;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
}
.anonymous-line-card-meta{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  color:#90704a;font-size:10px;line-height:1.4;
}
.anonymous-line-source{font-weight:700}
.anonymous-line-arrow{color:#a88458;white-space:nowrap}

.anonymous-live-layer{
  position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden;
}
.anonymous-live-card{
  position:absolute;left:0;top:0;
  width:clamp(220px,30vw,330px);min-height:124px;
  padding:13px 18px 12px;gap:6px;
  pointer-events:auto;
  background:rgba(255,253,248,.97);
  border-color:rgba(185,135,70,.34);
  box-shadow:0 13px 32px rgba(123,88,48,.13);
  will-change:transform;
}
.anonymous-live-kicker{
  display:block;margin:0 0 6px;
  color:#a07139;font-size:9px;line-height:1.35;font-weight:800;letter-spacing:.055em;
}

/* ===== Live passage + personal encounter fragments ===== */
.passing-panel{
  margin:0 auto 22px;
  min-height:86px;
  border:1px solid var(--line);
  border-radius:22px;
  background:rgba(255,253,249,.78);
  box-shadow:0 12px 34px rgba(96,75,54,.055);
  padding:18px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
.passing-copy{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.passing-label{font-size:10px;letter-spacing:.075em;color:#a1815c;font-weight:700}
.passing-copy strong{font-size:14px;color:#4a3c32;font-weight:700}
.passing-today{font-size:11px;color:#9a8c82}
.passing-dots{display:flex;align-items:center;justify-content:flex-end;gap:7px;min-width:150px}
.passing-dots span{
  width:7px;height:7px;border-radius:50%;background:rgba(173,154,132,.22);
}
.passing-dots span.active{
  background:#c59758;box-shadow:0 0 0 4px rgba(197,151,88,.10);
  animation:passingPulse 2.7s ease-in-out var(--delay,0s) infinite;
}
@keyframes passingPulse{0%,100%{transform:scale(.85);opacity:.58}50%{transform:scale(1.15);opacity:1}}

.fragment-panel{
  margin:24px auto 0;padding:24px 26px;border:1px solid var(--line);border-radius:24px;
  background:linear-gradient(135deg,rgba(255,253,249,.92),rgba(245,237,226,.82));
  box-shadow:0 14px 38px rgba(96,75,54,.065);
}
.fragment-heading{display:flex;justify-content:space-between;align-items:center;gap:24px}
.fragment-kicker{display:block;font-size:9px;letter-spacing:.08em;color:#a68c70;margin-bottom:6px}
.fragment-heading h2{margin:0;color:#493a31;font-size:20px;letter-spacing:-.025em}
.fragment-heading p{margin:7px 0 0;color:#8d8076;font-size:12px;line-height:1.6}
.fragment-open{
  flex:0 0 auto;border:1px solid rgba(165,120,66,.14);background:#f3e7d6;color:#8c6332;
  border-radius:999px;padding:8px 13px;cursor:pointer;font:inherit;font-size:11px;
}
.fragment-open:hover{background:#edddc7}
.fragment-service-row{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:18px}
.fragment-service{
  min-width:0;border:1px solid rgba(91,70,52,.09);border-radius:15px;background:rgba(255,255,255,.55);
  padding:11px 8px;text-align:center;color:#a89a8e;
}
.fragment-service.has-fragment{background:rgba(250,242,230,.82);color:#8b673c;border-color:rgba(170,126,73,.14)}
.fragment-mark{display:block;font-size:17px;line-height:1;margin-bottom:6px}
.fragment-name{display:block;font-size:9px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fragment-service b{display:block;margin-top:5px;font-size:11px;color:#75675d}

.fragment-dialog{width:min(620px,calc(100% - 28px));border:1px solid var(--line-strong);border-radius:22px;background:#fffdf9;color:#44372f;padding:0;box-shadow:0 28px 90px rgba(78,60,43,.20)}
.fragment-dialog::backdrop{background:rgba(78,66,55,.28);backdrop-filter:blur(5px)}
.fragment-dialog-inner{padding:28px;position:relative}
.fragment-close{position:absolute;right:13px;top:10px;border:0;background:none;color:#9d8f84;font-size:25px;cursor:pointer}
.fragment-dialog h3{margin:0 32px 8px 0;font-size:22px}
.fragment-dialog-lead{margin:0 0 20px;color:#82766d;font-size:12px;line-height:1.7}
.fragment-dialog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.fragment-dialog-stat{border:1px solid var(--line);border-radius:15px;padding:12px;background:#faf5ed;display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center}
.fragment-dialog-stat span{color:#b1844b}.fragment-dialog-stat small{font-size:10px;color:#877a70}.fragment-dialog-stat b{font-size:13px;color:#53443a}
.fragment-dialog h4{font-size:11px;color:#9b7c58;letter-spacing:.05em;margin:22px 0 8px}
.fragment-recent-list{border-top:1px solid var(--line)}
.fragment-recent-item{display:flex;justify-content:space-between;gap:16px;padding:10px 2px;border-bottom:1px solid rgba(91,70,52,.08);font-size:11px;color:#66564b}
.fragment-recent-item time{color:#a09388;white-space:nowrap}

@media(max-width:760px){
  .anonymous-line-panel{padding:16px 0 18px;border-radius:21px}
  .anonymous-line-heading{padding:0 17px 11px;gap:8px}
  .anonymous-line-quote{font-size:27px}
  .anonymous-line-card{flex-basis:min(62vw,240px);min-height:112px;padding:14px 15px 13px}
  .anonymous-live-card{width:min(62vw,240px);min-height:112px;padding:11px 15px 10px;gap:5px}
  .anonymous-line-track{padding-left:17px}
  .anonymous-line-text{font-size:15px;line-height:1.68}
  .anonymous-line-card-meta{gap:8px}
  .passing-panel{align-items:flex-start;flex-direction:column;gap:13px;padding:17px 18px}
  .passing-copy{display:block}.passing-label,.passing-copy strong,.passing-today{display:block}.passing-copy strong{margin-top:5px}.passing-today{margin-top:4px}
  .passing-dots{min-width:0;justify-content:flex-start}
  .fragment-heading{align-items:flex-start}
  .fragment-service-row{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){
  .anonymous-line-card{flex-basis:min(58vw,210px);min-height:108px;padding:13px 14px 12px}
  .anonymous-live-card{width:min(58vw,210px);min-height:108px;padding:10px 14px 9px;gap:5px}
  .anonymous-line-track{--anonymous-card-gap:10px;padding-left:14px}
  .fragment-panel{padding:20px 17px}
  .fragment-heading{display:block}.fragment-open{margin-top:14px}
  .fragment-dialog-grid{grid-template-columns:1fr 1fr}
  .fragment-name{white-space:normal}
}
