:root{color-scheme:dark;font-family:"DM Sans","Noto Sans KR",sans-serif;background:#090d14;color:#f4f7fb}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:#090d14}
body{background:radial-gradient(circle at 50% -15%,#233149 0,#101722 28%,#090d14 60%);background-attachment:fixed}
.dashboard{width:min(1560px,100%);min-height:100dvh;margin:auto;padding:0 22px 48px}
.topbar{min-height:104px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid #ffffff10}
.brand{display:flex;align-items:center;gap:12px;color:#f2f5f8;text-decoration:none;font-size:15px;font-weight:700;letter-spacing:-.02em}
.brand>span:last-child{font-size:22.5px}
.brand-mark{width:24px;height:24px;display:grid;grid-template-columns:1fr 1fr;gap:3px;transform:rotate(8deg)}
.brand-mark i{border:1px solid #758094;border-radius:3px}
.brand-mark i:first-child{background:#c8ff62;border-color:#c8ff62}
.headline{text-align:center}
.headline p{margin:0 0 6px;color:#768397;font-size:9px;font-weight:700;letter-spacing:.2em}
.headline h1{margin:0;font-size:clamp(17px,1.6vw,23px);font-weight:600;letter-spacing:-.045em}
.status{justify-self:end;display:flex;align-items:center;gap:9px;color:#788497;font-size:9px;font-weight:700;letter-spacing:.14em}
.status span{width:7px;height:7px;border-radius:50%;background:#a9e460;box-shadow:0 0 0 5px #a9e46014,0 0 14px #a9e46066}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;padding-top:42px}
.card{min-width:0;overflow:hidden;display:grid;grid-template-rows:minmax(224px,2fr) minmax(112px,1fr);min-height:360px;border:1px solid #ffffff13;border-radius:18px;color:inherit;background:linear-gradient(145deg,#151c27,#101720);text-decoration:none;box-shadow:0 18px 45px #00000024;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.card:hover,.card:focus-visible{transform:translateY(-5px);border-color:color-mix(in srgb,var(--accent) 60%,#fff 5%);box-shadow:0 24px 55px #00000055,0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent);outline:none}
.visual{position:relative;min-height:0;overflow:hidden;background-image:linear-gradient(180deg,transparent 95%,#111823),var(--preview,url("./service-previews.png"));background-size:100% 100%,var(--preview-size,300% 300%);background-position:center,var(--preview-position,var(--x) var(--y));background-repeat:no-repeat}
.card[style*="--preview:"]{--preview-position:center top!important}
.visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#07101b05 90%,#07101b80 100%)}
.number,.launch{position:absolute;z-index:2;top:16px;border:1px solid #ffffff22;background:#09111ac7;backdrop-filter:blur(8px)}
.number{top:auto;right:16px;bottom:16px;left:auto;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:var(--accent);font-size:10px;font-weight:700}
.launch{right:16px;padding:8px 11px;border-radius:999px;color:#e7edf5;font-size:9px;opacity:0;transform:translateY(-4px);transition:.2s ease}
.launch b{margin-left:4px;color:var(--accent);font-size:12px}
.card:hover .launch,.card:focus-visible .launch{opacity:1;transform:none}
.content{display:flex;flex-direction:column;justify-content:center;padding:22px 24px 25px;border-top:1px solid #ffffff0d}
.meta{display:flex;justify-content:space-between;gap:8px;margin-bottom:12px;color:#6e7a8c;font-size:8px;font-weight:700;letter-spacing:.16em}
.meta span:first-child{color:var(--accent)}
h2{margin:0 0 8px;color:#f5f7fa;font-size:clamp(17px,1.4vw,21px);font-weight:600;letter-spacing:-.035em}
.content p{margin:0;color:#909bab;font-size:11px;line-height:1.65;letter-spacing:-.02em;word-break:keep-all}
.card:hover h2{color:#fff}
@media(max-width:1050px){.topbar{grid-template-columns:1fr auto}
.headline{display:none}
.grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.card{grid-template-rows:minmax(208px,2fr) minmax(104px,1fr);min-height:336px}
}
@media(max-width:680px){.dashboard{padding:0 14px 32px}
.topbar{min-height:72px}
.status{font-size:0}
.grid{grid-template-columns:1fr;gap:33px;padding-top:28px}
.card{grid-template-rows:minmax(188px,2fr) minmax(96px,1fr);min-height:300px;border-radius:15px}
.content{padding:19px 20px 22px}
.meta{margin-bottom:10px}
.content p{font-size:10px}
.launch{display:none}
}
@media(max-width:420px){.card{grid-template-rows:minmax(168px,2fr) minmax(96px,1fr);min-height:280px}
.content p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}
}
