@font-face{font-family:Douyin Sans;src:url(/fonts/douyin/DouyinSansBold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}.island-app,.island-dialog,.island-toast{--island-ink:#104c59;--island-teal:#007d89;--island-border:#279b9d;--island-paper:#fffced;--island-mint:#cef3e6;--island-muted:#477478;--island-body:"Noto Sans SC", "Microsoft YaHei", "PingFang SC", sans-serif;--island-display:"Douyin Sans", "Noto Sans SC", sans-serif;color:var(--island-ink);font-family:var(--island-body);letter-spacing:0;font-synthesis:none;-webkit-font-smoothing:antialiased;font-size:16px;font-weight:400;line-height:1.65}.island-app{isolation:isolate;background:#dbf3e8;min-height:100svh;position:relative}.island-app *,.island-dialog *,.island-toast *{box-sizing:border-box;letter-spacing:0}.island-app button,.island-dialog button{border:2px solid var(--island-border);background:var(--island-paper);min-height:46px;color:var(--island-ink);font:inherit;cursor:pointer;box-shadow:none;touch-action:manipulation;border-radius:28px;justify-content:center;align-items:center;gap:10px;padding:11px 20px;font-weight:600;line-height:1.45;transition:background .15s,transform .15s;display:inline-flex}.island-app button:hover:not(:disabled),.island-dialog button:hover:not(:disabled){background:#def8ed}.island-app button:active:not(:disabled){transform:translateY(1px)}.island-app button:disabled,.island-dialog button:disabled{opacity:.5;cursor:not-allowed}.island-app button.primary,.island-dialog button.primary{color:#fff;background:#007d89;border-color:#009e9e}.island-app button.primary:hover:not(:disabled),.island-dialog button.primary:hover:not(:disabled){background:#006c76}.island-app button svg,.island-dialog button svg{flex-shrink:0}.island-app :focus-visible,.island-dialog :focus-visible{outline-offset:4px;outline:3px solid #d38630}.island-app h1,.island-app h2,.island-app h3,.island-app p{margin:0}.island-app h1,.island-app h2,.island-app h3,.island-dialog h2,.island-actions>button,.home-glass>span,.home-camera span,.taste-content legend{font-family:var(--island-display);overflow-wrap:anywhere;font-weight:700}.island-app h1{font-size:28px;font-weight:700;line-height:1.35}.island-app h2{font-size:22px;font-weight:700;line-height:1.4}.island-app small{font-family:var(--island-body);font-size:12px;font-weight:400}.island-background{z-index:-1;pointer-events:none;background-image:url(/art/island-background.webp);background-position:50%;background-size:cover;position:absolute;inset:0}.island-content{width:min(100%,620px);min-height:100svh;padding:22px 22px max(22px, env(safe-area-inset-bottom));flex-direction:column;gap:20px;margin:auto;display:flex}.island-header{text-align:center;grid-template-columns:44px minmax(0,1fr) 44px;justify-content:center;align-items:center;gap:10px 8px;min-height:74px;display:grid;position:relative}.island-header>div{grid-column:2;min-width:0}.island-header p{color:var(--island-muted);margin-top:7px;font-size:14px}.island-app .icon-button,.island-dialog .icon-button{background:#c6f1e4;border:0;border-radius:50%;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:10px}.island-app .back-button{background:#fffced}.brand-wave{color:#08757b}.save-status{white-space:nowrap;background:#c6f3e5;border-radius:18px;grid-column:2;justify-self:center;align-items:center;gap:5px;padding:4px 12px;font-size:12px;display:inline-flex}.island-actions{flex-direction:column;gap:10px;margin-top:auto;padding-top:6px;display:flex}.island-actions>button{width:100%;min-height:54px;font-size:19px;box-shadow:inset 0 1px #ffffff70}.island-actions>p{text-align:center;color:#386c71;font-size:12px}.island-app .text-button{background:0 0;border:0;padding:8px;font-size:14px}.island-app .inline-actions{justify-content:center;gap:12px;display:flex}.inline-actions>button{flex:1}.island-app .empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:210px;padding:30px 18px;display:flex}.section-heading{justify-content:space-between;align-items:center;gap:8px;padding:0 0 14px;display:flex}.section-heading>span{color:#427479;font-size:12px}.section-heading h2 small{white-space:nowrap;padding-left:5px}.island-home{height:100svh;min-height:640px;overflow:clip}.island-home .island-background{background-size:cover;position:absolute}.home-brand{text-align:center;color:#08797b;flex-direction:column;align-items:center;gap:6px;width:100%;display:flex;position:absolute;top:4%}.island-home .home-brand h1{font-size:36px}.island-home button.home-settings{z-index:3;color:#086c70;background:#fffceded;border-color:#48aaa2;border-radius:50%;width:48px;height:48px;min-height:48px;padding:0;position:absolute;top:4%;right:max(16px,50% - 310px);box-shadow:0 5px 18px #104c5922}.island-home button.home-settings[data-configured=true]:after{content:"";border:2px solid var(--island-paper);background:#159b76;border-radius:50%;width:9px;height:9px;position:absolute;bottom:2px;right:2px}.ai-settings-dialog .ai-settings-note{color:#477478;font-size:13px}.ai-settings-dialog button.ai-settings-preset{background:#e4f6ee;width:100%}.home-objects{width:min(100%,520px);height:45%;position:absolute;top:35%;left:50%;transform:translate(-50%)}.island-home button.home-glass{background:0 0;border:0;width:58%;height:100%;padding:0;display:block;position:absolute;top:0;left:32%}.home-glass .glass-scene{height:100%}.home-glass>span{flex-direction:column;align-items:center;gap:5px;font-size:22px;display:flex;position:absolute;top:47%;left:15%;right:15%}.home-glass>span>svg{color:#158f94;stroke-width:3.2px;background:#f8ffe744;border-radius:50%;width:60px;height:60px;padding:14px}.island-home .home-camera{pointer-events:none;background:0 0;border:0;width:40%;height:auto;padding:0;transition:left .7s cubic-bezier(.22,1,.36,1) .15s,bottom .7s cubic-bezier(.22,1,.36,1) .15s,width .7s cubic-bezier(.22,1,.36,1) .15s,transform .7s cubic-bezier(.22,1,.36,1) .15s,opacity .2s;display:block;position:absolute;bottom:0;left:1%}.home-camera img{width:100%;height:auto;display:block}.island-home:not(.is-capturing) button.home-glass:hover:not(:disabled){background:0 0;transform:translateY(-5px)}.home-flow{text-align:center;width:min(74%,400px);transition:transform .38s ease-in,opacity .3s ease-in;position:absolute;bottom:3%;left:50%;transform:translate(-50%)}.island-home button.home-glass{transform-origin:bottom;transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .35s .35s}.is-capturing .home-flow{opacity:0;pointer-events:none;transform:translate(-50%,calc(100% + 80px))}.is-capturing button.home-glass{opacity:0;pointer-events:none;transform:translate(max(130%,50vw))}.island-home.is-capturing .home-camera{width:min(62%,280px);bottom:max(10%,230px - max(128px,20svh));left:50%;transform:translate(-50%)}.island-home.is-capturing.has-photo .home-camera{opacity:0}.island-home.is-capturing .home-brand h1{font-size:28px}.is-capturing .home-brand{padding:0 60px}.home-brand p{font-size:14px}.island-home .entry-back{background:var(--island-paper);z-index:2;position:absolute;top:4%;left:max(16px,50% - 310px)}.entry-capture{pointer-events:none;position:absolute;inset:0}.entry-capture-actions{bottom:max(24px, env(safe-area-inset-bottom));pointer-events:auto;width:min(100% - 40px,420px);animation:.35s ease-out .7s both entry-controls-in;position:absolute;left:50%;transform:translate(-50%)}.entry-photo{aspect-ratio:4/3;border-radius:20px;width:min(65%,340px);position:absolute;top:28%;left:50%;overflow:hidden;transform:translate(-50%)}.entry-photo.has-image{background:var(--island-paper);border:3px solid var(--island-border)}.entry-photo img{object-fit:contain}.entry-photo .capture-loading{border-radius:20px}.entry-preparing{text-align:center;width:100%;position:absolute;bottom:12%}@keyframes entry-controls-in{0%{opacity:0;visibility:hidden;translate:0 24px}to{opacity:1;visibility:visible;translate:0}}.home-flow>div{background:#fff9df;border-radius:50px;justify-content:space-evenly;align-items:center;gap:15px;padding:22px;display:flex}.home-flow svg{color:#167d7d;width:30px;height:30px}.home-flow p{margin-top:12px;font-size:13px}.home-error{position:absolute;bottom:5px;left:20px;right:20px}.capture-page .island-content{justify-content:space-between}.capture-preview{aspect-ratio:1.13;background:#effaeecc;border:3px solid #229b9c;border-radius:26px;width:100%;margin:8vh auto 5vh;position:relative;overflow:hidden}.capture-preview>img{object-fit:contain}.camera-illustration{flex-direction:column;justify-content:center;align-items:center;height:100%;display:flex}.camera-illustration img{object-fit:contain;width:58%;height:auto;max-height:80%}.camera-illustration span{color:#4d7777;font-size:12px}.capture-loading{background:#effaeee6;place-items:center;display:grid;position:absolute;inset:0}.confirm-page .island-content{gap:14px;height:100svh;min-height:600px}.confirm-page .island-header{flex-shrink:0;margin-bottom:min(15vh,140px)}.confirm-panel{border:2px solid var(--island-border);background:#d5f5e9;border-radius:24px;flex-direction:column;flex:1;min-height:0;padding:18px 14px 10px;display:flex}.drink-list{overscroll-behavior:contain;scrollbar-color:#39a5a0 #c2ede0;min-height:0;padding-right:6px;overflow-y:auto}.confirm-row{background:#fffced;border:2px solid #289697;border-radius:12px;grid-template-columns:30px 1fr 44px;align-items:center;gap:10px;min-height:68px;margin-bottom:10px;padding:10px;display:grid}.confirm-row strong{-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:18px;display:-webkit-box;overflow:hidden}.confirm-row small{display:block}.row-number{color:#367e83;font-weight:700}.island-app .question-button{color:#9b531b;background:0 0;border:0;min-height:30px;padding:2px 0;font-size:12px;text-decoration:underline}.confirm-page .island-actions{flex-shrink:0}.selected-summary{text-align:center;margin:40px 0 0!important}.recommendation-grid{grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;display:grid}.recommendation-grid>.empty-state{border:2px solid var(--island-border);background:#fffceded;border-radius:8px;grid-column:1/-1;min-height:310px}.empty-state p{max-width:32ch;color:var(--island-muted);font-size:14px}.island-app .recommendation-card{border-radius:8px;flex-direction:column;padding:16px;display:flex}.recommendation-card span{font-size:13px;font-weight:400}.recommendation-card[aria-pressed=true]{background:#b7efdd;border-color:#007c7e}.workbench-layout,.result-layout{gap:18px;display:grid}.workbench-page .island-content{gap:12px}.workbench-page .island-background,.result-page .island-background,.taste-page .island-background{background-image:url(/art/mixing-background.webp);background-position:50% 40%;background-size:100% 100%}.mix-preview{text-align:center}.cup-selector{background:#fffcebe8;border:1px solid #7ecdc0;border-radius:16px;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px;display:grid}.island-app .cup-selector button{background:0 0;border:2px solid #0000;border-radius:10px;flex-direction:column;gap:2px;padding:8px 4px;display:flex}.island-app .cup-selector button[aria-pressed=true]{background:#c7f5e9;border:2px solid #079c9e}.mini-cup{background:#d4f4eb;border:2px solid #166776;border-radius:2px 2px 5px 5px;width:23px;height:32px;margin:2px 0 4px;display:block}.mini-cup-tall_400{width:20px;height:38px;margin-top:0;margin-bottom:0}.mini-cup-short_200{width:28px;height:25px;margin-top:5px;margin-bottom:8px}.glass-scene{width:100%;height:260px;position:relative}.mix-glass{width:100%;height:100%;display:block;overflow:visible}.pour-caption{font-size:12px;position:absolute;bottom:-3px;left:0;right:0}.pour-stream{stroke-linecap:round}@keyframes pour{to{stroke-dashoffset:-30px}}.volume-readout{font-variant-numeric:tabular-nums;text-align:center;font-size:23px;font-weight:700}.volume-readout span{font-size:18px}.preview-note{text-align:center;color:#426c6c;font-size:12px}.mix-preview meter{width:70%;height:16px}.mix-preview meter::-webkit-meter-bar{background:#d0f2e6;border:2px solid #fff;border-radius:15px}.mix-preview meter::-webkit-meter-optimum-value{background:#00979b}.mix-controls{border:2px solid var(--island-border);background:#dbfaefee;border-radius:22px;min-width:0;padding:18px}.portion-list{scrollbar-color:#39a5a0 #c2ede0;max-height:350px;padding-right:4px;overflow-y:auto}.portion-row{background:#fffced;border:1px solid #a9dace;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 9px;margin-bottom:8px;padding:12px 10px;display:grid}.portion-row>label{overflow-wrap:anywhere;font-size:17px;font-weight:700}.portion-row>label small{color:#54857e;display:block}.amount-controls{align-items:center;gap:3px;display:flex}.island-app .amount-controls .icon-button{background:#d0f6e9;flex-basis:32px;width:32px;height:44px;min-height:44px;padding:7px}.island-app input[type=number]{color:#104c59;width:57px;min-width:0;min-height:44px;font:inherit;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;background:#fff;border:1px solid #95cec3;border-radius:6px;padding:4px;font-weight:600}.island-app input::-webkit-inner-spin-button{-webkit-appearance:none}.amount-controls>span{font-size:12px}.island-app input[type=range]{accent-color:#00999d;cursor:pointer;appearance:none;width:100%;min-width:0;height:30px;box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}.island-app input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, #159c9c var(--range-fill,0%), #c9e9df var(--range-fill,0%));border-radius:8px;height:9px}.island-app input[type=range]::-moz-range-track{background:#c9e9df;border-radius:8px;height:9px}.island-app input[type=range]::-moz-range-progress{background:#159c9c;border-radius:8px;height:9px}.island-app input[type=range]::-webkit-slider-thumb{appearance:none;background:#f8fff3;border:2px solid #0b898e;border-radius:50%;width:24px;height:24px;margin-top:-7.5px;box-shadow:0 2px #147d7a28}.island-app input[type=range]::-moz-range-thumb{background:#f8fff3;border:2px solid #0b898e;border-radius:50%;width:20px;height:20px}.portion-slider{grid-column:1}.portion-percent{font-variant-numeric:tabular-nums;justify-self:end;font-size:13px;font-weight:700}.preference-panel{background:#fffced;border:1px solid #85c8bd;border-radius:8px;margin-top:12px;padding:12px}.preference-panel summary{cursor:pointer;justify-content:space-between;align-items:center;font-weight:600;display:flex}.preference-panel summary::-webkit-details-marker{display:none}.preference-panel[open] summary svg{transform:rotate(180deg)}.preference-row{grid-template-columns:65px 1fr;align-items:center;gap:12px;display:grid}.island-app .capacity-warning,.save-error{color:#7c4c18;background:#fff1d0;border-radius:8px;margin-top:8px;padding:12px;font-size:14px}.capacity-warning button{margin-top:8px;padding:7px 12px;font-size:13px}.result-visual{text-align:center}.result-visual .glass-scene{height:335px}.result-visual>.icon-button{margin-top:12px}.result-information{border:2px solid var(--island-border);background:#fffceded;border-radius:20px;padding:22px}.result-information>section{border-bottom:1px solid #a6d7c8;margin-bottom:18px;padding:0 0 20px}.result-information h2{margin-bottom:12px}.result-information p{margin-top:10px}.flavor-tags{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.flavor-tags>span{background:#bef2df;border-radius:20px;padding:5px 16px;font-weight:650}.result-portions{max-height:270px;overflow-y:auto}.result-portions>div{font-variant-numeric:tabular-nums;border-bottom:1px solid #c5e6d9;grid-template-columns:minmax(0,1fr) 80px 65px;align-items:center;gap:7px;padding:12px 0;display:grid}.result-portions>div>span:first-child{overflow-wrap:anywhere}.result-portions>div>span:last-child{text-align:right}.missing-info{color:#527775;margin:14px 0;font-size:13px}.island-app summary{cursor:pointer;min-height:34px}.taste-page .island-content{max-width:620px}.taste-content{border:2px solid var(--island-border);background:#fffcedef;border-radius:22px;margin-top:35px;padding:24px}.taste-preview{text-align:center}.taste-preview .glass-scene{height:200px}.taste-content.taste-feedback-content{background:0 0;border:0;border-radius:0;margin-top:0;padding:0}.taste-feedback-content fieldset,.taste-feedback-content details{border:2px solid var(--island-border);background:var(--island-paper);border-radius:16px;min-width:0;margin:0 0 12px;padding:16px}.taste-content.taste-feedback-content fieldset{border:2px solid var(--island-border);margin-bottom:12px;padding:16px}.taste-feedback-content legend{float:left;width:100%;font-size:21px}.taste-feedback-content .segmented{clear:both}.taste-content>h2:not(:first-child){margin-top:24px}.taste-content>h2+p{margin-top:12px}.taste-content summary{font-weight:600}.taste-content fieldset,.island-dialog fieldset{border:0;margin:0 0 24px;padding:0}.taste-content legend,.island-dialog legend{margin-bottom:12px;font-weight:700}.segmented{gap:6px;display:flex}.island-app .segmented button,.island-dialog .segmented button{border:1px solid #b4d7ca;border-radius:8px;flex:1;min-width:0;padding:10px 4px;font-size:14px}.island-app .segmented button[aria-pressed=true],.island-dialog .segmented button[aria-pressed=true]{background:var(--island-teal);border-color:var(--island-teal);color:#fff;box-shadow:inset 0 0 0 1px #ffffff40}.taste-content details{margin:20px 0 0}.island-app textarea,.island-app select,.island-dialog input:not([type=checkbox]){color:#104c59;width:100%;max-width:100%;font:inherit;background:#fff;border:1px solid #8fc6b9;border-radius:8px;min-height:46px;padding:12px}.island-app textarea{resize:vertical;min-height:95px}.island-app select{white-space:normal;font-size:13px}.modal-backdrop{z-index:40;background:#123f4166;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.island-dialog{color:#104c59;border:2px solid var(--island-border);background:#fffced;border-radius:18px;flex-direction:column;gap:16px;width:min(100%,440px);max-height:90dvh;padding:22px;display:flex;overflow:auto;box-shadow:0 16px 48px #104c5930}.island-dialog header{justify-content:space-between;align-items:center;display:flex}.island-dialog h2{margin:0;font-size:22px}.island-dialog p{margin:0}.island-app :is(input,textarea,select):focus,.island-dialog :is(input,textarea,select):focus{border-color:var(--island-teal);box-shadow:0 0 0 3px #23b3a329}.island-app input[type=range]:focus{box-shadow:none}.island-dialog label{flex-direction:column;gap:8px;display:flex}.island-dialog fieldset{margin-bottom:0}.island-dialog .check-line,.island-app .check-line{flex-direction:row;align-items:center;gap:10px;margin:12px 0;font-size:14px;display:flex}.island-app input[type=checkbox],.island-dialog input[type=checkbox]{accent-color:#007d89;width:18px;height:18px}.island-toast{z-index:60;color:#6f391b;background:#fff8e8;border:1px solid #d09960;border-radius:10px;align-items:center;gap:12px;width:min(100% - 28px,580px);max-height:30dvh;padding:14px 18px;font-size:14px;display:flex;position:fixed;top:92px;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 6px 25px #123c3930}.island-toast span{flex:1}.island-toast button{cursor:pointer;width:44px;height:44px;color:inherit;background:0 0;border:0;flex:0 0 44px;place-items:center;font-size:24px;display:grid}@media (min-width:768px){.island-background{background-size:100%}.island-home .island-background{background-color:#c7eddc;background-repeat:no-repeat;background-size:auto 140%}.home-objects{width:680px}.home-brand{top:5%}.island-home .home-brand h1{font-size:44px}.home-flow{bottom:2%}.capture-preview{margin:5vh auto 2vh}}@media (min-width:1024px){.workbench-page .island-background,.result-page .island-background,.taste-page .island-background{background-size:cover}.workbench-page .island-content,.result-page .island-content{width:min(100% - 80px,1120px);padding-top:28px}.workbench-page .island-header,.result-page .island-header{margin-bottom:18px}.workbench-layout,.result-layout{grid-template-columns:1fr 1.1fr;align-items:start;gap:48px}.mix-preview{padding-top:5px}.glass-scene{height:345px}.result-visual .glass-scene{height:425px}.mix-controls{padding:24px}.portion-list{max-height:325px}.mix-controls .island-actions{margin-top:16px}}@media (max-width:400px){.island-content{padding:16px 14px max(16px, env(safe-area-inset-bottom));gap:14px}.island-app h1{font-size:23px}.island-app h2{font-size:19px}.island-header{gap:8px}.save-status{padding:6px;font-size:11px}.workbench-page .island-header h1{font-size:21px}.mix-controls{padding:12px}.section-heading .text-button{gap:4px;font-size:12px}.portion-row{gap:6px;padding:9px 7px}.portion-row>label{font-size:15px}.island-app .amount-controls .icon-button{flex-basis:28px;width:28px;padding:5px}.island-app input[type=number]{width:48px}.taste-content{padding:18px 12px}}.island-app.island-scene,.island-app.island-home{height:100dvh;min-height:0;overflow:clip}.island-scene .island-background{background-image:url(/art/island-background.webp);background-position:50%;background-size:cover}.island-scene .island-content{--sheet-height:min(53dvh, 450px);grid-template-rows:auto minmax(0, 1fr) var(--sheet-height);width:min(100%,740px);max-width:none;height:100%;min-height:0;padding:12px 16px max(12px, env(safe-area-inset-bottom));gap:10px;transition:grid-template-rows .5s cubic-bezier(.22,1,.36,1);display:grid}.island-scene[data-panel-collapsed=true] .island-content{--sheet-height:98px}.island-scene[data-panel-collapsed=true][data-has-peek=true] .island-content{--sheet-height:186px}.island-scene .island-header{row-gap:3px;min-height:54px;margin:0}.island-scene .island-header h1{font-size:24px}.island-scene .island-header p{margin-top:3px;font-size:12px}.island-scene .save-status{padding:2px 10px}.scene-stage{min-width:0;min-height:0;animation:.75s cubic-bezier(.22,1,.36,1) both stage-enter;position:relative}.scene-stage:before{content:"";pointer-events:none;background:#b5e7d4;border-top:6px solid #d7f4df;border-radius:50% 50% 0 0/90px 90px 0 0;width:180vw;height:calc(80dvh + 85px);position:absolute;bottom:-80dvh;left:calc(50% - 90vw)}.scene-stage>*{position:relative}.island-scene .island-header{z-index:2;position:relative}.scene-stage>.glass-scene,.scene-stage .mix-preview,.scene-stage .result-visual,.scene-stage .taste-preview{height:100%;min-height:0;padding:0}.scene-stage :is(.mix-preview,.result-visual,.taste-preview){flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:26px;display:flex}.scene-stage :is(.glass-scene,.cup-transition){flex:1;width:100%;height:auto;min-height:0;max-height:440px}:is(.workbench-page,.result-page) .scene-stage :is(.glass-scene,.cup-transition){max-height:580px}.scene-stage>.glass-scene{height:calc(100% - 26px);position:absolute;bottom:26px}.scene-stage .mix-glass{overflow:visible}.scene-stage .volume-readout{margin:0}.scene-stage .pour-caption{margin:0;font-size:15px;font-weight:700;bottom:-12px}.drink-injector{pointer-events:none;transform:translateY(calc(var(--nozzle-y) - var(--injector-travel,1000px) * var(--injector-offset)));will-change:transform}.pour-splash{animation:.35s ease-in-out infinite alternate splash-pulse}@keyframes splash-pulse{to{opacity:.15}}.scene-stage .volume-readout{flex-shrink:0;font-size:18px}.scene-stage .volume-readout span{font-size:14px}.scene-stage .preview-note{flex-shrink:0;font-size:11px}.scene-stage meter{flex-shrink:0;max-width:230px;height:10px}.scene-stage .result-visual>button{position:absolute;bottom:12px;right:12px}.scene-panel{border:2px solid var(--island-border);background:#e0f7ec;border-radius:22px 22px 14px 14px;flex-direction:column;min-height:0;animation:.65s cubic-bezier(.22,1,.36,1) .18s both sheet-enter;display:flex;position:relative;overflow:clip;box-shadow:0 -4px 22px #0c635a14}.island-app .sheet-handle{background:#d5f2e6;border:0;border-bottom:1px solid #a9d9cb;border-radius:0;flex:0 0 44px;justify-content:space-between;width:100%;min-height:44px;padding:10px 16px 4px;font-size:13px;position:relative}.sheet-grip{background:#74b8ac;border-radius:4px;width:32px;height:4px;position:absolute;top:5px;left:calc(50% - 16px)}.scene-panel-scroll,.scene-panel-peek{overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-color:#39a5a0 #c2ede0;flex:1;min-height:0;padding:12px;overflow-y:auto}.scene-panel-peek{padding-top:0}.scene-panel-peek>p{margin:12px 0;font-size:13px}.peek-navigation{justify-content:space-between;align-items:center;height:42px;font-size:12px;display:flex}.island-app .peek-navigation .icon-button{background:0 0;flex-basis:36px;width:36px;height:36px;min-height:36px;padding:8px}.peek-error{color:#884320}.scene-panel :is(.mix-controls,.confirm-panel,.result-information,.taste-content){background:0 0;border:0;border-radius:0;margin:0;padding:0}.scene-panel :is(.portion-list,.result-portions){max-height:none;padding:0;overflow:visible}.scene-panel .section-heading{padding:10px 0}.scene-panel .section-heading h2{font-size:18px}.scene-panel .cup-selector{border-radius:10px;gap:4px;padding:4px}.scene-panel .cup-selector button{grid-template-columns:24px auto;gap:0 5px;min-height:52px;padding:4px;font-size:13px;display:grid}.scene-panel .cup-selector .mini-cup{grid-row:1/3;justify-self:center;width:16px;height:25px;margin:0}.scene-panel .cup-selector .mini-cup-short_200{width:21px;height:18px}.scene-panel .cup-selector .mini-cup-tall_400{height:30px}.scene-panel .cup-selector small{font-size:10px}.scene-panel .island-actions{gap:8px;margin-top:12px}.scene-panel .island-actions>button{min-height:46px;padding:9px 12px;font-size:17px}.scene-panel .portion-row>label{font-size:15px}.scene-panel .portion-row{background:0 0;border:0;border-bottom:1px solid #abd7c8;border-radius:0;grid-template-columns:30px minmax(0,1fr) auto 38px;gap:4px 8px;min-height:82px;margin:0;padding:7px 2px 10px}.ingredient-drop{color:#17666c;display:flex}.ingredient-drop svg{fill:var(--drink-color)}.portion-row output{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px;font-weight:700}.portion-row output small{font-size:11px}.portion-row .portion-slider{grid-column:1/-1;min-width:0;margin:4px 0 0}.island-app .portion-row .confirm-portion{color:#fffce7;background:#176f70;border-radius:50%;width:36px;height:36px;min-height:36px;padding:6px}.portion-row[data-confirmed=true] .confirm-portion{color:#216b60;opacity:1;background:#b9dec9}.scene-panel-peek .portion-row{border:0}.scene-panel-peek .portion-row>label{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.confirm-page .scene-panel-scroll{flex-direction:column;gap:8px;display:flex}.confirm-page .confirm-panel{flex:1;min-height:0}.confirm-page .inline-actions{flex-shrink:0}.confirm-page .inline-actions button{min-height:42px;padding:6px 10px;font-size:14px}.confirm-page .island-actions{flex-shrink:0;margin-top:0}.confirm-page .confirm-row{min-height:60px;padding:6px 8px}.confirm-page .empty-state{gap:8px;min-height:100px;padding:8px}.scene-panel .selected-summary{font-size:14px;margin:0!important}.scene-panel .recommendation-grid{margin:10px 0}.scene-panel .recommendation-grid>.empty-state{background:0 0;border:0;min-height:150px;padding:16px}.scene-panel .taste-content details{margin-top:12px}.cup-transition{position:relative}.cup-layer{position:absolute;inset:0}.cup-layer .glass-scene{height:100%}.cup-leaving{pointer-events:none;animation:.65s cubic-bezier(.4,0,.6,1) both cup-exit-left}.cup-arriving{animation:.75s cubic-bezier(.22,1,.36,1) both stage-enter}@keyframes stage-enter{0%{opacity:0;transform:translate(100vw)}12%{opacity:1}to{opacity:1;transform:translate(0)}}@keyframes cup-exit-left{0%{opacity:1;transform:translate(0)}65%{opacity:1}to{opacity:0;transform:translate(-100vw)}}@keyframes sheet-enter{0%{opacity:0;transform:translateY(110%)}65%{opacity:1;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}@media (min-width:768px){.island-scene .island-background{background-color:#c7eddc;background-repeat:no-repeat;background-size:auto 140%}}@media (min-width:1024px){.island-scene .island-content{width:min(100% - 48px,800px)}}@media (max-height:680px){.island-scene .island-content{--sheet-height:54dvh;gap:6px;padding:8px 12px}.island-scene .island-header h1{font-size:20px}.island-scene .island-header{min-height:44px}.scene-panel-scroll{padding:8px}.scene-panel .island-actions>p{display:none}}@media (prefers-reduced-motion:reduce){.liquid-surface{ry:8px}.liquid-ripples,.pour-splash{display:none}.drink-injector{transform:translateY(var(--nozzle-y))}.cup-leaving{display:none}.island-app *,.island-app :before,.island-app :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
