:root{
  --bg:#070812; --panel:rgba(13,14,31,.78); --panel2:rgba(18,20,40,.82);
  --purple:#a58cff; --purple2:#6f5dd5; --lime:#c9ff77; --lime2:#91d949;
  --text:#f5f2ff; --muted:#bcb8d7; --line:rgba(201,255,119,.18);
  --shadow:0 18px 70px rgba(0,0,0,.42);
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--text);font-family:Pretendard,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);min-height:100vh;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-3;background-image:linear-gradient(rgba(4,5,14,.42),rgba(5,6,16,.72)),var(--site-bg-image,url('assets/night-flower-field.png'));background-position:center,center 52%;background-size:cover,cover;background-repeat:no-repeat;filter:saturate(.92) brightness(.78);transform:scale(1.03)}
body::after{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(circle at 15% 18%,rgba(165,140,255,.20),transparent 28%),radial-gradient(circle at 82% 16%,rgba(201,255,119,.09),transparent 24%),radial-gradient(circle at 50% 100%,rgba(93,72,180,.18),transparent 40%)}
.stars{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.66;background-image:radial-gradient(circle,rgba(255,255,255,.85) 0 1px,transparent 1.5px),radial-gradient(circle,rgba(201,255,119,.75) 0 1px,transparent 1.6px);background-size:86px 86px,137px 137px;background-position:15px 5px,44px 70px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 32px));margin:auto}.topbar{position:sticky;top:0;z-index:30;backdrop-filter:blur(18px);background:linear-gradient(to bottom,rgba(7,8,18,.94),rgba(7,8,18,.58));border-bottom:1px solid rgba(255,255,255,.06)}
.nav{height:72px;display:flex;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px;font-weight:900;letter-spacing:-.03em}.brand-mark{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(145deg,rgba(165,140,255,.24),rgba(201,255,119,.12));border:1px solid rgba(201,255,119,.25);box-shadow:inset 0 0 30px rgba(165,140,255,.12)}.brand-mark svg{width:23px;height:23px}.navlinks{display:flex;align-items:center;gap:7px;margin-left:auto;overflow:auto;scrollbar-width:none}.navlinks::-webkit-scrollbar{display:none}.navlinks a{white-space:nowrap;padding:10px 12px;border-radius:12px;color:#d8d4ed;font-size:14px;font-weight:700}.navlinks a:hover,.navlinks a.active{background:rgba(165,140,255,.14);color:white;box-shadow:inset 0 0 0 1px rgba(165,140,255,.14)}
.live-pill{display:none;align-items:center;gap:8px;padding:9px 12px;border-radius:999px;background:rgba(184,84,255,.16);border:1px solid rgba(201,255,119,.25);font-weight:900;font-size:12px}.live-pill.show{display:flex}.live-dot{width:8px;height:8px;border-radius:50%;background:#c9ff77;box-shadow:0 0 0 0 rgba(201,255,119,.6);animation:pulse 1.6s infinite}@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(201,255,119,0)}100%{box-shadow:0 0 0 0 rgba(201,255,119,0)}}
.hero{padding:52px 0 34px}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:34px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid rgba(201,255,119,.22);background:rgba(10,11,27,.54);color:var(--lime);font-weight:900;font-size:12px;letter-spacing:.08em}.hero h1{font-size:clamp(44px,7vw,88px);line-height:.92;letter-spacing:-.075em;margin:18px 0 18px}.hero h1 .lime{color:var(--lime);text-shadow:0 0 30px rgba(201,255,119,.16)}.hero p{max-width:620px;color:var(--muted);font-size:17px;line-height:1.75}.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;padding:13px 16px;border-radius:14px;font-weight:900;color:#101018;background:linear-gradient(135deg,var(--lime),#a8ef5e);box-shadow:0 10px 34px rgba(145,217,73,.15)}.btn.secondary{color:white;background:rgba(165,140,255,.14);box-shadow:none;border:1px solid rgba(165,140,255,.25)}
.portrait-card{position:relative;min-height:520px;border-radius:34px;overflow:hidden;background:#111225;border:1px solid rgba(255,255,255,.08);box-shadow:var(--shadow)}.portrait-card img{width:100%;height:100%;min-height:520px;object-fit:cover;object-position:center 38%;display:block;filter:saturate(.9) contrast(1.04)}.portrait-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,6,16,.9),transparent 50%),linear-gradient(135deg,rgba(165,140,255,.13),transparent 45%)}.portrait-note{position:absolute;z-index:2;left:22px;bottom:22px;right:22px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:20px;background:rgba(9,10,25,.58);backdrop-filter:blur(14px)}.portrait-note b{display:block;font-size:20px;margin-bottom:4px}.portrait-note span{color:var(--muted);font-size:13px}.clover-corner{position:absolute;z-index:3;right:16px;top:16px;width:74px;height:74px;filter:drop-shadow(0 8px 24px rgba(0,0,0,.4));opacity:.9}
.section{padding:30px 0 70px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.section-head h2{font-size:28px;letter-spacing:-.04em;margin:0}.section-head p{margin:0;color:var(--muted);font-size:14px}.menu-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.menu-card{min-height:155px;padding:20px;border-radius:24px;background:linear-gradient(160deg,rgba(17,18,41,.86),rgba(10,11,25,.80));border:1px solid rgba(255,255,255,.07);position:relative;overflow:hidden;transition:.22s transform,.22s border-color,.22s background}.menu-card:hover{transform:translateY(-4px);border-color:rgba(201,255,119,.28);background:linear-gradient(160deg,rgba(26,25,57,.92),rgba(10,11,25,.88))}.menu-card .icon{font-size:24px;margin-bottom:26px}.menu-card b{display:block;font-size:18px}.menu-card small{display:block;margin-top:6px;color:#9995b5;line-height:1.45}.menu-card::after{content:"↗";position:absolute;right:18px;top:17px;color:rgba(201,255,119,.65);font-weight:900}.menu-card:nth-child(3n+1){box-shadow:inset 0 0 0 1px rgba(165,140,255,.03)}
.footer{padding:22px 0 36px;color:#817d9b;font-size:12px;text-align:center}
.page-hero{padding:54px 0 22px}.breadcrumb{color:#9894b4;font-size:13px}.page-hero h1{font-size:clamp(38px,6vw,68px);letter-spacing:-.065em;margin:10px 0 8px}.page-hero p{color:var(--muted);max-width:760px;line-height:1.7}.content-grid{display:grid;grid-template-columns:1fr 310px;gap:18px;padding:14px 0 72px}.panel{background:linear-gradient(160deg,rgba(15,16,36,.90),rgba(9,10,24,.86));border:1px solid rgba(255,255,255,.07);border-radius:24px;padding:22px;box-shadow:0 18px 60px rgba(0,0,0,.20)}.panel h2,.panel h3{margin-top:0;letter-spacing:-.035em}.muted{color:var(--muted)}.tag{display:inline-flex;padding:7px 10px;border-radius:999px;background:rgba(201,255,119,.10);border:1px solid rgba(201,255,119,.16);color:#dfffaa;font-weight:800;font-size:12px}.stack{display:grid;gap:12px}.item{padding:16px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.055)}.item b{display:block;margin-bottom:5px}.item p{margin:0;color:var(--muted);line-height:1.65}.profile-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.profile-list .item span{display:block;color:#9894b4;font-size:12px;margin-bottom:5px}.profile-image{width:100%;border-radius:20px;display:block}.quote{font-size:19px;line-height:1.75;color:#eeebff}.rules{counter-reset:r}.rule{display:flex;gap:14px;align-items:flex-start}.rule::before{counter-increment:r;content:counter(r);flex:0 0 34px;height:34px;border-radius:12px;display:grid;place-items:center;background:rgba(165,140,255,.16);color:#d9ceff;font-weight:900}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.dow,.day{border-radius:14px;min-height:74px;padding:9px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.05)}.dow{min-height:auto;text-align:center;color:#9d99b7;font-size:12px;background:transparent;border:0}.day strong{font-size:13px}.day em{display:block;font-style:normal;color:var(--lime);font-size:10px;margin-top:8px;line-height:1.4}.wardrobe{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.wardrobe .item{padding:10px}.wardrobe img{width:100%;aspect-ratio:1/1;border-radius:14px;object-fit:cover}.meme-key{font-size:24px;color:var(--lime);font-weight:950}.install-help{display:none;position:fixed;inset:0;z-index:90;background:rgba(3,4,10,.78);backdrop-filter:blur(8px);padding:18px}.install-help.open{display:grid;place-items:center}.install-card{max-width:430px;width:100%;background:#111226;border:1px solid rgba(255,255,255,.09);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.install-card button{float:right;background:none;border:0;color:white;font-size:22px;cursor:pointer}.install-card ol{color:var(--muted);line-height:1.9;padding-left:20px}
@media(max-width:900px){.nav{height:auto;min-height:68px;flex-wrap:wrap;padding:10px 0}.navlinks{order:3;width:100%;margin-left:0;padding-bottom:4px}.live-pill{margin-left:auto}.hero-grid{grid-template-columns:1fr}.portrait-card,.portrait-card img{min-height:420px}.menu-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.page-side{order:-1}.profile-list{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.wrap{width:min(100% - 22px,1180px)}.brand span:last-child{font-size:14px}.hero{padding-top:32px}.hero h1{font-size:48px}.hero p{font-size:15px}.portrait-card,.portrait-card img{min-height:390px}.portrait-card{border-radius:26px}.menu-grid{grid-template-columns:1fr 1fr;gap:10px}.menu-card{min-height:142px;padding:16px}.menu-card .icon{margin-bottom:20px}.menu-card b{font-size:16px}.content-grid{padding-bottom:44px}.panel{padding:17px;border-radius:20px}.profile-list{grid-template-columns:1fr}.calendar{gap:4px}.day{min-height:62px;padding:6px}.day em{font-size:9px}.wardrobe{grid-template-columns:1fr 1fr}}


/* 행운가나디 — 가끔 꽃밭을 쪼르르 달려가요 */
.lucky-puppy{position:fixed;left:-180px;bottom:18px;width:145px;height:105px;z-index:45;pointer-events:none;opacity:0;filter:drop-shadow(0 12px 14px rgba(0,0,0,.48))}
.lucky-puppy.run{opacity:1;animation:puppy-cross 16s linear forwards}.lucky-puppy.reverse{left:auto;right:-180px;transform:scaleX(-1)}.lucky-puppy.reverse.run{animation:puppy-cross-reverse 16s linear forwards}
.puppy-body{position:absolute;left:12px;bottom:3px;width:120px;height:78px;animation:puppy-hop .52s ease-in-out infinite alternate}.puppy-body i{position:absolute;display:block;background:#090912}.torso{width:72px;height:45px;border-radius:52% 48% 45% 48%;left:43px;top:24px;box-shadow:inset 5px 5px 10px rgba(165,140,255,.12)}.head{width:48px;height:46px;border-radius:48%;left:17px;top:12px;z-index:3}.ear{width:24px;height:35px;top:9px;z-index:4;background:#06060d!important}.ear.left{left:8px;border-radius:80% 25% 70% 30%;transform:rotate(24deg)}.ear.right{left:50px;border-radius:25% 80% 30% 70%;transform:rotate(-22deg)}.eye{position:absolute;top:17px;width:6px;height:7px;border-radius:50%;background:#bdaaff;box-shadow:0 0 7px rgba(189,170,255,.7)}.eye.e1{left:11px}.eye.e2{right:11px}.nose{position:absolute;left:21px;top:29px;width:7px;height:5px;border-radius:60%;background:#b7b1c8}.tail{width:31px;height:14px;border-radius:80% 20% 80% 20%;right:-4px;top:22px;transform-origin:left center;animation:tail-wag .32s ease-in-out infinite alternate}.leg{width:12px;height:28px;border-radius:7px;top:54px}.leg.l1{left:48px;animation:leg-run .44s linear infinite alternate}.leg.l2{left:91px;animation:leg-run .44s linear infinite alternate-reverse}.clover-tag{position:absolute;z-index:6;left:43px;top:43px;color:#c9ff77;font-size:17px;text-shadow:0 0 8px rgba(201,255,119,.7)}.puppy-bubble{position:absolute;left:22px;top:-19px;padding:6px 10px;border-radius:12px;background:rgba(13,14,31,.9);border:1px solid rgba(201,255,119,.25);color:#dfffaa;font-size:11px;font-weight:800;white-space:nowrap;backdrop-filter:blur(8px)}
@keyframes puppy-cross{0%{left:-180px}100%{left:calc(100vw + 40px)}}@keyframes puppy-cross-reverse{0%{right:-180px}100%{right:calc(100vw + 40px)}}@keyframes puppy-hop{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-7px) rotate(1deg)}}@keyframes tail-wag{from{transform:rotate(-18deg)}to{transform:rotate(24deg)}}@keyframes leg-run{from{transform:rotate(28deg)}to{transform:rotate(-28deg)}}
@media(max-width:560px){.lucky-puppy{bottom:8px;transform:scale(.78);transform-origin:left bottom}.lucky-puppy.reverse{transform:scaleX(-1) scale(.78);transform-origin:right bottom}.puppy-bubble{font-size:10px}}
@media(prefers-reduced-motion:reduce){.lucky-puppy{display:none}}


/* 은은하게 떠다니는 클로버 파티클 */
.clover-particles{position:fixed;inset:0;z-index:12;pointer-events:none;overflow:hidden}
.clover-particle{position:absolute;top:-12vh;left:var(--x);font-size:var(--size);line-height:1;color:rgba(201,255,119,var(--alpha));text-shadow:0 0 10px rgba(201,255,119,.22);filter:blur(var(--blur));animation:clover-fall var(--dur) linear var(--delay) infinite;will-change:transform,opacity}
.clover-particle:nth-child(3n){color:rgba(165,140,255,.38);text-shadow:0 0 10px rgba(165,140,255,.18)}
@keyframes clover-fall{
  0%{transform:translate3d(0,-12vh,0) rotate(0deg);opacity:0}
  8%{opacity:1}
  45%{transform:translate3d(var(--drift1),48vh,0) rotate(170deg)}
  88%{opacity:.9}
  100%{transform:translate3d(var(--drift2),116vh,0) rotate(360deg);opacity:0}
}
@media(max-width:560px){.clover-particle:nth-child(n+13){display:none}}
@media(prefers-reduced-motion:reduce){.clover-particles{display:none}}

/* 마우스를 따라 살짝 피어나는 클로버 */
.mouse-clover{position:fixed;z-index:80;pointer-events:none;transform:translate(-50%,-50%);color:#c9ff77;text-shadow:0 0 9px rgba(201,255,119,.7);animation:mouse-clover-pop .85s ease-out forwards;will-change:transform,opacity}
.mouse-clover:nth-of-type(2n){color:#c7b8ff;text-shadow:0 0 9px rgba(165,140,255,.65)}
.mouse-clover-click{animation-duration:.9s}
@keyframes mouse-clover-pop{0%{opacity:0;transform:translate(-50%,-50%) scale(.45) rotate(0)}15%{opacity:.9}100%{opacity:0;transform:translate(calc(-50% + var(--mx)),calc(-50% + var(--my))) scale(1.05) rotate(var(--rot))}}
@media(pointer:coarse){.mouse-clover{display:none}}
@media(prefers-reduced-motion:reduce){.mouse-clover{display:none}}
.admin-mini{margin-left:12px;color:#7e758f;font-size:11px;text-decoration:none;opacity:.55}.admin-mini:hover{opacity:1;color:#c9ff77}

.content-item-image{width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin:0 0 12px;display:block}.repeat-image-tools{grid-column:1/-1;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.repeat-image-tools .upload-preview{width:90px;height:90px}
