:root{
  --bg:#dcf0f2; --bg-glow:#f7fbe9; --bg-glow2:#c6e8ee;
  --surface:#ffffff; --surface-2:#f3fafa; --surface-3:#e5f3f3;
  --text:#18324a; --muted:#5d7385; --line:#d3e5e7; --line-strong:#b3d0d4;
  --accent:#139c9a; --accent-ink:#ffffff; --accent-soft:#d5f0ee; --accent-deep:#0b6d6f;
  --coral:#ff6f59; --coral-soft:#ffe4dc; --gold:#e9a400; --gold-soft:#fff2cc;
  --danger:#d9483f; --ok:#1f9d5c;
  --topbar:rgba(255,255,255,.78);
  --room-a:#cfeaf0; --room-b:#eaf6f2;
  --shadow:0 12px 32px rgba(20,60,80,.12),0 2px 6px rgba(20,60,80,.07);
  --shadow-lg:0 30px 70px rgba(8,35,50,.28);
  --font:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --display:"Jua","Noto Sans KR","Apple SD Gothic Neo",sans-serif;
  color-scheme:light;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0d1d27; --bg-glow:#16303c; --bg-glow2:#10283a;
    --surface:#152a36; --surface-2:#1a3240; --surface-3:#203b4a;
    --text:#e4eff3; --muted:#93acba; --line:#28465a; --line-strong:#356076;
    --accent:#35c2bd; --accent-ink:#06282a; --accent-soft:#174a4e; --accent-deep:#7fe0db;
    --coral:#ff8a75; --coral-soft:#4a2a25; --gold:#ffc23d; --gold-soft:#3d331a;
    --topbar:rgba(13,29,39,.82);
    --room-a:#173847; --room-b:#122c38;
    --shadow:0 12px 32px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.25);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0d1d27; --bg-glow:#16303c; --bg-glow2:#10283a;
  --surface:#152a36; --surface-2:#1a3240; --surface-3:#203b4a;
  --text:#e4eff3; --muted:#93acba; --line:#28465a; --line-strong:#356076;
  --accent:#35c2bd; --accent-ink:#06282a; --accent-soft:#174a4e; --accent-deep:#7fe0db;
  --coral:#ff8a75; --coral-soft:#4a2a25; --gold:#ffc23d; --gold-soft:#3d331a;
  --topbar:rgba(13,29,39,.82);
  --room-a:#173847; --room-b:#122c38;
  --shadow:0 12px 32px rgba(0,0,0,.35),0 2px 6px rgba(0,0,0,.25);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-padding-top:env(safe-area-inset-top,0px)}
html,body{margin:0}
body{
  font-family:var(--font);color:var(--text);background:var(--bg);min-height:100vh;
  background-image:radial-gradient(circle at 12% -10%,var(--bg-glow) 0,transparent 42%),radial-gradient(circle at 95% 25%,var(--bg-glow2) 0,transparent 40%);
  background-attachment:fixed;-webkit-font-smoothing:antialiased;line-height:1.5;
}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--topbar);backdrop-filter:blur(14px)}
button{font:inherit;color:inherit;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
img{max-width:100%}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ===== Top bar ===== */
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;display:flex;align-items:center;gap:18px;height:66px;padding:0 22px;background:var(--topbar);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;background:none;border:0;padding:4px 6px 4px 0}
.logo svg{width:44px;height:44px;flex:none;filter:drop-shadow(0 3px 5px rgba(10,60,80,.2))}
.wordmark{font-family:var(--display);font-size:27px;line-height:1;letter-spacing:-.5px;color:var(--accent-deep);display:flex;flex-direction:column}
.wordmark small{font-family:var(--font);font-size:9.5px;font-weight:700;letter-spacing:2.5px;color:var(--muted);margin-top:3px}
.mainnav{display:flex;gap:4px;margin-left:8px}
.mainnav button{display:flex;align-items:center;gap:7px;border:0;background:none;padding:9px 14px;border-radius:999px;font-weight:700;font-size:14.5px;color:var(--muted);transition:background .15s,color .15s}
.mainnav button:hover{background:var(--surface-3);color:var(--text)}
.mainnav button[aria-current="true"]{background:var(--accent);color:var(--accent-ink)}
.mainnav .ni{font-size:16px}
.top-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.seed-pill{display:flex;align-items:center;gap:6px;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:6px 14px 6px 8px;font-weight:900;font-size:15px}
.seed-pill:hover{border-color:var(--accent)}
.seed-pill.bump{animation:bump .5s}
@keyframes bump{30%{transform:scale(1.12)}}
.seed{width:20px;height:20px;flex:none;vertical-align:-4px}
.icon-btn{position:relative;width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line-strong);background:var(--surface);font-size:17px;display:grid;place-items:center}
.icon-btn .dot{position:absolute;top:6px;right:7px;width:9px;height:9px;background:var(--coral);border-radius:50%;border:2px solid var(--surface)}
.me-btn{width:42px;height:42px;border-radius:50%;border:2px solid var(--accent);padding:0;overflow:hidden;background:var(--accent-soft)}
.me-btn canvas{width:100%;height:100%;display:block}

