:root{--accent:#306263;--accent-rgb:48, 98, 99;--accent-deep:#1c4e4e;--accent-soft:#3d7a7b;--bg-0:#070f10;--bg-1:#0d191a;--bg-2:#132426;--surface:#142628b8;--surface-solid:#142628;--line:#e8f0f01a;--line-strong:#3062638c;--fg:#e8f0f0;--fg-soft:#e8f0f0ad;--fg-dim:#e8f0f06b;--font-sans:"Noto Sans KR", system-ui, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;font-family:var(--font-sans);color:var(--fg);background:var(--bg-0);-webkit-font-smoothing:antialiased}.hub-loading{min-height:100vh;color:var(--fg-soft);justify-content:center;align-items:center;display:flex}.hub-shell{background:radial-gradient(ellipse 70% 55% at 18% 35%, rgba(var(--accent-rgb), .22), transparent 60%), radial-gradient(ellipse 55% 45% at 88% 80%, rgba(var(--accent-rgb), .14), transparent 55%), linear-gradient(165deg, var(--bg-0) 0%, var(--bg-1) 48%, var(--bg-2) 100%);justify-content:center;align-items:stretch;min-height:100vh;display:flex;position:relative;overflow:hidden}.hub-shell:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff07 1px,#0000 1px),linear-gradient(90deg,#ffffff07 1px,#0000 1px);background-size:56px 56px;animation:32s linear infinite hub-grid-drift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(75% 65% at 40% 40%,#000 15%,#0000 72%);mask-image:radial-gradient(75% 65% at 40% 40%,#000 15%,#0000 72%)}.hub-stage{z-index:1;width:100%;max-width:880px;margin:auto;padding:clamp(1.5rem,4vw,2.5rem);position:relative}.hub-stage--login{grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(1.5rem,4vw,3rem);min-height:min(560px,100vh - 3rem);display:grid}.hub-stage--home{flex-direction:column;gap:clamp(1.5rem,3vw,2rem);padding-top:clamp(2.25rem,7vw,4rem);padding-bottom:2rem;display:flex}.hub-brand{animation:.7s both hub-rise}.hub-mark{letter-spacing:-.05em;color:#f4fafa;word-break:keep-all;font-size:clamp(2.35rem,5.2vw,3.2rem);font-weight:700;line-height:1.22}.hub-tag{color:var(--fg-soft);letter-spacing:-.025em;word-break:keep-all;max-width:13.5em;margin-top:.85rem;font-size:1.02rem;font-weight:400;line-height:1.5}.hub-rule{background:var(--accent);transform-origin:0;width:40px;height:2px;margin-top:1.5rem;animation:.85s .2s both hub-rule}.hub-home-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1.25rem;display:flex}.hub-user{color:var(--fg-soft);letter-spacing:-.015em;flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.84rem;font-weight:500;animation:.7s 80ms both hub-rise;display:flex}.hub-logout{border:1px solid var(--line);color:var(--fg);letter-spacing:-.015em;cursor:pointer;background:0 0;border-radius:4px;padding:.38rem .8rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:border-color .18s,background .18s,color .18s}.hub-logout:hover{border-color:var(--line-strong);background:rgba(var(--accent-rgb), .18)}.hub-panel{background:var(--surface);-webkit-backdrop-filter:blur(18px);border:1px solid var(--line);animation:.65s .12s both hub-rise;box-shadow:inset 0 1px #ffffff0a}.hub-flip{perspective:1400px;width:100%;animation:.65s .12s both hub-rise}.hub-flip-inner{width:100%;transform-style:preserve-3d;transition:transform .55s cubic-bezier(.22,1,.36,1);position:relative}.hub-flip--back .hub-flip-inner{transform:rotateY(180deg)}.hub-flip-face{backface-visibility:hidden;width:100%}.hub-flip-face--front{position:relative}.hub-flip-face--back{animation:none;position:absolute;inset:0;transform:rotateY(180deg)}.hub-panel--form{flex-direction:column;padding:clamp(1.6rem,3.5vw,2.35rem);display:flex}.hub-panel-title{letter-spacing:-.04em;color:#f4fafa;margin-bottom:.35rem;font-size:1.28rem;font-weight:700}.hub-panel-lead{color:var(--fg-soft);letter-spacing:-.02em;margin-bottom:1.45rem;font-size:.9rem;font-weight:400}.hub-field{margin-bottom:1rem;display:block}.hub-field span{letter-spacing:-.01em;color:var(--fg-soft);margin-bottom:.4rem;font-size:.78rem;font-weight:600;display:block}.hub-field input{border:1px solid var(--line);letter-spacing:-.015em;width:100%;min-height:46px;color:var(--fg);background:#070f108c;border-radius:4px;padding:0 14px;font-family:inherit;font-size:15px;font-weight:500;transition:border-color .18s,background .18s,box-shadow .18s;display:block}.hub-field input:hover{border-color:#e8f0f02e}.hub-field input:focus{border-color:var(--accent-soft);box-shadow:0 0 0 3px rgba(var(--accent-rgb), .22);background:#070f10b8;outline:none}.hub-field input:-webkit-autofill{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #102022}.hub-field input:-webkit-autofill:hover{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #102022}.hub-field input:-webkit-autofill:focus{-webkit-text-fill-color:var(--fg);caret-color:var(--fg);transition:background-color 9999s ease-out;box-shadow:inset 0 0 0 1000px #102022}.hub-btn{background:var(--accent);color:#f4fafa;letter-spacing:-.025em;cursor:pointer;border:none;border-radius:4px;width:100%;min-height:48px;margin-top:.45rem;font-family:inherit;font-size:15px;font-weight:700;transition:background .18s,transform .18s}.hub-btn:hover:not(:disabled){background:var(--accent-soft);transform:translateY(-1px)}.hub-btn:active:not(:disabled){transform:translateY(0)}.hub-btn:disabled{opacity:.55;cursor:wait}.hub-btn--ghost{color:var(--fg);border:1px solid var(--line-strong);background:0 0}.hub-btn--ghost:hover:not(:disabled){background:rgba(var(--accent-rgb), .16);transform:translateY(-1px)}.hub-btn-row{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.45rem;display:grid}.hub-btn-row .hub-btn{margin-top:0}.hub-error{color:#f0a8b4;margin:.1rem 0 .7rem;font-size:.85rem}.hub-panel--nav{flex-direction:column;display:flex;overflow:hidden}.hub-svc{color:inherit;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1.25rem;padding:1.2rem 1.45rem;text-decoration:none;transition:background .18s;display:flex}.hub-svc:last-child{border-bottom:none}.hub-svc:hover{background:rgba(var(--accent-rgb), .14)}.hub-svc:focus-visible{outline:2px solid var(--accent-soft);outline-offset:-2px}.hub-svc-text{flex-direction:column;gap:.3rem;min-width:0;display:flex}.hub-svc-title{letter-spacing:-.035em;color:#f4fafa;font-size:1.08rem;font-weight:700}.hub-svc-desc{letter-spacing:-.02em;color:var(--fg-soft);word-break:keep-all;font-size:.88rem;font-weight:400}.hub-svc-go{border-right:1.5px solid var(--accent-soft);border-top:1.5px solid var(--accent-soft);opacity:.75;flex-shrink:0;width:18px;height:18px;transition:transform .18s,opacity .18s;transform:rotate(45deg)translate(-2px)}.hub-svc:hover .hub-svc-go{opacity:1;transform:rotate(45deg)translate(2px)}.hub-foot{text-align:center;color:var(--fg-dim);letter-spacing:-.01em;font-size:.74rem;font-weight:400;animation:.7s .2s both hub-rise}@keyframes hub-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes hub-rule{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes hub-grid-drift{0%{transform:translate(0,0)}to{transform:translate(20px,14px)}}@media (width<=720px){.hub-stage--login{grid-template-columns:1fr;gap:.5rem;min-height:auto;padding:1.15rem}.hub-brand{padding:1.25rem .15rem .75rem}.hub-mark{font-size:clamp(2rem,8vw,2.55rem)}.hub-home-head{flex-direction:column;align-items:flex-start}.hub-stage--home{padding:1.35rem 1.1rem 2rem}}@media (prefers-reduced-motion:reduce){.hub-shell:before,.hub-brand,.hub-panel,.hub-flip,.hub-user,.hub-foot,.hub-rule{animation:none!important}.hub-flip-inner{transition:none}}
