@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/d56dd3c5a095c063-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/1be823236cc55188-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7f3c9b77c57dcbd9-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,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-weight:100 900;font-display:swap;src:url(/_next/static/media/8c7218c08a268490-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/51dc3e8ae5c9e65b-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,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-weight:100 900;font-display:swap;src:url(/_next/static/media/c6c91ee583345af4-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_a58054{font-family:Fraunces,Fraunces Fallback}.__variable_a58054{--font-display:"Fraunces","Fraunces Fallback"}:root{--paper:#FBF4E0;--paper-dark:#F0E5C4;--card:#FFFFFF;--soft:#F5E6C8;--line:#E8DBB8;--ink:#2D1B0E;--ink-2:#5C3A1D;--ink-3:#9A7C5C;--ink-4:#C0A684;--brand:#8B5A2B;--brand-dim:#6B4520;--hot:#E76F51;--gold:#F5C842;--good:#5A8F4A;--warn:#D88500;--danger:#C53030;--c-normal:#6F4E37;--c-dark:#3E2723;--c-yellow:#A0834C;--c-pale:#C4B089;--c-green:#5A5E2E;--c-red:#5C3025;--c-black:#1F1410;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:8px;--r-md:14px;--r-lg:20px;--r-xl:28px;--r-pill:999px;--sh-card:0 1px 0 var(--line),0 8px 16px -8px rgba(45,27,14,0.10);--sh-pop:0 2px 0 rgba(45,27,14,0.08),0 14px 30px -10px rgba(45,27,14,0.18);--sh-cta:0 2px 0 var(--brand-dim),0 12px 24px -6px rgba(139,90,43,0.45);--sh-cta-press:0 0 0 var(--brand-dim),0 4px 12px -3px rgba(139,90,43,0.4);--sh-polaroid:0 2px 0 rgba(45,27,14,0.06),0 30px 60px -20px rgba(45,27,14,0.35);--font-zh:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif;--font-display:var(--font-display,"Fraunces"),Georgia,serif;--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-zh);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizeLegibility}button{font:inherit;color:inherit;background:transparent;border:none;cursor:pointer;padding:0;-webkit-appearance:none}button:disabled{cursor:not-allowed}input,textarea{font:inherit;color:inherit;font-family:inherit}textarea{resize:none}a{color:inherit;text-decoration:none}ul{list-style:none;padding:0;margin:0}img{display:block;max-width:100%}.font-display{font-family:var(--font-display);font-feature-settings:"ss01","ss02";letter-spacing:-.02em}.tabular{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.page{min-height:100vh;min-height:100dvh;position:relative;overflow-x:hidden}@media (min-width:768px){.page{background:radial-gradient(circle at 12% 18%,rgba(245,200,66,.16),transparent 38%),radial-gradient(circle at 88% 78%,rgba(231,111,81,.1),transparent 42%),var(--paper)}}.shell{width:100%;max-width:460px;margin:0 auto;padding:var(--sp-5);padding-top:max(var(--sp-5),env(safe-area-inset-top));padding-bottom:max(var(--sp-6),env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--sp-5)}@media (min-width:768px){.shell{max-width:520px;padding:var(--sp-10) var(--sp-6);gap:var(--sp-6)}}@media (min-width:1100px){.shell{max-width:560px}}.brand{display:flex;align-items:center;justify-content:space-between}.brand-logo{display:inline-flex;align-items:baseline;gap:var(--sp-2)}.brand-emoji{font-size:26px;line-height:1}.brand-word{font-family:var(--font-display);font-style:italic;font-size:22px;letter-spacing:-.03em}.brand-word,.brand-zh{font-weight:900;color:var(--ink)}.brand-zh{font-size:18px;letter-spacing:.05em}.icon-btn{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:8px 12px;border-radius:var(--r-pill);background:var(--soft);color:var(--ink-2);font-weight:600;transition:background .15s,transform .1s;min-height:36px}.icon-btn:hover{background:var(--gold);color:var(--ink)}.icon-btn:active{transform:scale(.97)}.hero{padding:var(--sp-2) 0}.hero-eyebrow{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--hot);margin:0 0 6px}.hero-title{font-size:32px;font-weight:900;line-height:1.05;margin:0;color:var(--ink);letter-spacing:-.03em}@media (min-width:768px){.hero-title{font-size:40px}}.hero-sub{font-size:14px;margin:8px 0 0;color:var(--ink-2);line-height:1.55;max-width:32em}.tabs{display:flex;padding:4px;background:var(--soft);gap:2px}.tab,.tabs{border-radius:var(--r-pill)}.tab{flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;font-size:14px;font-weight:600;color:var(--ink-2);transition:all .18s ease;min-height:40px}.tab[data-active=true]{background:var(--ink);color:var(--paper);box-shadow:0 1px 2px rgba(0,0,0,.18)}.pane{display:flex;flex-direction:column;gap:var(--sp-3)}.pane-hint{font-size:12px;color:var(--ink-3);margin:0}.food-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--sp-2);gap:var(--sp-2)}@media (min-width:768px){.food-grid{grid-template-columns:repeat(4,1fr);gap:var(--sp-3)}}.food-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:14px 8px 12px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);transition:transform .12s,background .18s,border-color .18s,box-shadow .18s;min-height:92px;font-family:inherit;text-align:center}.food-card:hover{border-color:var(--ink-3);transform:translateY(-1px);box-shadow:var(--sh-card)}.food-card:active{transform:scale(.96)}.food-card[data-selected=true]{background:var(--gold);border-color:var(--ink);box-shadow:0 2px 0 var(--ink)}.food-card-emoji{font-size:30px;line-height:1}.food-card-name{font-size:13px;font-weight:700;color:var(--ink);letter-spacing:.02em}.food-card-portion{font-size:10px;color:var(--ink-2);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em;text-transform:uppercase}.describe{position:relative}.describe-textarea{width:100%;padding:var(--sp-4);border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);font-size:15px;line-height:1.55;color:var(--ink);transition:border-color .18s,box-shadow .18s;outline:none;min-height:140px}.describe-textarea:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(45,27,14,.08)}.describe-textarea::placeholder{color:var(--ink-3)}.describe-actions{display:flex;justify-content:flex-end;margin-top:var(--sp-2)}.btn-accent{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;transition:background .18s,transform .1s;min-height:40px}.btn-accent:not(:disabled):hover{background:var(--brand)}.btn-accent:not(:disabled):active{transform:scale(.97)}.btn-accent:disabled{background:var(--ink-4);cursor:not-allowed}.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border-radius:var(--r-pill);background:var(--soft);color:var(--ink-2);font-size:13px;font-weight:600;transition:background .15s;min-height:38px;justify-content:center}.btn-ghost:hover{background:var(--line)}.parsing-spinner{width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.parse-result{margin-top:var(--sp-3);padding:var(--sp-4);border-radius:var(--r-md);background:var(--card);border:1px solid var(--line)}.parse-result-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-3)}.parse-result-head-title{font-size:12px;letter-spacing:.04em}.ai-badge,.parse-result-head-title{font-weight:700;color:var(--ink-2);text-transform:uppercase}.ai-badge{font-size:10px;padding:3px 8px;border-radius:var(--r-pill);background:var(--soft);letter-spacing:.05em}.parse-list{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--sp-3)}.parse-list li{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:6px 0;border-bottom:1px dashed var(--line)}.parse-list li:last-child{border-bottom:none}.parse-list-name{display:inline-flex;align-items:baseline;gap:6px}.parse-list-grams{color:var(--ink-3);font-weight:600;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.parse-actions{display:flex;gap:8px}.parse-actions>*{flex:1 1}.parse-error{font-size:12px;color:var(--danger);margin:0;padding-top:4px}.parse-success{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-radius:var(--r-md);background:linear-gradient(110deg,#E8F5E0,#F2F9EA);border:1px solid #b7dc8e;margin-top:10px;animation:success-in .35s cubic-bezier(.34,1.56,.64,1) both}@keyframes success-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.parse-success-icon{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--good);color:#fff;display:flex;align-items:center;justify-content:center;margin-top:1px}.parse-success-body{display:flex;flex-direction:column;gap:2px;min-width:0}.parse-success-title{font-size:13px;font-weight:700;color:#2D4A1E}.parse-success-list{font-size:12px;color:var(--ink-2);line-height:1.5;word-break:break-all}.intake{padding:var(--sp-4);border-radius:var(--r-lg);background:var(--soft);border:1px solid var(--line)}.intake-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-2)}.intake-title{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase}.intake-count{display:inline-block;padding:1px 8px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:11px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.intake-clear{font-size:12px;color:var(--hot);font-weight:600}.intake-clear:hover{text-decoration:underline}.intake-empty{font-size:13px;color:var(--ink-3);margin:0;padding:4px 0}.intake-items{display:flex;flex-wrap:wrap;gap:6px}.intake-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--r-pill);background:var(--card);border:1px solid var(--line);font-size:13px;color:var(--ink);font-weight:600;transition:all .12s}.intake-chip:hover{background:#FFEFCB;border-color:var(--ink-3)}.intake-chip-grams{color:var(--ink-3);font-size:11px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600}.cta-wrap{display:flex;flex-direction:column;gap:8px;margin-top:var(--sp-2)}.cta,.cta-wrap{align-items:center}.cta{width:100%;padding:18px 24px;border-radius:var(--r-lg);background:var(--brand);color:var(--paper);font-size:18px;font-weight:900;letter-spacing:.3em;box-shadow:var(--sh-cta);transition:transform .12s,box-shadow .18s;display:inline-flex;justify-content:center;gap:10px;min-height:56px;font-family:var(--font-zh)}.cta:not(:disabled){animation:cta-pulse 2.4s ease-in-out infinite}.cta:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 4px 0 var(--brand-dim),0 18px 36px -6px rgba(139,90,43,.55)}.cta:not(:disabled):active{transform:translateY(2px);box-shadow:var(--sh-cta-press)}.cta:disabled{background:var(--ink-4);color:var(--paper);box-shadow:0 1px 0 rgba(0,0,0,.05);cursor:not-allowed;letter-spacing:.2em}@keyframes cta-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.012)}}.disclaimer{text-align:center;font-size:11px;color:var(--ink-3);margin:0;letter-spacing:.04em}.scene{position:fixed;inset:0;z-index:100;background:linear-gradient(180deg,var(--paper) 0,var(--paper-dark) 100%);overflow:hidden;display:flex;align-items:flex-end;justify-content:center;padding:80px 20px 20px;opacity:0;pointer-events:none;transition:opacity .3s}.scene[data-show=true]{opacity:1;pointer-events:auto}.scene-stage{position:relative;width:100%;max-width:360px;height:100%}.scene-shake{animation:shake .35s ease-in-out}@keyframes shake{0%,to{transform:translateX(0)}20%{transform:translateX(-4px)}40%{transform:translateX(5px)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}.toilet{position:absolute;bottom:30px;left:50%;transform:translate(-50%,200%);width:340px;height:auto;transition:transform .7s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 14px 28px rgba(0,0,0,.22))}@media (min-width:768px){.toilet{width:420px}}.poo-falling,.toilet[data-in=true]{transform:translate(-50%)}.poo-falling{position:absolute;left:50%;top:-120px;width:120px;height:120px;opacity:0}.poo-falling[data-drop=true]{animation:drop .95s cubic-bezier(.55,.06,.68,.19) forwards}@keyframes drop{0%{top:-120px;transform:translate(-50%) scaleY(.7) scaleX(1.2);opacity:1}20%{transform:translate(-50%) scaleY(1.2) scaleX(.85);opacity:1}72%{top:calc(100% - 320px);transform:translate(-50%) scaleY(1.05) scaleX(.9);opacity:1}86%{top:calc(100% - 295px);transform:translate(-50%) scaleY(.5) scaleX(1.55);opacity:.5}to{top:calc(100% - 310px);transform:translate(-50%) scaleY(.8) scaleX(1.1);opacity:0}}@media (min-width:768px){@keyframes drop{0%{top:-120px;transform:translate(-50%) scaleY(.7) scaleX(1.2);opacity:1}20%{transform:translate(-50%) scaleY(1.2) scaleX(.85);opacity:1}72%{top:calc(100% - 380px);transform:translate(-50%) scaleY(1.05) scaleX(.9);opacity:1}86%{top:calc(100% - 355px);transform:translate(-50%) scaleY(.5) scaleX(1.55);opacity:.5}to{top:calc(100% - 370px);transform:translate(-50%) scaleY(.8) scaleX(1.1);opacity:0}}.poo-falling{width:140px;height:140px}}.splash-layer{position:absolute;left:50%;bottom:175px;width:240px;height:220px;transform:translate(-50%);opacity:0;pointer-events:none}@media (min-width:768px){.splash-layer{bottom:215px}}.splash-layer[data-go=true]{opacity:1}.splash-crown{position:absolute;left:50%;bottom:14px;transform:translate(-50%) scale(.5);width:200px;height:80px;opacity:0}.splash-layer[data-go=true] .splash-crown{animation:crown .7s cubic-bezier(.18,.85,.32,1.18) forwards}@keyframes crown{0%{opacity:0;transform:translate(-50%,6px) scale(.55)}35%{opacity:1}to{opacity:0;transform:translate(-50%,-22px) scale(1.4)}}.splash-droplet{position:absolute;left:50%;bottom:32px;width:7px;height:11px;background:radial-gradient(circle at 30% 25%,#B8E8F8,#5BB0E0 70%,#4FA5D8);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform:translate(-50%) rotate(var(--angle,0deg)) translateY(-10px);opacity:0;box-shadow:0 0 6px rgba(91,176,224,.5)}.splash-layer[data-go=true] .splash-droplet{animation:droplet .85s cubic-bezier(.25,.6,.4,1) var(--delay,0s) forwards}@keyframes droplet{0%{opacity:0;transform:translate(-50%) rotate(var(--angle,0deg)) translateY(-4px)}20%{opacity:1}60%{opacity:.85;transform:translate(-50%) rotate(var(--angle,0deg)) translateY(-58px)}to{opacity:0;transform:translate(-50%,14px) rotate(var(--angle,0deg)) translateY(-30px)}}.ripple{position:absolute;left:50%;bottom:26px;width:90px;height:22px;border:2px solid #5bb0e0;border-radius:50%;transform:translate(-50%) scale(.4);opacity:0}.ripple-1{border-color:rgba(91,176,224,.85)}.ripple-2{border-color:rgba(91,176,224,.55);border-width:1.5px}.splash-layer[data-go=true] .ripple-1{animation:ripple 1s ease-out forwards}.splash-layer[data-go=true] .ripple-2{animation:ripple 1.4s ease-out .15s forwards}@keyframes ripple{0%{opacity:.85;transform:translate(-50%) scale(.4)}to{opacity:0;transform:translate(-50%) scale(2.6)}}.scene-loading{position:absolute;bottom:-28px;left:50%;transform:translateX(-50%);font-family:var(--font-display);font-style:italic;font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap;animation:scene-loading-pulse 2.2s ease-in-out infinite}@keyframes scene-loading-pulse{0%,to{opacity:.6}50%{opacity:1}}.result{display:flex;flex-direction:column;gap:var(--sp-5)}.result-back{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);font-weight:600;margin-right:auto}.result-back:hover{color:var(--ink)}.result-eyebrow{font-weight:600;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--hot);margin:0}.result-eyebrow,.result-headline{font-family:var(--font-display);font-style:italic;text-align:center}.result-headline{font-weight:900;font-size:32px;letter-spacing:-.02em;margin:4px 0 0;color:var(--ink);line-height:1.1}@media (min-width:768px){.result-headline{font-size:40px}}.polaroid{background:var(--card);padding:10px 10px 22px;border-radius:6px;box-shadow:var(--sh-polaroid);position:relative;transform:rotate(-1deg);max-width:380px;margin:0 auto;width:100%}.polaroid-photo{position:relative;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.55),transparent 38%),radial-gradient(circle at 88% 92%,rgba(231,111,81,.1),transparent 50%),linear-gradient(165deg,#FFF8E7,#FCE9A8 60%,#F5C842);border-radius:4px;padding:10px 12px 14px;overflow:hidden;display:flex;flex-direction:column;gap:10px}.polaroid-photo:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(45,27,14,.04) 1px,transparent 0);background-size:4px 4px;pointer-events:none;mix-blend-mode:multiply;opacity:.6}.polaroid-top{display:flex;justify-content:space-between;align-items:center;z-index:1}.polaroid-eyebrow{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2)}.polaroid-stamp-date{font-family:var(--font-mono);font-size:10px;color:var(--ink-3);letter-spacing:.06em}.polaroid-hero{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-gap:10px;gap:10px;position:relative;z-index:1}.polaroid-num-wrap{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.polaroid-num{font-family:var(--font-display);font-weight:900;font-style:italic;font-size:72px;line-height:.85;color:var(--hot);letter-spacing:-.06em;text-shadow:0 2px 0 rgba(231,111,81,.18)}@media (min-width:768px){.polaroid-num{font-size:84px}}.polaroid-label{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:.04em;white-space:nowrap;padding:3px 9px;background:rgba(255,255,255,.6);border-radius:var(--r-pill)}.polaroid-poo-big{position:relative;width:100%;aspect-ratio:1;max-width:140px;margin-left:auto;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 6px 10px rgba(45,27,14,.18))}.polaroid-poo-big img{width:100%;height:100%;object-fit:contain}.polaroid-poo-big[data-greasy=true]:after{content:"";position:absolute;inset:12% 12% 30% 12%;background:radial-gradient(ellipse at 32% 28%,rgba(255,255,255,.6) 0,transparent 55%);pointer-events:none;border-radius:50%;mix-blend-mode:screen}.trinity{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px;position:relative;z-index:1}.trinity-cell{background:rgba(255,255,255,.78);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--r-sm);padding:7px 6px 8px;display:flex;flex-direction:column;align-items:center;gap:4px;border:1px solid rgba(45,27,14,.08);text-align:center}.trinity-label{font-weight:800;font-size:11px;letter-spacing:.1em;color:var(--ink-2)}.trinity-color{width:22px;height:22px;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.15),inset 0 -3px 6px rgba(0,0,0,.18)}.trinity-dots{display:flex;gap:3px;height:22px;align-items:center}.trinity-dot{width:6px;height:6px;border-radius:50%;background:var(--ink-4);transition:background .2s}.trinity-dot[data-on=true]{background:var(--hot)}.trinity-bars{display:flex;gap:3px;height:22px;align-items:flex-end}.trinity-bar{width:5px;background:var(--ink-4);border-radius:2px}.trinity-bar:first-child{height:7px}.trinity-bar:nth-child(2){height:12px}.trinity-bar:nth-child(3){height:16px}.trinity-bar:nth-child(4){height:21px}.trinity-bar[data-on=true]{background:var(--brand)}.trinity-value{font-size:11px;font-weight:700;color:var(--ink);letter-spacing:.04em;line-height:1.2}.state-badges{display:flex;gap:6px;justify-content:center;position:relative;z-index:1;flex-wrap:wrap}.state-badge{font-size:10px;font-weight:700;padding:3px 9px;border-radius:var(--r-pill);letter-spacing:.04em;border:1px dashed rgba(45,27,14,.25)}.state-badge--greasy{background:rgba(255,220,110,.4);color:#6B4520}.state-badge--floats{background:rgba(91,176,224,.25);color:#1F5E80;border-color:rgba(91,176,224,.4)}.stink{position:absolute;font-size:16px;color:var(--brand);opacity:.55;animation:stink 2.6s ease-in-out infinite}.stink:first-child{left:28%;top:10px;animation-delay:0s}.stink:nth-child(2){left:50%;top:16px;animation-delay:.6s}.stink:nth-child(3){left:70%;top:12px;animation-delay:1.2s}@keyframes stink{0%,to{transform:translateY(0);opacity:.3}50%{transform:translateY(-6px);opacity:.85}}.chip-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.roast{position:relative;z-index:1;padding:8px 11px 10px;background:rgba(255,255,255,.82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:var(--r-sm);font-size:13px;line-height:1.55;color:var(--ink);font-weight:500;border-left:3px solid var(--hot)}.roast p{margin:0}.roast[data-pending=true] p{color:var(--ink-3);font-style:italic}.roast-dots{display:inline-block;margin-left:2px;animation:roast-dots 1.4s ease-in-out infinite}@keyframes roast-dots{0%,to{opacity:.35}50%{opacity:1}}.roast-eyebrow{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--hot);margin-bottom:3px;display:block}.polaroid-stamp{text-align:center;font-family:var(--font-mono);font-size:10px;color:var(--ink-3);margin-top:8px;letter-spacing:.1em}.nutrition{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4);background:var(--card);border-radius:var(--r-lg);border:1px solid var(--line);box-shadow:var(--sh-card)}.nutrition-ring{width:96px;height:96px;flex-shrink:0;position:relative}.nutrition-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.nutrition-ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.nutrition-ring-num{font-family:var(--font-display);font-weight:900;font-size:20px;font-style:italic;color:var(--ink);line-height:1;letter-spacing:-.02em}.nutrition-ring-unit{font-size:9px;color:var(--ink-3);font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}.nutrition-bars{flex:1 1;display:flex;flex-direction:column;gap:8px}.nutrition-row{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;color:var(--ink)}.nutrition-row-label{display:inline-flex;align-items:center;gap:6px}.nutrition-row-num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-2)}.nutrition-fiber{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);display:flex;justify-content:space-between;font-size:12px;color:var(--ink-3)}.why{border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);overflow:hidden}.why-head{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--sp-4);font-size:14px;font-weight:700;color:var(--ink);cursor:pointer}.why-head[aria-expanded=true]{border-bottom:1px solid var(--line)}.why-body{padding:var(--sp-3) var(--sp-4) var(--sp-4);font-size:13px;color:var(--ink-2);line-height:1.6}.why-body ul{margin:0;padding-left:0}.why-body li{position:relative;padding-left:18px;margin-bottom:6px}.why-body li:before{content:"·";position:absolute;left:6px;color:var(--brand);font-weight:900}.warning{padding:10px 14px;border-radius:var(--r-md);background:#FFF1E0;border:1px solid #f5c842;font-size:12px;color:var(--ink);display:flex;gap:8px;align-items:flex-start;line-height:1.5}.result-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 20px;border-radius:var(--r-md);background:var(--ink);color:var(--paper);font-size:14px;font-weight:700;transition:transform .1s,background .18s;min-height:48px}.btn-primary:hover{background:var(--brand)}.btn-primary:active{transform:scale(.98)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:14px 20px;border-radius:var(--r-md);background:var(--gold);color:var(--ink);font-size:14px;font-weight:700;transition:transform .1s,background .18s;min-height:48px}.btn-secondary:hover{background:var(--hot);color:var(--paper)}.btn-secondary:active{transform:scale(.98)}.modal-backdrop{position:fixed;inset:0;background:rgba(45,27,14,.5);z-index:200;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);opacity:0;pointer-events:none;transition:opacity .2s}.modal-backdrop[data-open=true]{opacity:1;pointer-events:auto}.modal{background:var(--card);border-radius:var(--r-lg);padding:var(--sp-6);max-width:400px;width:100%;box-shadow:var(--sh-pop);transform:scale(.95);transition:transform .2s}.modal-backdrop[data-open=true] .modal{transform:scale(1)}.modal-title{font-size:18px;font-weight:800;margin:0 0 var(--sp-3);color:var(--ink)}.modal-body{font-size:14px;line-height:1.6;color:var(--ink-2)}.modal-body p{margin:0 0 8px}.modal-body ol{padding-left:18px;margin:8px 0}.modal-body li{margin-bottom:4px}.modal-close{margin-top:var(--sp-4);width:100%}.toast{position:fixed;left:50%;bottom:80px;transform:translateX(-50%) translateY(20px);padding:10px 18px;border-radius:var(--r-pill);background:var(--ink);color:var(--paper);font-size:13px;font-weight:600;opacity:0;pointer-events:none;z-index:300;transition:opacity .2s,transform .2s;box-shadow:var(--sh-pop)}.toast[data-show=true]{opacity:1;transform:translateX(-50%) translateY(0)}.polaroid-rarity{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;padding:4px 10px 4px 4px;border-radius:var(--r-pill);font-size:11px;font-weight:800;position:relative;z-index:1;max-width:100%}.polaroid-rarity-tier{font-family:var(--font-display);font-style:italic;font-weight:900;font-size:10px;letter-spacing:.22em;padding:2px 8px;border-radius:var(--r-pill);background:rgba(255,255,255,.72);white-space:nowrap}.polaroid-rarity-title{letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}.polaroid-rarity--rare{background:linear-gradient(110deg,#B8E0FF,#DCEAFF);border:1px solid #5bb0e0}.polaroid-rarity--rare .polaroid-rarity-tier{background:#5BB0E0;color:#fff}.polaroid-rarity--epic{background:linear-gradient(110deg,#FFE38A,#FFB766);border:1px solid #c9882f}.polaroid-rarity--epic .polaroid-rarity-tier{background:#C9882F;color:#fff}.polaroid-rarity--legendary{background:linear-gradient(110deg,#FFD06A,#FF8FA3);border:1px solid #e76f51;box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)}.polaroid-rarity--legendary .polaroid-rarity-tier{background:linear-gradient(110deg,#C9882F,#E76F51);color:#fff}.legendary-overlay{position:fixed;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;padding:var(--sp-5);pointer-events:auto}.legendary-bg{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(45,27,14,.55),rgba(45,27,14,.85));-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:legendary-fade .4s ease forwards}@keyframes legendary-fade{0%{opacity:0}to{opacity:1}}.legendary-card{position:relative;background:linear-gradient(160deg,#FFF8E7,#FFE38A 50%,#F5C842);border-radius:var(--r-xl);padding:28px 24px 22px;max-width:360px;width:100%;box-shadow:0 30px 80px -10px rgba(0,0,0,.5),0 0 0 4px #FFFFFF,0 0 0 6px #C9882F,0 0 60px rgba(245,200,66,.7);text-align:center;animation:legendary-pop .6s cubic-bezier(.18,1.02,.32,1.4) both}@keyframes legendary-pop{0%{transform:scale(.5) rotate(-6deg);opacity:0}60%{transform:scale(1.04) rotate(2deg);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}.legendary-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border-radius:50%;background:rgba(45,27,14,.12);display:flex;align-items:center;justify-content:center;color:var(--ink);transition:background .15s}.legendary-close:hover{background:rgba(45,27,14,.25)}.legendary-tier{display:inline-block;font-size:13px;letter-spacing:.4em;color:#fff;padding:5px 16px;border-radius:var(--r-pill);background:linear-gradient(110deg,#C9882F,#E76F51);box-shadow:0 4px 12px -2px rgba(201,136,47,.6);margin-bottom:14px}.legendary-tier,.legendary-title{font-family:var(--font-display);font-style:italic;font-weight:900}.legendary-title{font-size:26px;line-height:1.15;color:var(--ink);letter-spacing:-.01em;margin:0 0 12px}.legendary-blurb{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0 0 22px;padding:0 8px}.legendary-cta{width:100%;padding:13px;border-radius:var(--r-md);background:var(--ink);color:var(--paper);font-size:14px;font-weight:900;letter-spacing:.2em;box-shadow:0 4px 0 var(--brand-dim);transition:transform .1s,box-shadow .18s}.legendary-cta:hover{transform:translateY(-1px)}.legendary-cta:active{transform:translateY(2px);box-shadow:0 0 0 var(--brand-dim)}.firework{position:absolute;width:0;height:0;pointer-events:none}.firework-particle{position:absolute;width:5px;height:5px;border-radius:50%;background:var(--color,gold);box-shadow:0 0 8px var(--color,gold);transform:rotate(var(--angle)) translateY(0);opacity:0;animation:firework-burst 1.4s var(--delay,0s) cubic-bezier(.15,.55,.4,1) forwards}@keyframes firework-burst{0%{transform:rotate(var(--angle)) translateY(-8px);opacity:0}10%{opacity:1}60%{opacity:1;transform:rotate(var(--angle)) translateY(-160px)}to{opacity:0;transform:rotate(var(--angle)) translateY(-220px) scale(.4)}}.confetti-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.confetti-piece{position:absolute;top:-30px;left:var(--x,50%);width:8px;height:14px;background:var(--color,gold);transform:rotate(var(--rot,0deg));animation:confetti-fall 4.2s var(--delay,0s) linear forwards;border-radius:2px}@keyframes confetti-fall{0%{transform:translateY(0) rotate(var(--rot,0deg));opacity:1}90%{opacity:1}to{transform:translateY(110vh) rotate(calc(var(--rot, 0deg) + 2turn));opacity:0}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}.cta{animation:none}.toilet{transition:opacity .3s}.stink{animation:none;opacity:.5}.confetti-piece,.firework-particle{animation:none!important}.legendary-card{animation:legendary-fade .3s ease both}}