/* ===== Layout ===== */
.wrap{max-width:1180px;margin:0 auto;padding:26px 82px 60px 22px}
.page-title{font-family:var(--display);font-size:30px;margin:0 0 4px;letter-spacing:-.3px}
.page-sub{color:var(--muted);margin:0 0 20px}

/* ===== Hompy ===== */
.hompy{position:relative;--h-accent:var(--accent);--h-soft:var(--accent-soft);--h-deep:var(--accent-deep)}
.hompy[data-skin="sea"]{--h-accent:#2f6fd6;--h-soft:#dce8fb;--h-deep:#1d4c9c}
.hompy[data-skin="sunset"]{--h-accent:#ec6a4c;--h-soft:#ffe3d8;--h-deep:#b2432a}
.hompy[data-skin="forest"]{--h-accent:#3f9a4a;--h-soft:#dff1dc;--h-deep:#2a6b31}
:root[data-theme="dark"] .hompy[data-skin="sea"]{--h-soft:#1c3150}
:root[data-theme="dark"] .hompy[data-skin="sunset"]{--h-soft:#45291f}
:root[data-theme="dark"] .hompy[data-skin="forest"]{--h-soft:#1f3a22}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .hompy[data-skin="sea"]{--h-soft:#1c3150}
  :root:not([data-theme="light"]) .hompy[data-skin="sunset"]{--h-soft:#45291f}
  :root:not([data-theme="light"]) .hompy[data-skin="forest"]{--h-soft:#1f3a22}
}
.hompy-frame{background:var(--h-accent);background-image:radial-gradient(rgba(255,255,255,.28) 1.6px,transparent 1.8px);background-size:14px 14px;border-radius:28px;padding:14px;box-shadow:var(--shadow)}
.hompy-page{background:var(--surface);border-radius:18px;overflow:hidden;min-height:620px}
.hompy-head{display:flex;align-items:center;gap:14px;padding:14px 20px;border-bottom:2px dashed var(--line)}
.hompy-title{font-family:var(--display);font-size:21px;color:var(--h-deep);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hompy-url{font-size:12.5px;color:var(--muted);background:var(--surface-2);padding:4px 10px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.counter{margin-left:auto;display:flex;gap:14px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.counter b{color:var(--coral);font-size:14px;margin-left:4px}
.counter .tot b{color:var(--text)}
.hompy-body{display:grid;grid-template-columns:250px minmax(0,1fr);gap:18px;padding:18px}
.tabs{position:absolute;right:-66px;top:84px;display:flex;flex-direction:column;gap:6px;z-index:2}
.tabs button{width:66px;padding:11px 4px 11px 2px;border:0;border-radius:0 14px 14px 0;background:var(--surface-3);color:var(--muted);font-weight:700;font-size:13px;box-shadow:inset 6px 0 6px -6px rgba(0,0,0,.25);transition:background .15s,color .15s,transform .15s;display:flex;flex-direction:column;align-items:center;gap:2px}
.tabs button .ti{font-size:17px}
.tabs button:hover{color:var(--text);transform:translateX(3px)}
.tabs button[aria-current="true"]{background:var(--h-accent);color:#fff;transform:translateX(4px)}

/* profile */
.profile{display:flex;flex-direction:column;gap:12px}
.portrait{position:relative;border-radius:16px;overflow:hidden;background:linear-gradient(180deg,#bfe7f5,#e8f7ef);aspect-ratio:1/1;border:2px solid var(--line)}
.portrait canvas{width:100%;height:100%;display:block}
.mood-chip{position:absolute;left:10px;bottom:10px;display:flex;gap:6px;align-items:center;background:rgba(255,255,255,.92);color:#18324a;border:0;border-radius:999px;padding:5px 11px 5px 8px;font-weight:700;font-size:13px;box-shadow:0 3px 10px rgba(0,0,0,.12)}
.mood-chip[disabled]{cursor:default}
.nick{font-family:var(--display);font-size:22px;margin:0;line-height:1.2;display:flex;align-items:center;gap:6px}
.intro{position:relative;font-size:14px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);padding:10px 34px 10px 12px;border-radius:12px;margin:0;word-break:keep-all}
.intro .edit{position:absolute;right:6px;top:6px;border:0;background:none;color:var(--muted);font-size:14px;border-radius:8px;padding:2px 6px}
.intro .edit:hover{background:var(--surface-3)}
.prof-actions{display:flex;flex-wrap:wrap;gap:6px}
.bgm{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:12px;padding:8px 10px;background:var(--surface-2)}
.bgm .play{width:34px;height:34px;border-radius:50%;border:0;background:var(--h-accent);color:#fff;font-size:13px;flex:none}
.bgm .meta{min-width:0;flex:1}
.bgm .t{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bgm .s{font-size:11.5px;color:var(--muted)}
.eq{display:flex;gap:2px;align-items:flex-end;height:16px}
.eq i{width:3px;background:var(--h-accent);border-radius:2px;height:4px}
.bgm.on .eq i{animation:eq .9s infinite ease-in-out}
.bgm.on .eq i:nth-child(2){animation-delay:.2s}.bgm.on .eq i:nth-child(3){animation-delay:.4s}
@keyframes eq{50%{height:15px}}
.today-pick{border-radius:14px;padding:12px;background:var(--gold-soft);border:1px solid color-mix(in srgb,var(--gold) 35%,transparent);display:flex;gap:10px;align-items:center}
.today-pick img{width:46px;height:46px;border-radius:12px;background:#fff;flex:none}
.today-pick .tp-t{font-size:12px;color:var(--muted)}
.today-pick .tp-n{font-weight:700;font-size:14px}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1.5px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:8px 16px;font-weight:700;font-size:14px;transition:transform .1s,background .15s,border-color .15s;white-space:nowrap}
.btn:hover{border-color:var(--accent)}
.btn:active{transform:scale(.97)}
.btn.sm{padding:5px 11px;font-size:12.5px}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.primary:hover{filter:brightness(1.06)}
.btn.coral{background:var(--coral);border-color:var(--coral);color:#fff}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.ghost:hover{background:var(--surface-3);color:var(--text)}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.btn.block{width:100%}
.hompy .btn.primary{background:var(--h-accent);border-color:var(--h-accent);color:#fff}

/* content */
.content{min-width:0;display:flex;flex-direction:column;gap:16px}
.sec-head{display:flex;align-items:center;gap:10px;margin:0}
.sec-head h2,.sec-head h3{font-family:var(--display);font-weight:400;margin:0;font-size:20px;color:var(--h-deep)}
.sec-head h3{font-size:17px}
.sec-head .sp{flex:1}
.sec-head .cnt{font-size:13px;color:var(--muted)}
.box{border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.empty{padding:34px 18px;text-align:center;color:var(--muted);font-size:14px}
.auth-card{max-width:420px;margin:28px auto;background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:28px 24px 22px;box-shadow:var(--shadow)}
.auth-card h1{font-family:var(--display);font-weight:400;font-size:32px;margin:0 0 6px}
.auth-card p{color:var(--muted);margin:0 0 8px}
.auth-card .auth-note{color:var(--accent-deep);font-weight:700}
.auth-card label{display:block;font-size:13px;font-weight:700;margin:12px 0 6px}
.auth-card .field{width:100%}
.auth-card .btn{width:100%;margin-top:16px}
.auth-switch{margin-top:14px;text-align:center;font-size:13.5px;color:var(--muted)}
.auth-switch button{border:0;background:none;color:var(--accent-deep);font-weight:700;padding:0}

