:root{--bg-color:#0f172a;--text-color:#f8fafc;--card-bg:#1e293bb3;--card-border:#ffffff1a;--accent-color:#3b82f6;--accent-glow:#3b82f680;color:var(--text-color);background-color:var(--bg-color);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,system-ui,-apple-system,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}body{background:radial-gradient(circle at 100% 0,#1e293b,#0f172a);justify-content:center;align-items:center;min-height:100vh;display:flex}#root{width:100%}.app-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;display:flex}.ip-card{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--card-border);text-align:center;border-radius:24px;width:100%;max-width:500px;padding:3rem;animation:6s ease-in-out infinite float;box-shadow:0 25px 50px -12px #00000080}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.icon-container{width:80px;height:80px;color:var(--accent-color);box-shadow:0 0 30px var(--accent-glow);background:#3b82f61a;border-radius:50%;justify-content:center;align-items:center;margin-bottom:1.5rem;display:inline-flex}h1{color:#94a3b8;margin-bottom:.5rem;font-size:1.5rem;font-weight:600}.ip-address{letter-spacing:-1px;background:linear-gradient(90deg,#60a5fa,#a78bfa);-webkit-text-fill-color:transparent;word-break:break-all;-webkit-background-clip:text;margin-bottom:2rem;font-size:3rem;font-weight:800}.refresh-button{background:var(--accent-color);color:#fff;cursor:pointer;border:none;border-radius:9999px;align-items:center;gap:.5rem;padding:.75rem 2rem;font-size:1rem;font-weight:600;transition:all .2s;display:inline-flex}.refresh-button:hover{box-shadow:0 10px 25px -5px var(--accent-glow);background:#2563eb;transform:translateY(-2px)}.refresh-button:active{transform:translateY(0)}.refresh-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-message{color:#ef4444;background:#ef44441a;border-radius:8px;margin-bottom:1rem;padding:.5rem;font-size:.875rem}
