:root{--bg:#f8fafc;--bg-card:#ffffff;--bg-card-hover:#fafbff;--card-shadow:0 8px 32px rgba(99, 102, 241, 0.08),0 2px 8px rgba(0, 0, 0, 0.04);--card-border:rgba(99, 102, 241, 0.12);--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--gradient-start:#4f46e5;--gradient-end:#7c3aed;--gradient:linear-gradient(135deg, var(--gradient-start), var(--gradient-end));--input-bg:#f1f5f9;--input-border:#e2e8f0;--input-focus-border:#6366f1;--input-focus-shadow:0 0 0 4px rgba(99, 102, 241, 0.15);--success:#10b981;--success-bg:rgba(16, 185, 129, 0.08);--error:#f43f5e;--error-bg:rgba(244, 63, 94, 0.08);--history-bg:rgba(99, 102, 241, 0.04);--divider:#e2e8f0;--offline-bg:#fef3c7;--offline-text:#92400e;--footer-text:#94a3b8}[data-theme=dark]{--bg:#0f1117;--bg-card:rgba(255, 255, 255, 0.04);--bg-card-hover:rgba(255, 255, 255, 0.06);--card-shadow:0 8px 32px rgba(0, 0, 0, 0.3),0 0 1px rgba(99, 102, 241, 0.2);--card-border:rgba(99, 102, 241, 0.15);--text-primary:#e2e8f0;--text-secondary:#94a3b8;--text-muted:#64748b;--gradient-start:#6366f1;--gradient-end:#a855f7;--input-bg:rgba(255, 255, 255, 0.06);--input-border:rgba(255, 255, 255, 0.1);--input-focus-border:#818cf8;--input-focus-shadow:0 0 0 4px rgba(129, 140, 248, 0.2);--success-bg:rgba(16, 185, 129, 0.12);--error-bg:rgba(244, 63, 94, 0.12);--history-bg:rgba(255, 255, 255, 0.03);--divider:rgba(255, 255, 255, 0.08);--offline-bg:rgba(254, 243, 199, 0.1);--offline-text:#fbbf24;--footer-text:#64748b}*,::after,::before{margin:0;padding:0;box-sizing:border-box}html{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background:var(--bg);color:var(--text-primary);min-height:100vh;display:flex;flex-direction:column;transition:background-color .3s ease,color .3s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.6}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0s!important;transition-duration:0s!important}}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--offline-bg);color:var(--offline-text);text-align:center;padding:.625rem 1rem;font-size:.875rem;font-weight:500;z-index:1000;animation:slideUp .3s ease}.offline-banner[hidden]{display:none}.offline-icon{margin-right:.5rem}header{padding:1.25rem 1.5rem;position:relative;z-index:10}.header-inner{max-width:640px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:var(--text-primary)}.logo-image{width:28px;height:28px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0, 0, 0, .15));transition:transform .2s ease}[data-theme=dark] .logo-image{filter:drop-shadow(0 2px 6px rgba(99, 102, 241, .4))}.logo:hover .logo-image{transform:scale(1.05) rotate(-5deg)}.logo-text{font-size:1.125rem;font-weight:700;letter-spacing:-.02em}.logo-dot{color:var(--gradient-start)}.theme-toggle{width:40px;height:40px;border-radius:12px;border:1px solid var(--input-border);background:var(--input-bg);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.125rem;transition:background .2s,border-color .2s,transform .2s}.theme-toggle:hover{transform:scale(1.05);border-color:var(--input-focus-border)}.theme-toggle:active{transform:scale(.95)}[data-theme=light] .theme-icon-dark{display:none}[data-theme=dark] .theme-icon-light{display:none}.header-actions{display:flex;align-items:center;gap:.75rem}.install-app-btn{padding:.5rem 1rem;font-size:.875rem;font-weight:600;font-family:inherit;color:var(--gradient-start);background:var(--history-bg);border:1px solid var(--card-border);border-radius:12px;cursor:pointer;transition:background .2s,color .2s,transform .2s}.install-app-btn:hover{background:var(--bg-card-hover);transform:translateY(-1px)}.install-app-btn[hidden]{display:none!important}.ios-install-modal{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:1.5rem;animation:fadeIn .3s ease}.ios-install-modal[hidden]{display:none!important}.ios-modal-content{background:var(--bg-card);border:1px solid var(--card-border);border-radius:20px;padding:1.5rem;max-width:320px;width:100%;box-shadow:var(--card-shadow);position:relative;text-align:center;animation:slideUp .3s ease}.ios-modal-close{position:absolute;top:.75rem;right:.75rem;background:0 0;border:none;font-size:1.5rem;color:var(--text-muted);cursor:pointer;line-height:1}.ios-modal-content h3{margin-bottom:1rem;font-size:1.25rem;color:var(--text-primary)}.ios-modal-content p{font-size:.9375rem;color:var(--text-secondary);margin-bottom:1rem}.ios-modal-content ol{text-align:left;margin:0 0 1.25rem 1.5rem;font-size:.9375rem;color:var(--text-primary)}.ios-modal-content li{margin-bottom:.75rem}.ios-modal-tip{font-size:.8125rem!important;color:var(--gradient-start)!important;margin-bottom:0!important;font-weight:500}main{flex:1;display:flex;flex-direction:column;align-items:center;padding:1rem 1.5rem 3rem;max-width:640px;width:100%;margin:0 auto}.hero{text-align:center;padding:2rem 0 2.5rem;animation:fadeIn .6s ease}.brand-name{font-size:clamp(2.5rem, 8vw, 3.5rem);font-weight:800;letter-spacing:-.03em;background:var(--gradient);background-size:200% 200%;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradientShift 4s ease infinite;line-height:1.1}.brand-dot{-webkit-text-fill-color:transparent}.tagline{font-size:1.125rem;color:var(--text-secondary);margin-top:.5rem;font-weight:400}.shorten-card{width:100%;background:var(--bg-card);border:1px solid var(--card-border);border-radius:20px;padding:1.75rem;box-shadow:var(--card-shadow);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:fadeIn .6s ease .15s both;transition:background .3s,border-color .3s,box-shadow .3s}.hp-field{position:absolute;left:-9999px;opacity:0;height:0;width:0;overflow:hidden;pointer-events:none}.input-group{display:flex;gap:.75rem}#url-input{flex:1;padding:.875rem 1rem;font-size:1rem;font-family:inherit;border:2px solid var(--input-border);border-radius:14px;background:var(--input-bg);color:var(--text-primary);outline:0;transition:border-color .2s,box-shadow .2s,background .2s;min-width:0}#url-input::placeholder{color:var(--text-muted)}#url-input:focus{border-color:var(--input-focus-border);box-shadow:var(--input-focus-shadow);background:var(--bg-card)}.shorten-btn{padding:.875rem 1.5rem;font-size:1rem;font-weight:600;font-family:inherit;color:#fff;background:var(--gradient);border:none;border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:.5rem;white-space:nowrap;transition:transform .15s,box-shadow .15s,opacity .2s;position:relative;overflow:hidden}.shorten-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(99,102,241,.35)}.shorten-btn:active{transform:translateY(0)}.shorten-btn:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.result-panel{margin-top:1.5rem;padding:1.25rem;background:var(--success-bg);border:1px solid rgba(16,185,129,.2);border-radius:14px;animation:slideUp .4s ease}.result-panel[hidden]{display:none}.result-header{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--success);font-size:.875rem;margin-bottom:.75rem}.result-check{font-size:1.125rem}.result-url-container{background:var(--bg-card);border:1px solid var(--card-border);border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem}.result-url{font-family:'JetBrains Mono',monospace;font-size:1.125rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;word-break:break-all}.result-url:hover{opacity:.8}.result-original{font-size:.8125rem;color:var(--text-muted);margin-bottom:1rem;display:flex;gap:.375rem;align-items:baseline}.result-label{font-weight:500;flex-shrink:0}.result-original-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-actions{display:flex;gap:.625rem}.action-btn{flex:1;padding:.625rem 1rem;font-size:.875rem;font-weight:600;font-family:inherit;border:1px solid var(--input-border);border-radius:10px;background:var(--bg-card);color:var(--text-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.375rem;transition:background .2s,transform .15s,border-color .2s}.action-btn:hover{background:var(--bg-card-hover);border-color:var(--input-focus-border);transform:translateY(-1px)}.action-btn:active{transform:translateY(0)}.action-btn.copied{background:var(--success-bg);border-color:var(--success);color:var(--success)}.error-toast{margin-top:1rem;padding:.875rem 1rem;background:var(--error-bg);border:1px solid rgba(244,63,94,.2);border-radius:12px;color:var(--error);font-size:.875rem;font-weight:500;display:flex;align-items:center;gap:.5rem;animation:shake .4s ease}.error-toast[hidden]{display:none}.history-section{width:100%;margin-top:2rem;animation:fadeIn .6s ease .3s both}.history-section[hidden]{display:none}.history-toggle{width:100%;padding:.875rem 1rem;background:var(--history-bg);border:1px solid var(--card-border);border-radius:14px;cursor:pointer;display:flex;align-items:center;gap:.5rem;font-family:inherit;font-size:.9375rem;color:var(--text-primary);font-weight:600;transition:background .2s}.history-toggle:hover{background:var(--bg-card-hover)}.history-count{background:var(--gradient);color:#fff;font-size:.75rem;font-weight:700;padding:.125rem .5rem;border-radius:999px;min-width:1.5rem;text-align:center}.history-chevron{margin-left:auto;font-size:.75rem;color:var(--text-muted);transition:transform .3s}.history-toggle.expanded .history-chevron{transform:rotate(180deg)}.history-list{max-height:0;overflow:hidden;transition:max-height .4s ease}.history-list.expanded{max-height:2000px}.history-item{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;border-bottom:1px solid var(--divider);gap:.75rem;animation:fadeIn .3s ease}.history-item:last-child{border-bottom:none}.history-item-info{flex:1;min-width:0}.history-item-short{font-family:'JetBrains Mono',monospace;font-size:.875rem;font-weight:600;color:var(--gradient-start);word-break:break-all}.history-item-original{font-size:.75rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:.125rem}.history-item-date{font-size:.6875rem;color:var(--text-muted);margin-top:.25rem}.history-copy-btn{flex-shrink:0;width:36px;height:36px;border:1px solid var(--input-border);border-radius:8px;background:var(--bg-card);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.875rem;transition:background .2s,transform .15s}.history-copy-btn:hover{background:var(--bg-card-hover);transform:scale(1.05)}.clear-history-btn{width:100%;margin-top:.75rem;padding:.625rem 1rem;font-size:.8125rem;font-weight:500;font-family:inherit;color:var(--error);background:0 0;border:1px solid rgba(244,63,94,.2);border-radius:10px;cursor:pointer;transition:background .2s}.clear-history-btn:hover{background:var(--error-bg)}.clear-history-btn[hidden]{display:none}footer{text-align:center;padding:2rem 1.5rem;margin-top:auto}.footer-tagline{font-size:.875rem;color:var(--footer-text);font-style:italic}.footer-copy{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}@media (max-width:480px){.hero{padding:1.5rem 0 2rem}.brand-name{font-size:2.25rem}.input-group{flex-direction:column}.shorten-btn{justify-content:center;padding:1rem}.shorten-card{padding:1.25rem}.result-actions{flex-direction:column}}a,button,input[type=url]{min-height:44px}