@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap";:root{--ctp-rosewater:#f5e0dc;--ctp-flamingo:#f2cdcd;--ctp-pink:#f5c2e7;--ctp-mauve:#cba6f7;--ctp-red:#f38ba8;--ctp-maroon:#eba0ac;--ctp-peach:#fab387;--ctp-yellow:#f9e2af;--ctp-green:#a6e3a1;--ctp-teal:#94e2d5;--ctp-sky:#89dceb;--ctp-sapphire:#74c7ec;--ctp-blue:#89b4fa;--ctp-lavender:#b4befe;--ctp-text:#cdd6f4;--ctp-subtext1:#bac2de;--ctp-subtext0:#a6adc8;--ctp-overlay2:#9399b2;--ctp-overlay1:#7f849c;--ctp-overlay0:#6c7086;--ctp-surface2:#585b70;--ctp-surface1:#45475a;--ctp-surface0:#313244;--ctp-base:#1e1e2e;--ctp-mantle:#181825;--ctp-crust:#11111b}*{box-sizing:border-box;margin:0;padding:0}html{scrollbar-gutter:stable}body{background-color:var(--ctp-crust);color:var(--ctp-text);background-image:radial-gradient(at 10% 10%,#cba6f71f 0,#0000 40%),radial-gradient(at 90% 90%,#89b4fa1f 0,#0000 40%);justify-content:center;align-items:flex-start;min-height:100vh;padding:15vh 1.5rem 2rem;font-family:Plus Jakarta Sans,system-ui,-apple-system,sans-serif;display:flex}.container{-webkit-backdrop-filter:blur(20px);background:#1e1e2ed9;border:1px solid #cba6f726;border-radius:24px;width:100%;max-width:600px;padding:2.25rem;animation:.5s cubic-bezier(.16,1,.3,1) containerEntrance;box-shadow:0 20px 40px -15px #0009,0 0 30px #cba6f70d}.header{text-align:center;margin-bottom:2rem}.header h1{letter-spacing:-.02em;background:linear-gradient(135deg, var(--ctp-mauve) 0%, var(--ctp-blue) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:2.5rem;font-weight:800}.header p{color:var(--ctp-subtext0);font-size:.95rem;font-weight:500}.form-group{gap:.75rem;margin-bottom:1.5rem;display:flex}.input-field{background:var(--ctp-mantle);border:2px solid var(--ctp-surface0);color:var(--ctp-text);border-radius:14px;outline:none;flex:1;padding:.875rem 1.25rem;font-family:inherit;font-size:.95rem;transition:all .25s cubic-bezier(.16,1,.3,1)}.input-field:focus{border-color:var(--ctp-mauve);background:var(--ctp-base);box-shadow:0 0 0 4px #cba6f733}.btn-primary{background:linear-gradient(135deg, var(--ctp-mauve) 0%, var(--ctp-blue) 100%);color:var(--ctp-crust);text-align:center;cursor:pointer;white-space:nowrap;border:none;border-radius:14px;min-width:110px;padding:.875rem 1.5rem;font-size:.95rem;font-weight:700;transition:all .3s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;box-shadow:0 4px 15px #cba6f74d}.btn-primary:hover:not(:disabled){transform:translateY(-3px)scale(1.02);box-shadow:0 8px 25px #cba6f780}.btn-primary:active:not(:disabled){transform:translateY(1px)scale(.98);box-shadow:0 2px 10px #cba6f74d}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.result-card{background:var(--ctp-mantle);border:1px solid var(--ctp-surface1);border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;animation:.35s cubic-bezier(.16,1,.3,1) forwards slideDown;display:flex;overflow:hidden}.result-link{color:var(--ctp-sapphire);word-break:break-all;flex:1;min-width:0;font-size:.925rem;font-weight:500;text-decoration:none;transition:color .2s}.result-link:hover{color:var(--ctp-mauve);text-decoration:underline}.btn-copy{background:var(--ctp-surface0);color:var(--ctp-text);border:1px solid var(--ctp-surface1);cursor:pointer;text-align:center;border-radius:8px;flex-shrink:0;min-width:90px;padding:.5rem .85rem;font-size:.825rem;font-weight:600;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s}.btn-copy:hover{background:var(--ctp-surface1);color:var(--ctp-lavender);transform:translateY(-2px)}.btn-copy:active{transform:translateY(1px)scale(.96)}.btn-copy.copied{background:var(--ctp-green);color:var(--ctp-crust);border-color:var(--ctp-green);box-shadow:0 0 15px #a6e3a166}.error-message{border:1px solid var(--ctp-red);color:var(--ctp-red);text-align:center;background:#f38ba826;border-radius:12px;margin-bottom:1.5rem;padding:.875rem 1rem;font-size:.9rem;font-weight:500;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideDown}@keyframes containerEntrance{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cardPop{0%{opacity:0;transform:translateY(12px)scale(.94)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
