:root{color-scheme:dark;--bg:#0e0b14;--bg-soft:#171221;--card:#1d1729;--border:#2c2440;--text:#f3eefb;--muted:#a99fc4;--accent:#ff5e8a;--accent-2:#ffb65e;--accent-grad:linear-gradient(120deg,#ff5e8a,#ffb65e);--header-bg:rgba(14,11,20,.8)}:root[data-theme=light]{color-scheme:light;--bg:#faf6f1;--bg-soft:#f1e9df;--card:#fff;--border:#e8ded0;--text:#241c33;--muted:#6c6480;--accent:#e23e6c;--accent-2:#b9791b;--header-bg:hsla(33,47%,96%,.85)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.site-header{display:flex;align-items:center;justify-content:space-between;padding:18px 28px;border-bottom:1px solid var(--border);position:-webkit-sticky;position:sticky;top:0;background:var(--header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.logo{font-weight:800;font-size:22px;letter-spacing:-.5px}.logo span{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.site-header nav{display:flex;align-items:center;gap:22px;font-weight:600;color:var(--muted)}.site-header nav a:hover{color:var(--text)}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--bg-soft);font-size:16px;line-height:1;cursor:pointer;transition:border-color .15s ease,transform .08s ease}.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}main{min-height:calc(100vh - 140px);max-width:1080px;margin:0 auto;padding:0 20px}.site-footer{text-align:center;color:var(--muted);font-size:13px;padding:28px 20px 40px;border-top:1px solid var(--border);margin-top:40px}.social-links{display:flex;justify-content:center;gap:16px;margin-bottom:14px}.social-links a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--border);color:var(--muted);transition:color .15s ease,border-color .15s ease,transform .08s ease}.social-links a:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes popIn{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}@keyframes floatUp{0%{transform:translateY(0) scale(1);opacity:0}12%{opacity:.55}88%{opacity:.3}to{transform:translateY(-360px) scale(1.15);opacity:0}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes glowPulse{0%,to{opacity:.35}50%{opacity:.6}}.hero{position:relative;overflow:hidden}.hero>:not(.bubbles){position:relative;z-index:1}.hero .prompt-form,.hero .sub,.hero .suggestions,.hero h1{animation:fadeInUp .6s ease both}.hero h1{animation-delay:.05s}.hero .sub{animation-delay:.15s}.hero .prompt-form{animation-delay:.25s}.hero .suggestions{animation-delay:.35s}.hero:before{content:"";top:30px;left:50%;width:480px;height:240px;transform:translateX(-50%);background:radial-gradient(closest-side,rgba(255,94,138,.35),rgba(255,182,94,.12),transparent);filter:blur(44px);animation:glowPulse 6s ease-in-out infinite}.bubbles,.hero:before{position:absolute;z-index:0;pointer-events:none}.bubbles{inset:0;overflow:hidden}.bubble{position:absolute;bottom:-24px;border-radius:50%;background:radial-gradient(circle at 30% 30%,hsla(0,0%,100%,.5),rgba(255,182,94,.18));animation:floatUp linear infinite}.prompt-form button{background-image:linear-gradient(120deg,#ff5e8a,#ffb65e,#ff5e8a);background-size:200% 100%}.prompt-form button:not(:disabled):hover{animation:shimmer 1.4s linear infinite}.cocktail{animation:fadeInUp .5s ease both}.grid .tile{animation:popIn .5s ease both}.grid .tile:first-child{animation-delay:.02s}.grid .tile:nth-child(2){animation-delay:.06s}.grid .tile:nth-child(3){animation-delay:.1s}.grid .tile:nth-child(4){animation-delay:.14s}.grid .tile:nth-child(5){animation-delay:.18s}.grid .tile:nth-child(6){animation-delay:.22s}.grid .tile:nth-child(7){animation-delay:.26s}.grid .tile:nth-child(8){animation-delay:.3s}.tile .thumb img{transition:transform .4s ease}.tile:hover .thumb img{transform:scale(1.06)}.cocktail .photo img{animation:fadeInUp .5s ease both}.permalink-row{text-align:center;margin:-18px 0 34px}.permalink{display:inline-block;color:var(--accent);font-weight:700;font-size:15px;padding:8px 4px;transition:transform .12s ease}.permalink:hover{transform:translateX(3px)}.cheers{position:fixed;top:42%;left:50%;width:0;height:0;z-index:60;pointer-events:none}.cheer{position:absolute;top:0;left:0;font-size:22px;transform:translate(-50%,-50%);animation:cheersPop .95s ease-out forwards}@keyframes cheersPop{0%{transform:translate(-50%,-50%) translate(0) scale(.2);opacity:0}20%{opacity:1}to{transform:translate(-50%,-50%) translate(var(--tx),var(--ty)) scale(1);opacity:0}}.sharecard-row{text-align:center;margin:4px 0 30px}.cheers-row{max-width:880px;margin:0 auto 6px;text-align:center}.cheers-btn{display:inline-flex;align-items:center;gap:9px;background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:11px 22px;font-size:15px;font-weight:700;cursor:pointer;transition:border-color .15s ease,transform .08s ease}.cheers-btn:hover{border-color:var(--accent-2);transform:translateY(-1px)}.cheers-btn.cheered{border-color:var(--accent-2);color:var(--accent-2);cursor:default}.cheers-btn .cheers-glass{font-size:18px;display:inline-block}.cheers-btn.pop .cheers-glass{animation:cheersGlassPop .4s ease}.cheers-btn .cheers-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes cheersGlassPop{0%{transform:scale(1) rotate(0)}40%{transform:scale(1.4) rotate(-14deg)}to{transform:scale(1) rotate(0)}}.gallery-controls{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:12px}.gallery-search{flex:1 1 240px;min-width:200px;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:11px 16px;color:var(--text);font-size:15px;outline:none}.gallery-search::placeholder{color:var(--muted)}.gallery-search:focus{border-color:var(--accent)}.results-count{color:var(--muted);font-size:13px;margin:0 0 16px}.sort-tabs{display:flex;gap:8px;margin:0 0 18px;flex-wrap:wrap}.gallery-controls .sort-tabs{margin:0}.sort-tabs a,.sort-tabs button{padding:7px 15px;border-radius:999px;border:1px solid var(--border);color:var(--muted);font-size:14px;font-weight:600;background:transparent;cursor:pointer;font-family:inherit}.sort-tabs a:hover,.sort-tabs button:hover{color:var(--text)}.sort-tabs a.active,.sort-tabs button.active{background:var(--accent-grad);color:#1a0d12;border-color:transparent}.tile .thumb{position:relative}.thumb-badge,.thumb-cheers{position:absolute;font-size:12px;font-weight:700;padding:3px 9px;border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.thumb-cheers{bottom:8px;left:8px;background:rgba(14,11,20,.72);color:#fff}.thumb-badge{top:8px;right:8px;background:rgba(255,182,94,.92);color:#1a0d12;font-size:11px}:root[data-theme=light] .error{color:#b03052}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:14px;gap:14px;margin-bottom:36px}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:22px 18px;text-align:center}.stat-card .num{font-size:38px;font-weight:800;letter-spacing:-1px;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.stat-card .lbl{color:var(--muted);font-size:13px;margin-top:4px}.stat-section{margin:0 0 40px}.stat-section h3{font-size:16px;margin:0 0 16px}.chart{display:flex;align-items:flex-end;gap:6px;height:160px;padding:8px 0;border-bottom:1px solid var(--border)}.chart .bar-wrap{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}.chart .bar{width:100%;max-width:30px;min-height:3px;border-radius:6px 6px 0 0;background:var(--accent-grad);transition:height .3s ease}.chart .bar-label{font-size:11px;color:var(--muted)}.word-cloud{display:flex;flex-wrap:wrap;gap:8px}.word-chip{background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:7px 14px;font-size:14px;color:var(--text)}.word-chip b{color:var(--accent);margin-left:4px}.loved-list{margin:0;padding:0;list-style:none;counter-reset:loved}.loved-list li{counter-increment:loved;display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.loved-list li:before{content:counter(loved);font-weight:800;color:var(--accent);width:24px}.loved-list li a{font-weight:600;flex:1 1}.loved-list li a:hover{color:var(--accent)}.loved-list .loved-count{color:var(--muted);font-size:13px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}.hero{text-align:center;padding:70px 0 40px}.hero h1{font-size:clamp(34px,6vw,60px);line-height:1.05;margin:0 0 16px;letter-spacing:-1.5px}.hero h1 .grad{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p.sub{color:var(--muted);font-size:clamp(15px,2.2vw,19px);max-width:560px;margin:0 auto 34px}.prompt-form{display:flex;gap:10px;max-width:620px;margin:0 auto;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:10px}.prompt-form input{flex:1 1;background:transparent;border:none;outline:none;color:var(--text);font-size:17px;padding:12px 14px}.prompt-form input::placeholder{color:var(--muted)}.prompt-form button{border:none;border-radius:11px;padding:0 22px;font-weight:700;font-size:16px;color:#1a0d12;background:var(--accent-grad);cursor:pointer;transition:transform .08s ease,opacity .2s ease}.prompt-form button:hover{transform:translateY(-1px)}.prompt-form button:disabled{opacity:.6;cursor:default;transform:none}.suggestions{margin:22px auto 0;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:640px}.suggestions button{background:var(--bg-soft);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer}.suggestions button:hover{color:var(--text);border-color:var(--accent)}.suggestions button{animation:fadeInUp .3s ease both}.suggestions .shuffle-chip{color:var(--accent);border-color:var(--accent);font-weight:700}.suggestions .shuffle-chip:hover{background:var(--accent);color:#1a0d12}.error{max-width:620px;margin:18px auto 0;background:rgba(255,94,138,.12);border:1px solid rgba(255,94,138,.4);color:#ffb9cb;padding:12px 16px;border-radius:12px;font-size:14px}.loading{text-align:center;padding:50px 0;color:var(--muted)}.shaker{font-size:46px;display:inline-block;animation:shake .7s ease-in-out infinite}@keyframes shake{0%,to{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}.cocktail{background:var(--card);border:1px solid var(--border);border-radius:22px;overflow:hidden;margin:36px auto;max-width:880px;display:grid;grid-template-columns:1fr 1fr}@media (max-width:720px){.cocktail{grid-template-columns:1fr}}.cocktail .photo{background:var(--bg-soft);min-height:340px;display:flex;align-items:center;justify-content:center}.cocktail .photo img{width:100%;height:100%;object-fit:cover}.cocktail .photo .placeholder{font-size:64px;opacity:.5}.cocktail .photo .photo-loading{text-align:center;color:var(--muted)}.cocktail .photo .photo-loading .shaker{font-size:48px}.cocktail .photo .photo-loading p{margin:10px 0 0;font-size:13px}.cocktail .body{padding:30px}.cocktail .body h2{margin:0 0 4px;font-size:28px;letter-spacing:-.5px}.cocktail .tagline{color:var(--accent-2);font-style:italic;margin:0 0 14px}.cocktail .desc{color:var(--muted);font-size:14px;line-height:1.55;margin:0 0 18px}.meta{display:flex;gap:18px;font-size:12px;color:var(--muted);margin-bottom:18px;flex-wrap:wrap}.meta b{color:var(--text);font-weight:600}.meta .badge{background:rgba(255,182,94,.16);border:1px solid rgba(255,182,94,.5);color:var(--accent-2);border-radius:999px;padding:2px 10px;font-weight:700}.mode-toggle{display:inline-flex;margin:18px auto 0;background:var(--bg-soft);border:1px solid var(--border);border-radius:999px;padding:4px;gap:4px}.mode-toggle button{border:none;background:transparent;color:var(--muted);font-weight:600;font-size:14px;padding:8px 18px;border-radius:999px;cursor:pointer;transition:color .15s ease,background .15s ease}.mode-toggle button.active{background:var(--accent-grad);color:#1a0d12}.cocktail h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);margin:18px 0 8px}.cocktail ol,.cocktail ul{margin:0;padding-left:18px;line-height:1.6;font-size:14px}.cocktail li{margin-bottom:5px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:50px 0 18px}.section-head h2{font-size:24px;margin:0}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:18px;gap:18px;padding-bottom:30px}.tile{display:block;background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;transition:transform .1s ease,border-color .2s ease;cursor:pointer}.tile:hover{transform:translateY(-3px);border-color:var(--accent)}.tile .thumb{aspect-ratio:1;background:var(--bg-soft);display:flex;align-items:center;justify-content:center;font-size:42px;opacity:.9}.tile .thumb img{width:100%;height:100%;object-fit:cover}.tile .tile-body{padding:14px 16px 18px}.tile .tile-body h3{margin:0 0 4px;font-size:16px}.tile .tile-body p{margin:0;font-size:12px;color:var(--muted)}.empty{color:var(--muted);text-align:center;padding:50px 0}.drink-page{padding:20px 0 40px}.back-link{display:inline-block;color:var(--muted);font-weight:600;font-size:14px;margin:8px 0 4px}.back-link:hover{color:var(--accent)}.share{max-width:880px;margin:0 auto;text-align:center;padding:8px 0 10px}.share-label{display:block;color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:1px;margin-bottom:12px}.share-btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.share-btn{display:inline-flex;align-items:center;background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:9px 18px;font-size:14px;font-weight:600;cursor:pointer;transition:border-color .15s ease,transform .08s ease}.share-btn:hover{border-color:var(--accent);transform:translateY(-1px)}