@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-vietnamese-500-normal-GOH_-EGq.woff2)format("woff2"),url(/assets/fraunces-vietnamese-500-normal-B-KbxExq.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-ext-500-normal-Z5DV8IzT.woff2)format("woff2"),url(/assets/fraunces-latin-ext-500-normal-BMcFk1Xs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2)format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-vietnamese-600-normal-BjlAJixd.woff2)format("woff2"),url(/assets/fraunces-vietnamese-600-normal-DlAl5EAR.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-ext-600-normal-BtzmzP0X.woff2)format("woff2"),url(/assets/fraunces-latin-ext-600-normal-B0Dy4lqi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fraunces-latin-600-normal-BFCDtZfi.woff2)format("woff2"),url(/assets/fraunces-latin-600-normal-DL5QCzvS.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ground:#f3efe6;--card:#fbf9f4;--text:#1c2333;--text-2:#6b7385;--line:#d9d5ca;--primary:#7a2430;--on-primary:#fbf9f4;--gold:#b8892f;--sea:#dfe3e8;--land:#c9bc9c;--border-geo:#8f8268;--error:#9b2c3a;--scrim:#0a0e188c;--serif:"Fraunces", serif;--sans:-apple-system, BlinkMacSystemFont, system-ui, "PingFang SC", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, monospace;--disabled-bg:#e4e0d6;--disabled-fg:#575c68;--cam-bg:#0b0e15;--cam-ink:#f6f2ea;--cam-scrim:#0000008c;--cam-glass:#ffffff24;--tile-shade:#0b0e15b8;--member-a:#7a2430;--member-b:#4a1219;--member-ink:#f6efe2;--member-shine:#ffffff29;--pmenu-shadow:#1c23332e;--wave-1:#7a2430;--wave-2:#9b3a46;--wave-3:#c98a8f;--av-1:#f1dcdd;--av-1-fg:#7a2430;--av-2:#f2e6c9;--av-2-fg:#7a5a17;--av-3:#dde5ee;--av-3-fg:#34506e;--av-4:#e3e8d3;--av-4-fg:#4d5a28;--av-5:#f3dfd1;--av-5-fg:#8a4a22;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--member-a:#2a3349;--member-b:#0e131d;--pmenu-shadow:#00000080;--wave-1:#5e1a25;--wave-2:#7a2430;--wave-3:#3a2433;--av-1:#4a2029;--av-1-fg:#f2c2c8;--av-2:#4a3b1c;--av-2-fg:#f0d79a;--av-3:#24344a;--av-3-fg:#bfd3ea;--av-4:#2f3a20;--av-4-fg:#d3e0ae;--av-5:#4a2c1d;--av-5-fg:#f2c8a8;--ground:#161c2a;--card:#1f2738;--text:#ece6d8;--text-2:#9aa3b8;--line:#2e3850;--primary:#7a2430;--on-primary:#f3efe6;--gold:#c9a052;--sea:#192133;--land:#2a3349;--border-geo:#b8892f;--error:#e58b95;--disabled-bg:#262e40;--disabled-fg:#939bb0}*{box-sizing:border-box}html,body{overscroll-behavior:none;touch-action:manipulation;-webkit-text-size-adjust:100%;overflow-x:clip}body{background:var(--ground);color:var(--text);font:1rem/1.45 var(--sans);-webkit-tap-highlight-color:transparent;margin:0}:lang(en) h1,:lang(en) h2{font-family:var(--serif);font-weight:500}h1,h2,h3{font-weight:500}strong{font-weight:600}h1,h2{text-wrap:balance;overflow-wrap:break-word;min-width:0}h1{margin:0 0 .5rem;font-size:1.75rem}h2{margin:0 0 .5rem;font-size:1.25rem}a{color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.screen{max-width:36rem;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 1rem) calc(env(safe-area-inset-right) + 1.25rem) calc(env(safe-area-inset-bottom) + 1.5rem) calc(env(safe-area-inset-left) + 1.25rem);margin:0 auto}.btn,.btn-primary,.btn-text{min-width:44px;min-height:44px;font:inherit;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:.5rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--primary);color:var(--on-primary);border:0;padding:0 1.5rem}.btn{background:var(--card);color:var(--text);border:1px solid var(--line);padding:0 1rem}.btn-text{color:var(--text);background:0 0;border:0;padding:0 .5rem}.btn-primary:disabled,.btn:disabled,.btn-text:disabled{background:var(--disabled-bg);color:var(--disabled-fg);cursor:not-allowed;border-color:#0000}.btn-text:disabled{background:0 0}.card{color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:1rem;padding:1rem}.field{border:1px solid var(--line);background:var(--card);width:100%;min-height:44px;color:var(--text);font:inherit;border-radius:10px;padding:.5rem 1rem}.eyebrow{color:var(--text-2);font-size:.875rem}.wordmark{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:2rem;font-weight:500}.grow{flex:1}.error{color:var(--error)}.back{margin-left:-.5rem}.crop{height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex}.crop-bar{align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.crop-bar .back{margin-left:0}.crop-title{margin:0;font-size:1.1rem}.crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:hidden}.crop-stage img{pointer-events:none;max-width:none}.crop-frame{border:2px solid var(--gold);box-shadow:0 0 0 100vmax var(--scrim);pointer-events:none;position:absolute}.crop-handle{pointer-events:auto;touch-action:none;width:44px;height:44px;position:absolute}.crop-handle:after{content:"";border:4px solid var(--gold);width:18px;height:18px;position:absolute}.crop-handle.nw{top:-22px;left:-22px}.crop-handle.nw:after{border-bottom:0;border-right:0;top:20px;left:20px}.crop-handle.ne{top:-22px;right:-22px}.crop-handle.ne:after{border-bottom:0;border-left:0;top:20px;right:20px}.crop-handle.sw{bottom:-22px;left:-22px}.crop-handle.sw:after{border-top:0;border-right:0;bottom:20px;left:20px}.crop-handle.se{bottom:-22px;right:-22px}.crop-handle.se:after{border-top:0;border-left:0;bottom:20px;right:20px}.crop-msg{padding:2rem 1.25rem}.crop-hint{text-align:center;color:var(--text-2);margin:.5rem 1rem 0;font-size:.875rem}.crop-actions{gap:.5rem;padding:.75rem 1rem 1rem;display:flex}.stack{flex-direction:column;gap:1rem;display:flex}.stack-tight{flex-direction:column;gap:.25rem;display:flex}.row{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.muted{color:var(--text-2)}.topbar{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.code{letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;font-size:1.5rem}:root{--style-red:#7a2430;--style-red-fg:#fbf9f4;--style-white:#e9dfb8;--style-white-fg:#3b3420;--style-rose:#f0c6c4;--style-rose-fg:#5a2a2c;--style-sparkling:#e8e2cc;--style-sparkling-fg:#3a3628;--style-dessert:#c98a2e;--style-dessert-fg:#2a1a05;--style-fortified:#5b2a1d;--style-fortified-fg:#f6e6d8;--style-orange:#d9893b;--style-orange-fg:#2c1605}:root[data-theme=dark]{--style-white:#8c7f4f;--style-white-fg:#fbf6e4;--style-rose:#9b5458;--style-rose-fg:#fff0ef;--style-sparkling:#7d7660;--style-sparkling-fg:#fbf6e4;--style-dessert:#a46d1f;--style-dessert-fg:#fff6e6;--style-orange:#a6612a;--style-orange-fg:#fff3e6}.taste{flex-direction:column;gap:.75rem;margin-top:.75rem;display:flex}.taste-row{grid-template-columns:5.5rem 1fr 5.5rem;grid-template-areas:"name name name""lo track hi";align-items:center;gap:.125rem .5rem;display:grid}.taste-name{text-align:center;grid-area:name}.taste-end{color:var(--text-2);font-size:.9rem}.taste-end.lo{text-align:right}.taste-end.strong{color:var(--text);font-weight:600}.taste-track{background:var(--line);border-radius:2px;grid-area:track;height:4px;position:relative}.taste-run{display:block;position:absolute;inset:0}.taste-tick{background:var(--gold);border-radius:4px;width:8px;height:20px;position:absolute;top:-8px;right:-4px}.chip{border-radius:6px;padding:.125rem .5rem;font-size:.8rem;font-weight:600;display:inline-block}.wine-card-name{margin:.5rem 0 .125rem}.wine-card p{margin:0}.wine-card-photo{object-fit:contain;border-radius:.75rem;width:100%;max-height:14rem;margin-bottom:.75rem}.spinner{border:3px solid var(--line);border-top-color:var(--primary);border-radius:50%;width:2rem;height:2rem;margin:2rem auto;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.list-btn{text-align:left;width:100%;min-height:44px;font:inherit;color:inherit;background:var(--card);border:1px solid var(--line);cursor:pointer;border-radius:.75rem;padding:.5rem 1rem;text-decoration:none;display:block}.center{text-align:center}.verdicts{border:0;flex-direction:column;gap:.5rem;margin:0;padding:0;display:flex}.verdicts legend{margin-bottom:.5rem}.verdict-choice{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;min-height:3.5rem;font-size:1.1rem;font-weight:600;display:flex}.verdict-choice input{opacity:0;pointer-events:none;position:absolute}.verdict-choice.on{border:2px solid var(--primary);background:var(--primary);color:var(--on-primary)}.verdict-choice:has(input:focus-visible){outline:2px solid var(--gold);outline-offset:2px}textarea.field{resize:vertical}.compare{flex-direction:column;align-items:stretch;gap:.5rem;display:flex}.compare-card{min-height:7rem;font:inherit;color:var(--text);text-align:center;background:var(--card);border:1px solid var(--line);cursor:pointer;border-top:6px solid;border-radius:1rem;flex-direction:column;justify-content:center;gap:.25rem;padding:1rem;display:flex}.compare-card strong{font-size:1.15rem}.compare-or{text-align:center;color:var(--text-2)}.dialog{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:1.25rem;width:calc(100% - 2rem);max-width:26rem;padding:1.25rem}.dialog::backdrop{background:var(--scrim)}.dialog-actions{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.wine-head{padding:calc(env(safe-area-inset-top) + .75rem) calc(env(safe-area-inset-right) + 1.25rem) 1.5rem calc(env(safe-area-inset-left) + 1.25rem)}.wine-head-inner{max-width:36rem;margin:0 auto}.wine-head .btn-text{color:inherit}.wine-head h1{margin:.25rem 0}.wine-body{min-height:auto;padding-top:1rem}.wine-body h2{margin-top:1.5rem}.verdict-block{grid-template-columns:auto 1fr;align-items:center;gap:.25rem 1rem;display:grid}.verdict-block p{margin:0}.score{font-family:var(--serif);color:var(--primary);font-variant-numeric:tabular-nums;font-size:2.75rem;font-weight:500;line-height:1}:root[data-theme=dark] .score{color:var(--gold)}.note{white-space:pre-wrap;grid-column:1/-1;margin-top:.5rem!important}.facts{grid-template-columns:1fr 1fr;gap:.75rem 1rem;margin:1.25rem 0 0;display:grid}.facts dd{margin:.125rem 0 0}:root{--chart-1:#b8892f;--chart-2:#7a2430;--chart-3:#4f6d8f;--chart-4:#7d8c4e;--chart-5:#c27c4e;--chart-6:#9b958a}:root[data-theme=dark]{--chart-2:#b04a57;--chart-3:#6f8fb3;--chart-4:#9aab66;--chart-6:#6b7385}.donut{align-items:center;gap:1.25rem;margin:1rem 0;display:flex}.donut-ring{flex:none;width:9rem;height:9rem}.donut-total{fill:var(--text);dominant-baseline:middle;font-size:.55rem;font-weight:500}.donut-caption{fill:var(--text-2);font-size:.22rem}.donut-legend{flex-direction:column;flex:1;gap:.5rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}.donut-legend li{align-items:center;gap:.5rem;display:flex}.donut-legend .grow{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.swatch{border-radius:3px;flex:none;width:.75rem;height:.75rem}@media (width<=22rem){.donut{flex-direction:column;align-items:stretch}.donut-ring{align-self:center}}.hint{margin:.5rem 0 0;font-size:.875rem}.rule{border:0;border-top:1px solid var(--line);margin:1.5rem 0 1.25rem}.segmented{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:4px;display:inline-flex;position:relative}.segmented button{min-height:38px;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:0 .75rem;font-size:.875rem}.segmented button[aria-pressed=true]{background:var(--line);color:var(--text);font-weight:600}.auth .auth-card{color:var(--text);background:var(--card);border:2px solid var(--text);box-shadow:4px 4px var(--text);border-radius:6px;margin-top:1.5rem;padding:1.25rem}.auth .auth-title{flex-direction:column;margin:0 0 1rem;font-size:1.4rem;display:flex}.auth .auth-title span{font-family:var(--sans);color:var(--text-2);font-size:1rem;font-weight:400}.auth .field{border:2px solid var(--text);box-shadow:4px 4px var(--text);background:var(--ground);border-radius:6px;font-weight:600}.auth .field:focus{border-color:var(--gold);box-shadow:4px 4px var(--gold);outline:none}.auth .btn-primary,.auth .btn{z-index:0;border:2px solid var(--text);background:var(--card);color:var(--text);box-shadow:4px 4px var(--text);border-radius:6px;transition:color .25s,transform .12s,box-shadow .12s;position:relative;overflow:hidden}.auth .btn-primary:before,.auth .btn:before{content:"";background:var(--text);z-index:-1;transform-origin:0;transition:transform .25s;position:absolute;inset:0;transform:scaleX(0)}.auth .btn-primary:after{content:"»";font-size:1.3em;line-height:1}.auth .btn-primary:not(:disabled):active,.auth .btn:not(:disabled):active{box-shadow:2px 2px var(--text);transform:translate(2px,2px)}.auth .btn-primary:not(:disabled):active:before,.auth .btn:not(:disabled):active:before{transform:scaleX(1)}.auth .btn-primary:not(:disabled):active,.auth .btn:not(:disabled):active{color:var(--ground)}@media (hover:hover){.auth .btn-primary:not(:disabled):hover,.auth .btn:not(:disabled):hover{color:var(--ground)}.auth .btn-primary:not(:disabled):hover:before,.auth .btn:not(:disabled):hover:before{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.auth .btn-primary:before,.auth .btn:before,.auth .btn-primary,.auth .btn{transition:none}}.auth .btn-primary:disabled,.auth .btn:disabled{background:var(--disabled-bg);color:var(--disabled-fg);box-shadow:none;border-color:var(--disabled-fg)}.collection-row{align-items:center;gap:.75rem;display:flex}.collection-row>span:first-child{flex:1;min-width:0}.collection-score{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:1.3rem;font-weight:500}.question{color:var(--text);margin-bottom:.75rem;padding:0;font-size:1.25rem;font-weight:600}:lang(en) .question{font-family:var(--serif)}.verdict-block .eyebrow{color:var(--text);font-size:1rem;font-weight:600}.shell{min-height:100dvh}.appbar{z-index:10;padding:calc(env(safe-area-inset-top) + .5rem) calc(env(safe-area-inset-right) + 1rem) .5rem calc(env(safe-area-inset-left) + 1rem);background:color-mix(in srgb, var(--ground) 86%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;display:flex;position:sticky;top:0}.appbar .wordmark{font-size:1.6rem}.appbar .lang{min-width:44px;padding:0 .75rem}.page{max-width:36rem;padding:1.25rem calc(env(safe-area-inset-right) + 1rem) calc(env(safe-area-inset-bottom) + 6rem) calc(env(safe-area-inset-left) + 1rem);margin:0 auto}.tabbar{z-index:10;padding:.25rem calc(env(safe-area-inset-right) + .5rem) calc(env(safe-area-inset-bottom) + .25rem) calc(env(safe-area-inset-left) + .5rem);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;display:grid;position:fixed;inset:auto 0 0}.tabbar a,.tabbar button{font:inherit;cursor:pointer;min-height:52px;color:var(--text-2);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:.125rem;font-size:.75rem;text-decoration:none;display:flex}.tabbar a.active{color:var(--primary);font-weight:600}:root[data-theme=dark] .tabbar a.active{color:var(--gold)}.home{flex-direction:column;align-items:center;padding-top:1.5rem;display:flex}.tabbar a span,.tabbar button span{font-size:.75rem}.tabbar .scan-btn{width:68px;height:68px;min-height:68px;color:var(--on-primary);background:var(--primary);box-shadow:0 0 0 5px var(--ground), 0 6px 16px var(--scrim);border-radius:50%;justify-content:center;justify-self:center;align-items:center;margin-top:-28px;transition:transform .12s;display:flex}.tabbar .scan-btn:active{transform:scale(.93)}@media (prefers-reduced-motion:reduce){.tabbar .scan-btn{transition:none}.tabbar .scan-btn:active{transform:none}}.home-msg{margin-top:1.5rem}.widgets{gap:.75rem;width:100%;margin-top:1.5rem;display:grid}.widget{color:var(--text);flex-direction:column;gap:.5rem;text-decoration:none;display:flex}.widget-title{color:var(--text-2);font-size:.875rem;font-weight:600;font-family:var(--sans);margin:0}.stats{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.stats>div{flex-direction:column;gap:.125rem;display:flex}.stats>div+div{border-left:1px solid var(--line)}.stats strong{font-family:var(--serif);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:500;line-height:1.1}.stats>div>span{color:var(--text-2);font-size:.875rem}.favourite{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.favourite>span:first-child{flex-direction:column;gap:.125rem;min-width:0;display:flex}.favourite-name{overflow-wrap:break-word;font-size:1.1rem}.favourite-score{font-family:var(--serif);color:var(--primary);font-variant-numeric:tabular-nums;font-size:2.5rem;font-weight:500;line-height:1}:root[data-theme=dark] .favourite-score{color:var(--gold)}.recent{margin:0;padding:0;list-style:none}.recent a{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;min-height:44px;text-decoration:none;display:flex}.recent li:first-child a{border-top:0}.recent-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.glance{gap:.5rem;margin:0;display:grid}.glance div{justify-content:space-between;gap:1rem;display:flex}.glance dt{color:var(--text-2);white-space:nowrap}.glance dd{text-align:right;margin:0;font-weight:600}.widget-more{color:var(--primary);font-size:.875rem;font-weight:600}:root[data-theme=dark] .widget-more{color:var(--gold)}.widgets>*{min-width:0}.recent a>.muted{white-space:nowrap}.camera{background:var(--cam-bg);color:var(--cam-ink);position:fixed;inset:0;overflow:hidden}.camera-feed{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera-top{padding:calc(env(safe-area-inset-top) + .5rem) 1rem 0;display:flex;position:absolute;top:0;left:0;right:0}.camera-close{width:44px;height:44px;color:inherit;background:var(--cam-scrim);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex}.camera-hint,.camera-msg{text-align:center;margin:0;position:absolute;left:1rem;right:1rem}.camera-hint{bottom:calc(env(safe-area-inset-bottom) + 8.5rem);text-shadow:0 1px 4px var(--cam-bg)}.camera-msg{background:var(--cam-scrim);border-radius:.75rem;padding:1rem;top:40%}.camera-bar{padding:1rem 1rem calc(env(safe-area-inset-bottom) + 1.5rem);background:linear-gradient(transparent, var(--cam-scrim));grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;display:grid;position:absolute;bottom:0;left:0;right:0}.camera-side{background:var(--cam-glass);min-width:64px;min-height:64px;color:inherit;font:inherit;cursor:pointer;border:0;border-radius:1rem;flex-direction:column;justify-content:center;justify-self:center;align-items:center;gap:.25rem;font-size:.75rem;display:flex}.camera-shutter{border:4px solid var(--cam-ink);background:var(--cam-ink);width:76px;height:76px;box-shadow:inset 0 0 0 4px var(--cam-bg);cursor:pointer;border-radius:50%;transition:transform .12s}.camera-shutter:active{transform:scale(.92)}.camera-shutter:disabled{background:var(--cam-glass);border-color:var(--cam-glass);cursor:progress}@media (prefers-reduced-motion:reduce){.camera-shutter{transition:none}.camera-shutter:active{transform:none}}.cellar-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin:.5rem 0 1rem;display:flex}.wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.tile{aspect-ratio:3/4;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:1rem;text-decoration:none;display:block;position:relative;overflow:hidden}.tile img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.tile-plain{text-align:center;font-family:var(--serif);overflow-wrap:break-word;justify-content:center;align-items:center;padding:1rem 1rem 3.5rem;font-size:1.35rem;font-weight:500;line-height:1.15;display:flex;position:absolute;inset:0}.tile-score{text-align:center;min-width:2.75rem;font-family:var(--serif);font-variant-numeric:tabular-nums;background:var(--card);color:var(--text);border-radius:8px;padding:.125rem .5rem;font-weight:600;position:absolute;top:.5rem;right:.5rem}.tile-caption{color:inherit;flex-direction:column;padding:2rem .75rem .75rem;display:flex;position:absolute;bottom:0;left:0;right:0}.tile-caption.on-photo{background:linear-gradient(transparent, var(--tile-shade));color:var(--cam-ink)}.tile-caption strong{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.95rem;line-height:1.2;display:-webkit-box;overflow:hidden}.tile-caption span{opacity:.85;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;overflow:hidden}.cellar-section{margin:2rem 0 .75rem}:root{--ease-out:cubic-bezier(.22, 1, .36, 1)}.roll{font-variant-numeric:tabular-nums;justify-content:center;display:inline-flex}.roll-digit{height:1.1em;line-height:1.1em;display:inline-block;overflow:hidden}.roll-strip{transition:transform .9s var(--ease-out);flex-direction:column;display:flex}.roll-strip>span{height:1.1em}.segmented-pill{background:var(--line);transition:transform .32s var(--ease-out);border-radius:6px;position:absolute;top:4px;bottom:4px;left:0}.segmented button{transition:color .2s;position:relative}.segmented button[aria-pressed=true]{background:0 0}.reveal{animation:reveal .52s var(--ease-out) both;animation-delay:calc(var(--i,0) * 70ms)}@keyframes reveal{0%{opacity:0;transform:translateY(12px)}}.taste-run{animation:sweep .9s var(--ease-out) both}@keyframes sweep{0%{transform:translate(-100%)}}.btn,.btn-primary,.list-btn,.tile,.widget,.compare-card,.verdict-choice{transition:transform .14s var(--ease-out)}.btn:not(:disabled):active,.btn-primary:not(:disabled):active,.list-btn:active,.tile:active,a.widget:active,.compare-card:active,.verdict-choice:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.roll-strip,.segmented-pill,.btn,.btn-primary,.list-btn,.tile,.widget,.compare-card,.verdict-choice{transition:none}.reveal,.taste-run{animation:none}.btn:not(:disabled):active,.btn-primary:not(:disabled):active,.list-btn:active,.tile:active,a.widget:active,.compare-card:active,.verdict-choice:active{transform:none}}.icon-btn{width:44px;padding:0}.lucide{flex:none}.widget-title{align-items:center;gap:.25rem;display:inline-flex}.widget-title .lucide{color:var(--text-2)}.widget-more,.fact-label{align-items:center;gap:.25rem;display:inline-flex}.verdict-choice{gap:.5rem}.search-field{display:block;position:relative}.search-field>.lucide{color:var(--text-2);pointer-events:none;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.search-field>.field{padding-left:2.5rem}.pmenu{z-index:20;top:calc(env(safe-area-inset-top) + 4rem);right:calc(env(safe-area-inset-right) + .75rem);overscroll-behavior:contain;background:var(--card);width:min(22rem,100% - 1.5rem);max-height:calc(100dvh - 9rem);color:var(--text);box-shadow:0 16px 40px var(--pmenu-shadow);transform-origin:100% 0;animation:pmenu-in .26s var(--ease-out) both;border-radius:20px;position:fixed;overflow-y:auto}:root[data-theme=dark] .pmenu{box-shadow:none;outline:1px solid var(--line)}@keyframes pmenu-in{0%{opacity:0;transform:translateY(-8px)scale(.94)}}.pmenu-head{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:1rem;display:flex}.pmenu-who{flex-direction:column;min-width:0;display:flex}.pmenu-who strong{font-family:var(--serif);text-overflow:ellipsis;white-space:nowrap;font-size:1.15rem;overflow:hidden}.pmenu-who .muted{font-size:.875rem}.member-card{color:var(--member-ink);background:linear-gradient(135deg, var(--member-a), var(--member-b));box-shadow:inset 0 1px 0 var(--member-shine);border-radius:1rem;margin:1rem;padding:1rem;position:relative;overflow:hidden}.member-top{justify-content:space-between;align-items:center;margin-bottom:2.25rem;display:flex}.member-mark{font-family:var(--serif);font-size:1.4rem;font-weight:500}.member-row{justify-content:space-between;gap:.75rem;margin-bottom:.25rem;font-size:.875rem;display:flex}.member-count{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:1.1rem}.pmenu-theme{background:var(--ground);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:0 1rem 1rem;padding:4px;display:grid}.pmenu-theme button{min-height:40px;color:var(--text-2);font:inherit;cursor:pointer;transition:transform .14s var(--ease-out);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;gap:.25rem;font-size:.875rem;display:flex}.pmenu-theme button[aria-checked=true]{background:var(--card);color:var(--text);box-shadow:0 1px 3px var(--pmenu-shadow);font-weight:600}.pmenu-theme button:active{transform:scale(.96)}.pmenu-items{border-top:1px solid var(--line);flex-direction:column;padding:.5rem;display:flex}.pmenu-items a,.pmenu-items button{min-height:48px;color:var(--text);font:inherit;cursor:pointer;text-align:left;transition:transform .16s var(--ease-out);background:0 0;border:0;border-radius:12px;align-items:center;gap:.75rem;padding:0 .75rem;text-decoration:none;display:flex}.pmenu-items span{flex:1}.pmenu-items .lucide:last-child:not(:first-child){color:var(--text-2)}.pmenu-items a:active,.pmenu-items button:active{transform:scale(.98)}@media (hover:hover){.pmenu-items a:hover,.pmenu-items button:hover{background:var(--ground)}}.pmenu-items .danger{color:var(--error)}@media (prefers-reduced-motion:reduce){.pmenu{animation:none}.pmenu-theme button,.pmenu-items a,.pmenu-items button{transition:none}}.av{flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex;position:relative;overflow:hidden}.av-sm{border-radius:12px;width:32px;height:32px;font-size:.75rem}.av-md{border-radius:16px;width:44px;height:44px;font-size:.9rem}.av-lg{border-radius:18px;width:52px;height:52px;font-size:1rem}.av-xl{width:104px;height:104px;font-size:2.1rem;font-family:var(--serif);border-radius:36px;font-weight:500}.av-fallback{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.av img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .2s;position:absolute;inset:0}.av img.is-loaded{opacity:1}.av-tint-1{background:var(--av-1);color:var(--av-1-fg)}.av-tint-2{background:var(--av-2);color:var(--av-2-fg)}.av-tint-3{background:var(--av-3);color:var(--av-3-fg)}.av-tint-4{background:var(--av-4);color:var(--av-4-fg)}.av-tint-5{background:var(--av-5);color:var(--av-5-fg)}.av-more{background:var(--line);color:var(--text)}.av-group{display:inline-flex}.av-group>.av{box-shadow:0 0 0 2px var(--ground)}.av-group>.av+.av{margin-left:-8px}.avatar-btn{cursor:pointer;transition:transform .14s var(--ease-out);background:0 0;border:0;border-radius:16px;padding:0;display:inline-flex}.avatar-btn:active{transform:scale(.94)}.profile-hero{text-align:center;flex-direction:column;align-items:center;padding:.5rem 0 .25rem;display:flex}.profile-hero .av-xl{box-shadow:0 0 0 4px var(--ground), 0 0 0 5px var(--line);margin-bottom:1rem}.profile-hero h1{margin:0;font-size:2rem}.profile-hero>.muted{margin:.125rem 0 0}.profile-actions{margin-top:1rem}.friends-chip{background:var(--card);border:1px solid var(--line);min-height:44px;color:var(--text);transition:transform .14s var(--ease-out);border-radius:12px;align-items:center;gap:.5rem;padding:.25rem 1rem .25rem .5rem;font-weight:600;text-decoration:none;display:inline-flex}.friends-chip:active{transform:scale(.97)}.friends-chip>.lucide:first-child{color:var(--text-2);margin-left:.5rem}.friends-chip>.lucide:last-child{color:var(--text-2)}.section-title{align-items:center;gap:.5rem;display:flex}.section-title .lucide{color:var(--text-2)}.settings{margin-top:1.5rem}.settings-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.25rem 0 .5rem;display:flex}.settings-action{border:0;border-top:1px solid var(--line);min-height:48px;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform .16s var(--ease-out);background:0 0;align-items:center;gap:.75rem;padding:0 .25rem;display:flex}.settings-action:active{transform:scale(.98)}.settings-action.danger{color:var(--error)}.friends-head{justify-content:space-between;align-items:center;gap:1rem;margin:.25rem 0 1rem;display:flex}.friends-head h1{margin:0}.add-friend{margin-bottom:1.5rem}.people{flex-direction:column;gap:.5rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.person{background:var(--card);border:1px solid var(--line);border-radius:1rem;align-items:center;gap:.5rem;padding:.5rem;display:flex}.person-main{min-width:0;min-height:48px;color:var(--text);flex:1;align-items:center;gap:.75rem;text-decoration:none;display:flex}.person-main>.lucide{color:var(--text-2);margin-left:auto}.person-who{flex-direction:column;min-width:0;display:flex}.person-who strong,.person-who span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-who span{font-size:.875rem}.person-actions{gap:.5rem;display:flex}.icon-pill{width:44px;padding:0}@media (prefers-reduced-motion:reduce){.av img,.avatar-btn,.friends-chip,.settings-action{transition:none}}.empty-state{text-align:center;border:1px dashed var(--line);border-radius:1rem;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;display:flex}.empty-state .lucide{color:var(--text-2)}.empty-state p{margin:0}.lucide{stroke-width:1.5px}.fact-label .lucide,.widget-title .lucide{width:16px;height:16px}.auth{isolation:isolate;position:relative;overflow-x:clip}.auth-backdrop{z-index:-1;pointer-events:none;height:34vh;position:fixed;inset:auto 0 0;overflow:hidden}.wave{width:200%;height:100%;position:absolute;bottom:0;left:0}.wave path{fill:var(--wave-1)}.wave-1{height:62%;animation:14s linear infinite wave-drift}.wave-2{opacity:.7;height:80%;animation:21s linear infinite reverse wave-drift}.wave-2 path{fill:var(--wave-2)}.wave-3{opacity:.45;height:100%;animation:30s linear infinite wave-drift}.wave-3 path{fill:var(--wave-3)}@keyframes wave-drift{to{transform:translate(-50%)}}.auth-hero{justify-content:center;align-items:center;width:168px;height:168px;margin:.5rem auto 0;display:flex;position:relative}.auth-ring{border:1px dashed var(--gold);opacity:.6;border-radius:50%;animation:60s linear infinite ring-turn;position:absolute;inset:0}@keyframes ring-turn{to{transform:rotate(360deg)}}.auth .auth-card{margin-top:1rem}.code-head h2{margin:0 0 .25rem}.code-head p{margin:0}.otp{position:relative}.otp-input{opacity:0;color:#0000;caret-color:#0000;z-index:1;background:0 0;border:0;width:100%;height:100%;font-size:16px;position:absolute;inset:0}.otp-slots{justify-content:center;gap:.5rem;display:flex}.otp-slot{border:2px solid var(--line);background:var(--ground);max-width:48px;height:56px;font-family:var(--serif);font-variant-numeric:tabular-nums;transition:border-color .2s var(--ease-out), background-color .2s var(--ease-out), transform .2s var(--ease-out);border-radius:12px;flex:1 1 0;justify-content:center;align-items:center;font-size:1.6rem;font-weight:500;display:flex;position:relative}.otp-slot.is-filled{border-color:var(--text-2)}.otp-slot.is-active{border-color:var(--primary)}.otp-char{animation:otp-pop .26s var(--ease-out) both}@keyframes otp-pop{0%{opacity:0;transform:translateY(6px)scale(.6)}}.otp-ring{border:2px solid var(--primary);pointer-events:none;animation:otp-ring .42s var(--ease-out) both;border-radius:12px;position:absolute;inset:-2px}@keyframes otp-ring{0%{opacity:.8;transform:scale(.92)}to{opacity:0;transform:scale(1.35)}}.otp-caret{background:var(--primary);width:2px;height:24px;animation:1s step-end infinite otp-blink}@keyframes otp-blink{50%{opacity:0}}.otp-checking .otp-slot{border-color:var(--gold);transform:translateY(-2px)}.otp-checking .otp-slot:nth-child(2){transition-delay:40ms}.otp-checking .otp-slot:nth-child(3){transition-delay:80ms}.otp-checking .otp-slot:nth-child(4){transition-delay:.12s}.otp-checking .otp-slot:nth-child(5){transition-delay:.16s}.otp-checking .otp-slot:nth-child(6){transition-delay:.2s}.otp-error .otp-slots{animation:otp-shake .36s var(--ease-out)}.otp-error .otp-slot.is-filled{border-color:var(--error)}@keyframes otp-shake{20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}.otp-status{text-align:center;font-variant-numeric:tabular-nums;margin:0;font-size:.875rem}@media (prefers-reduced-motion:reduce){.wave,.auth-ring,.otp-char,.otp-ring,.otp-error .otp-slots{animation:none}.otp-ring{display:none}.otp-caret{animation:none}.otp-slot{transition:none}}
