@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-ext-500-normal-Yta7XZ9C.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-500-normal-lsPpqi9g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-cyrillic-500-normal-CyAY5ZLS.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-500-normal-DkJXBcIH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-vietnamese-500-normal-BZGLGj12.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-500-normal-DqXqCC0q.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-ext-500-normal-CH1kM7og.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-500-normal-DYeaGGzO.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/cormorant-garamond-latin-500-normal-BsRWmXhO.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-500-normal-zIXX3Q-H.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-ext-600-normal-BMhMHfrj.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-ext-600-normal-CsIYWmWK.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-cyrillic-600-normal-C2atO-64.woff2)format("woff2"),url(/assets/cormorant-garamond-cyrillic-600-normal-FNmA3REe.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-vietnamese-600-normal-BoXdMtcr.woff2)format("woff2"),url(/assets/cormorant-garamond-vietnamese-600-normal-C4HEjEaf.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-ext-600-normal-DaBc-lu7.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-ext-600-normal-Dk3-quAP.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:Cormorant Garamond;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/cormorant-garamond-latin-600-normal-Co1r35X9.woff2)format("woff2"),url(/assets/cormorant-garamond-latin-600-normal-2CBVLo0M.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{--white:#fff;--bg:#f6f8f5;--surface:#fff;--surface-2:#f4f9f5;--border:#e3ece5;--border-strong:#cfdfd3;--green-50:#f1f9f2;--green-100:#e2f3e5;--green-200:#c5e7cb;--green-300:#9fd6a9;--green-500:#4fae69;--green-600:#3a9655;--green-700:#2c7a43;--green-900:#173d24;--text:#18241c;--text-2:#4a5a4f;--muted:#7a887e;--warn-bg:#fff8e8;--warn:#8a5a00;--bad-bg:#fdf0ef;--bad:#a3322b;--radius-sm:10px;--radius:18px;--radius-lg:28px;--shadow-sm:0 1px 2px #173d240d, 0 2px 8px #173d240a;--shadow:0 1px 2px #173d240d, 0 10px 30px #173d2412;--shadow-lg:0 2px 6px #173d240f, 0 24px 60px #173d2424;--glass:#ffffffb8;--glass-strong:#ffffffdb;--ease:cubic-bezier(.22, 1, .36, 1);--fast:.2s;--slow:.36s;--font:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display:"Cormorant Garamond", Georgia, "Times New Roman", serif;--page:1180px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);font:15px/1.55 var(--font);-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:var(--green-700);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{letter-spacing:0;margin:0;line-height:1.2}h1{font-size:30px;font-weight:600}h2{font-size:20px;font-weight:620}h3{font-size:16px;font-weight:600}p{margin:0}:focus-visible{outline:2px solid var(--green-500);outline-offset:2px}.wordmark{font-family:var(--font-display);letter-spacing:.22em;color:var(--green-900);font-weight:600;line-height:1}.wordmark.sm{letter-spacing:.18em;font-size:22px}.wordmark.lg{font-size:clamp(44px,9vw,96px)}.wordmark .dot{color:var(--green-500)}.topbar{z-index:20;background:var(--glass);-webkit-backdrop-filter:saturate(1.6)blur(16px);position:sticky;top:0;box-shadow:0 1px #173d240a,0 6px 24px #173d240a}.topbar-inner{max-width:var(--page);align-items:center;gap:28px;height:64px;margin:0 auto;padding:0 16px;display:flex;position:relative;overflow:hidden}.topbar a.brand{flex:none}.topbar a.brand:hover{text-decoration:none}.nav{scrollbar-width:none;flex:1;gap:4px;display:flex;overflow-x:auto}.nav::-webkit-scrollbar{display:none}.nav a{color:var(--text-2);white-space:nowrap;border-radius:999px;padding:8px 12px;font-weight:500}.nav a:hover{background:var(--green-50);color:var(--text);text-decoration:none}.nav a.active{background:var(--green-100);color:var(--green-900)}.usermenu{flex:none;align-items:center;gap:10px;margin-left:auto;display:flex}.avatar{background:var(--green-100);width:34px;height:34px;color:var(--green-900);box-shadow:var(--shadow-sm);border:0;border-radius:50%;place-items:center;font-size:14px;font-weight:600;display:grid}.topbar.collapsed .nav,.topbar.collapsed .usermenu .signout{visibility:hidden;pointer-events:none;position:absolute}.menu-btn{cursor:pointer;background:var(--white);width:40px;height:40px;color:var(--text);box-shadow:var(--shadow-sm);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.menu-btn:hover{background:var(--green-50)}.menu-btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:20px;height:20px}.topbar-drop{max-width:var(--page);pointer-events:none;justify-content:flex-end;margin:0 auto;padding:8px 16px 0;display:flex;position:absolute;top:100%;left:0;right:0}.nav-menu{pointer-events:auto;background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);border-radius:var(--radius);width:min(280px,100%);box-shadow:var(--shadow-lg);animation:rise var(--fast) var(--ease);border:0;flex-direction:column;gap:2px;padding:8px;display:flex}.nav-menu a,.nav-menu button{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border:0;padding:10px 12px;font-weight:500;display:block}.nav-menu a:hover,.nav-menu button:hover{background:var(--green-50);color:var(--text);text-decoration:none}.nav-menu a.active{background:var(--green-100);color:var(--green-900)}.nav-menu hr{border:0;border-top:1px solid var(--border);margin:6px 4px}@media (width<=480px){.nav-menu{width:100%}}.page{max-width:var(--page);margin:0 auto;padding:32px 16px 80px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;display:flex}.page-head p{color:var(--text-2);max-width:680px;margin-top:6px}.eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--green-600);margin-bottom:6px;font-size:12px;font-weight:650}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow-sm);border:0;padding:20px}.card.selected{border-color:var(--green-500);box-shadow:0 0 0 3px var(--green-100)}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.muted{color:var(--muted)}.small{font-size:13px}.section{margin-top:36px}.section>h2{margin-bottom:14px}.btn{font:inherit;box-shadow:var(--shadow-sm);background:var(--white);color:var(--text);cursor:pointer;transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease);border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;line-height:1;display:inline-flex}.btn:hover{background:var(--green-50);box-shadow:var(--shadow);text-decoration:none}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--green-700);color:var(--white);box-shadow:0 6px 18px #2c7a4347}.btn.primary:hover{background:var(--green-900)}.btn.ghost{color:var(--text-2);box-shadow:none;background:0 0}.btn.ghost:hover{background:var(--green-50)}.btn.danger{color:var(--bad)}.btn.sm{padding:7px 12px;font-size:13px}.btn.lg{padding:16px 28px;font-size:16px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--text-2);font-size:13px;font-weight:600}.input,.select,textarea.input{font:inherit;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--white);width:100%;color:var(--text);padding:10px 12px}.input:focus,.select:focus{border-color:var(--green-500);box-shadow:0 0 0 3px var(--green-100);outline:none}.select{appearance:none;cursor:pointer;background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%234a5a4f' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:34px}input[type=range]{accent-color:var(--green-600);width:100%}input[type=checkbox],input[type=radio]{accent-color:var(--green-600)}.segmented{background:var(--surface-2);border:0;border-radius:999px;gap:4px;padding:4px;display:inline-flex}.segmented button{font:inherit;color:var(--text-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600}.segmented button.on{background:var(--white);color:var(--green-900);box-shadow:var(--shadow-sm)}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:inherit;cursor:pointer;background:var(--white);color:var(--text-2);box-shadow:var(--shadow-sm);transition:background var(--fast) var(--ease), color var(--fast) var(--ease);border:0;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:550}.chip:hover{background:var(--green-50)}.chip.on{background:var(--green-700);color:var(--white)}.chip .count{color:var(--muted);margin-left:4px;font-weight:450}.alert{border-radius:var(--radius-sm);border:0;padding:12px 16px;font-size:14px}.alert.ok{background:var(--green-50);border-color:var(--green-200);color:var(--green-900)}.alert.warn{background:var(--warn-bg);color:var(--warn);border-color:#f1dfb2}.alert.bad{background:var(--bad-bg);color:var(--bad);border-color:#f2cfcb}.badge{background:var(--surface-2);color:var(--text-2);border:0;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.green{background:var(--green-100);color:var(--green-900);border-color:var(--green-200)}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:#f1dfb2}.badge.bad{background:var(--bad-bg);color:var(--bad);border-color:#f2cfcb}.spinner{border:2px solid var(--green-200);border-top-color:var(--green-600);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center{place-items:center;min-height:40vh;display:grid}.progress{background:var(--green-100);border-radius:999px;height:8px;overflow:hidden}.progress>div{background:var(--green-500);border-radius:999px;height:100%;transition:width .5s}.empty{text-align:center;padding:48px 20px}.empty h3{margin-bottom:6px}.empty p{color:var(--text-2);margin-bottom:18px}.metric{padding:18px 20px}.metric .value{letter-spacing:-.02em;color:var(--green-900);font-size:32px;font-weight:680}.metric .label{color:var(--text-2);margin-top:2px;font-size:13px}.gallery{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.tile{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);overflow:hidden}.tile img{aspect-ratio:1;object-fit:cover;background:var(--surface-2);width:100%}.tile .cap{color:var(--text-2);justify-content:space-between;gap:6px;padding:8px 10px;font-size:12.5px;display:flex}.compare img{border-radius:var(--radius);aspect-ratio:1;object-fit:cover;background:var(--surface-2);width:100%}.compare figcaption{color:var(--text-2);margin-top:8px;font-size:13px}.ranker{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.rank-card{border-radius:var(--radius);background:var(--white);border:2px solid var(--border);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s;position:relative;overflow:hidden}.rank-card:hover{border-color:var(--green-300)}.rank-card.dragging{cursor:grabbing;box-shadow:var(--shadow-lg);border-color:var(--green-500);z-index:2}.rank-card img{aspect-ratio:1;object-fit:cover;pointer-events:none;width:100%}.rank-badge{min-width:30px;height:30px;color:var(--green-900);box-shadow:var(--shadow-sm);background:#fffffff2;border-radius:999px;place-items:center;padding:0 8px;font-size:14px;font-weight:700;display:grid;position:absolute;top:10px;left:10px}.rank-card.first .rank-badge{background:var(--green-600);color:var(--white)}.rank-scale{color:var(--muted);justify-content:space-between;margin-top:10px;font-size:13px;display:flex}.stepper{flex-wrap:wrap;gap:8px;margin-bottom:22px;display:flex}.step{color:var(--muted);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.step .n{border:1px solid var(--border-strong);background:var(--white);border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.step.done .n{background:var(--green-100);border-color:var(--green-200);color:var(--green-700)}.step.current{color:var(--green-900)}.step.current .n{background:var(--green-600);border-color:var(--green-600);color:var(--white)}.step+.step:before{content:"";background:var(--border-strong);width:22px;height:1px;margin-right:2px}.hero{text-align:center;padding:56px 16px 40px}.hero .tagline{color:var(--text-2);max-width:560px;margin:18px auto 0;font-size:17px}.hero .rule{background:var(--green-300);border-radius:2px;width:56px;height:2px;margin:22px auto 0}.action-card{color:inherit;flex-direction:column;gap:10px;padding:22px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.action-card:hover{border-color:var(--green-300);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.action-card .icon{background:var(--green-100);width:40px;height:40px;color:var(--green-700);border-radius:12px;place-items:center;display:grid}.action-card .go{color:var(--green-700);margin-top:auto;font-size:14px;font-weight:600}.auth-wrap{background:linear-gradient(180deg, var(--white) 0%, var(--green-50) 100%);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{width:100%;max-width:400px;padding:32px}.auth-brand{text-align:center;margin-bottom:28px}.auth-brand .wordmark{font-size:40px}.auth-brand p{color:var(--text-2);margin-top:10px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--white);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-2);font-size:12px;font-weight:650}th,td{border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 14px}tr:last-child td{border-bottom:0}.modal-back{z-index:50;background:#17241c59;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:440px}.secret{background:var(--green-50);border:1px dashed var(--green-300);border-radius:var(--radius-sm);word-break:break-all;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:18px}details.disclosure summary{cursor:pointer;justify-content:space-between;align-items:center;font-weight:600;list-style:none;display:flex}details.disclosure summary::-webkit-details-marker{display:none}details.disclosure summary:after{content:"+";color:var(--muted);font-size:20px}details.disclosure[open] summary:after{content:"–"}@media (width<=900px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:1fr}.ranker{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px){h1{font-size:24px}.grid-2,.compare{grid-template-columns:1fr}.ranker{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar-inner{gap:12px}.wordmark.sm{letter-spacing:.12em;font-size:18px}.page{padding-top:22px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}.build-tag{color:var(--green-700);background:var(--green-50);border:1px solid var(--green-200);letter-spacing:.02em;border-radius:999px;padding:3px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;display:inline-block}.formula{white-space:pre-wrap;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}.flow{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.flow .stepbox{background:var(--white);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;padding:8px 12px;font-size:13px;font-weight:550}.flow .stepbox:hover{border-color:var(--green-300);background:var(--green-50)}.flow .arrow{color:var(--muted)}.kv{grid-template-columns:minmax(160px,max-content) 1fr;gap:6px 16px;font-size:14px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;margin:0}.bw-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.bw-card{border:3px solid var(--border);border-radius:var(--radius);background:var(--white);cursor:pointer;padding:0;transition:border-color .12s,transform .12s,box-shadow .12s;position:relative;overflow:hidden}.bw-card:hover{border-color:var(--green-300);box-shadow:var(--shadow);transform:translateY(-2px)}.bw-card img{aspect-ratio:1;object-fit:cover;pointer-events:none;width:100%;display:block}.bw-card.best{border-color:var(--green-600);box-shadow:0 0 0 3px var(--green-200)}.bw-card.worst{border-color:#c96a5f;box-shadow:0 0 0 3px #f2cfcb}.bw-tag{color:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:10px;left:10px}.bw-tag.best{background:var(--green-600)}.bw-tag.worst{background:#c0574b}@media (width<=900px){.bw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.thumbs-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.thumb-card{border:3px solid var(--border);border-radius:var(--radius);background:var(--white);transition:border-color .12s;overflow:hidden}.thumb-card.up{border-color:var(--green-600)}.thumb-card.down{border-color:#c96a5f}.thumb-img{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block;position:relative}.thumb-img img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.thumb-tag{color:#fff;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;position:absolute;top:8px;left:8px}.thumb-tag.up{background:var(--green-600)}.thumb-tag.down{background:#c0574b}.thumb-actions{grid-template-columns:1fr 1fr;display:grid}.thumb-btn{border:0;border-top:1px solid var(--border);background:var(--white);cursor:pointer;padding:7px 0;font-size:18px}.thumb-btn+.thumb-btn{border-left:1px solid var(--border)}.thumb-btn:hover{background:var(--green-50)}.thumb-btn.up.on{background:var(--green-100)}.thumb-btn.down.on{background:#fbe3e0}.explain-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}@media (width<=900px){.thumbs-grid,.explain-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.stars-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.stars{gap:2px;margin:8px 0 2px;display:flex}.star{color:var(--border-strong);cursor:pointer;background:0 0;border:0;padding:2px;font-size:24px;line-height:1}.star.on{color:#e0a63f}.loop-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;display:grid}.loop-card{border:2px solid var(--border);border-radius:var(--radius);background:var(--white);cursor:pointer;padding:0;transition:border-color .12s,transform .12s,opacity .12s;position:relative;overflow:hidden}.loop-card img{aspect-ratio:3/4;object-fit:cover;pointer-events:none;width:100%;display:block}.loop-card:hover{border-color:#c96a5f;transform:translateY(-2px)}.loop-card:disabled{opacity:.6;cursor:wait}.loop-x{color:#b0473c;opacity:0;background:#ffffffeb;border-radius:50%;place-items:center;width:28px;height:28px;font-weight:700;transition:opacity .12s;display:grid;position:absolute;top:8px;right:8px}.loop-card:hover .loop-x{opacity:1}.markdown{line-height:1.65;overflow-x:auto}.markdown h1{margin:4px 0 14px;font-size:26px}.markdown h2{margin:28px 0 10px;font-size:20px}.markdown h3{margin:20px 0 8px;font-size:16px}.markdown p,.markdown ul,.markdown ol{margin:0 0 12px}.markdown table{margin:8px 0 16px;font-size:13.5px}.markdown td,.markdown th{white-space:normal;vertical-align:top}.markdown code{background:var(--surface-2);border-radius:4px;padding:1px 5px;font-size:13px}.markdown pre{background:var(--surface-2);border-radius:8px;padding:12px;overflow-x:auto}.markdown hr{border:0;border-top:1px solid var(--border);margin:24px 0}@media (width<=900px){.loop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stars-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.homes-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px;display:grid}.home-card{color:inherit;flex-direction:column;padding:0;text-decoration:none;display:flex;overflow:hidden}.home-card:hover{box-shadow:var(--shadow-md,0 6px 20px #00000014)}.home-cover{aspect-ratio:4/3;background:var(--surface-2);position:relative}.home-cover img{object-fit:cover;width:100%;height:100%;display:block}.home-badge{position:absolute;top:10px;left:10px}.home-body{padding:12px 14px 14px}.home-body h3{margin-bottom:4px}.homes-photos{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.home-photo{margin:0;padding:0;overflow:hidden}.home-photo-img{background:var(--surface-2);cursor:zoom-in;aspect-ratio:1;border:0;width:100%;padding:0;display:block;position:relative}.home-photo-img img{object-fit:cover;width:100%;height:100%;display:block}.home-photo-overlay{background:#ffffffd9;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex;position:absolute;inset:auto 0 0}.compare{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.compare figure{margin:0}.compare img{border-radius:var(--radius-sm);width:100%;display:block}.compare figcaption{color:var(--muted);margin-top:6px}textarea.input{resize:vertical;font:inherit}.shop{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}.shop-stage-card{padding:12px}.shop-stage{border-radius:var(--radius-sm);background:var(--surface-2);-webkit-user-select:none;user-select:none;line-height:0;position:relative;overflow:hidden}.shop-stage.ready{cursor:crosshair}.shop-stage>img{width:100%;height:auto;display:block}.shop-stage svg{width:100%;height:100%;position:absolute;inset:0}.shop-stage path{fill:var(--green-500);fill-opacity:.1;fill-rule:evenodd;stroke:var(--white);stroke-opacity:.6;stroke-width:1.2px;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill-opacity .12s}.shop-stage path.hover{fill-opacity:.3}.shop-stage path.on{fill:var(--green-600);fill-opacity:.45;stroke:var(--green-50);stroke-width:2.5px}.shop-stage path.chosen:not(.on){fill:var(--green-500);fill-opacity:.28;stroke:var(--green-50);stroke-opacity:.9;stroke-width:2px}.shop-stage .home-photo-overlay{line-height:1.4}.shop-stage.result{cursor:default;overflow:visible}.shop-stage.result>img{border-radius:var(--radius-sm)}.shop-stage.result path{fill:var(--white);fill-opacity:0;stroke-opacity:0}.shop-stage.result path.hover{fill-opacity:.12;stroke-opacity:.95;stroke-width:2px}.stage-tag{line-height:1.4;position:absolute;top:10px;left:10px}.piece-card{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(320px,90%);box-shadow:var(--shadow-lg);gap:12px;padding:10px;line-height:1.4;display:flex;position:absolute;transform:translate(-50%)}.piece-card>img{object-fit:contain;border-radius:var(--radius-sm);background:var(--white);flex:none;width:72px;height:72px}.piece-card>div{min-width:0}.piece-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:14px;display:-webkit-box;overflow:hidden}.piece-card .price{font-size:16px}.replace-bar{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 14px;display:flex}.piece-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.piece-list li{border-top:1px solid var(--border);grid-template-columns:56px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 0;display:grid}.piece-list li:first-child{border-top:0}.piece-list img{object-fit:contain;border-radius:var(--radius-sm);background:var(--white);border:1px solid var(--border);width:56px;height:56px}.piece-list .price{font-size:16px}@media (width<=640px){.piece-list li{grid-template-columns:48px minmax(0,1fr)}.piece-list .price,.piece-list .btn{grid-column:2;justify-self:start}}.shop-item.chosen .cutout{outline:2px solid var(--green-500);outline-offset:1px}.chosen-mark{color:var(--green-600)}.card.product.chosen{border-color:var(--green-500);box-shadow:0 0 0 2px var(--green-200)}.product-chosen{position:absolute;top:8px;right:8px}.product-choose{justify-content:center;width:100%;margin-top:6px}.shop-pin{width:30px;height:30px;box-shadow:var(--shadow);background:#ffffffeb;border-radius:50%;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%)}.shop-items{flex-direction:column;max-height:calc(100vh - 100px);padding:16px 12px 12px;display:flex;position:sticky;top:80px}.shop-items h2{padding:0 6px}.shop-list{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.shop-item{border-radius:var(--radius-sm);width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;padding:6px;display:grid}.shop-item:hover,.shop-item.hover{background:var(--green-50)}.shop-item.on{background:var(--green-100);border-color:var(--green-200)}.cutout{background-color:var(--surface-2);background-image:conic-gradient(var(--green-50) 25%, transparent 0 50%, var(--green-50) 0 75%, transparent 0);background-size:12px 12px;border-radius:8px;flex:none;place-items:center;width:52px;height:52px;display:grid;overflow:hidden}.cutout img{object-fit:contain;max-width:100%;max-height:100%}.cutout.lg{border-radius:12px;width:76px;height:76px}.shop-name{border-color:#0000;width:280px;max-width:100%;margin-left:-8px;padding:4px 8px;font-size:18px;font-weight:620}.shop-name:hover{border-color:var(--border-strong)}.products{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.card.product{flex-direction:column;margin:0;padding:0;display:flex;overflow:hidden}.card+.card.product{margin-top:0}.product-img{aspect-ratio:1;background:var(--white);border-bottom:1px solid var(--border);place-items:center;display:grid;position:relative}.product-img img{object-fit:contain;width:100%;height:100%}.product-rank{position:absolute;top:8px;left:8px}.product-body{flex-direction:column;flex:1;gap:6px;padding:12px 14px 14px;display:flex}.product-source{color:var(--muted);align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.product-source img{border-radius:3px;width:14px;height:14px}.product-source span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.product h3{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.product h3 a{color:var(--text)}.price{color:var(--green-900);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}.price small{color:var(--muted);letter-spacing:0;margin-left:6px;font-size:11.5px;font-weight:500}.kv.product-facts{grid-template-columns:max-content minmax(0,1fr);gap:2px 10px;font-size:12.5px}.kv.product-facts dd{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.product-desc{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.product-foot{margin-top:auto;padding-top:6px}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--green-100), var(--surface-2));background-size:200% 100%;border-radius:6px;width:90px;height:16px;animation:1.2s infinite shimmer;display:inline-block}@keyframes shimmer{to{background-position:-200% 0}}@media (width<=900px){.shop{grid-template-columns:1fr}.shop-items{max-height:none;position:static}}.dropzone{border:2px dashed var(--border-strong);background:var(--surface-2);min-height:150px;box-shadow:none;cursor:pointer;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:border-color .15s,background .15s;display:flex}.dropzone:hover,.dropzone.over{border-color:var(--green-500);background:var(--green-50)}.dropzone strong{color:var(--green-900);font-size:16px}.shop-q{gap:8px;margin-bottom:14px}.shop-q .input{flex:1;width:auto;min-width:180px;max-width:420px}@keyframes rise{0%{opacity:0;transform:translateY(6px)scale(.99)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.icon-btn{cursor:pointer;background:var(--glass-strong);width:44px;height:44px;color:var(--text);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);transition:background var(--fast) var(--ease), box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease), color var(--fast);border:0;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{background:var(--white);box-shadow:var(--shadow);transform:translateY(-1px)}.icon-btn:active{transform:scale(.96)}.icon-btn.on{background:var(--green-700);color:var(--white)}.icon-btn.danger:hover{color:var(--bad)}.icon-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.page{padding-top:36px}.page-head{margin-bottom:28px}.page-head h1{font-size:clamp(26px,3.4vw,34px)}.page-head p{color:var(--muted);font-size:15px}.eyebrow{letter-spacing:.14em;color:var(--green-600);font-weight:600}.narrow{max-width:480px;margin:0 auto}.card{background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:24px}.card.soft{background:var(--glass);box-shadow:var(--shadow-sm)}.card+.card{margin-top:18px}.action-card{transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease)}.action-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.action-card .icon,.landing-card .icon{width:auto;height:auto;color:var(--green-700);background:0 0;border-radius:0}.empty{padding:56px 24px}.input,.select,textarea.input{border-radius:var(--radius);background:var(--white);box-shadow:inset 0 0 0 1px #173d240f, var(--shadow-sm);transition:box-shadow var(--fast) var(--ease);border:0;padding:14px 16px}.input:focus,.select:focus,textarea.input:focus{box-shadow:inset 0 0 0 2px var(--green-500), var(--shadow-sm);border:0;outline:none}.input::placeholder{color:var(--muted)}.select{padding-right:38px}.tile{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:var(--glass-strong);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease);border:0}.tile:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.tile .cap{color:var(--muted);padding:10px 14px}.rank-card,.loop-card,.bw-card,.thumb-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease), opacity var(--fast);border:0}.bw-card:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.rank-card:hover{box-shadow:var(--shadow)}.rank-card.dragging{box-shadow:0 0 0 3px var(--green-500), var(--shadow-lg)}.loop-card:hover{box-shadow:0 0 0 3px #c0574b8c, var(--shadow);transform:translateY(-2px)}.bw-card.best,.thumb-card.up{box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.bw-card.worst,.thumb-card.down{box-shadow:0 0 0 3px #c96a5f, var(--shadow)}.thumb-btn{border-top:0;box-shadow:0 -1px #173d240f}.thumb-btn+.thumb-btn{border-left:0;box-shadow:-1px 0 #173d240f,0 -1px #173d240f}.rank-badge,.loop-x{box-shadow:var(--shadow-sm)}.compare img{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.step .n{background:var(--white);box-shadow:var(--shadow-sm);border:0}.step+.step:before{background:#173d241f}.table-wrap{border-radius:var(--radius-lg);box-shadow:var(--shadow);background:var(--glass-strong);border:0}th{background:0 0}th,td{border-bottom:0;box-shadow:inset 0 -1px #173d240f}.formula,.flow .stepbox,.secret{box-shadow:var(--shadow-sm);border:0}.build-tag{border:0}.dropzone{background:var(--glass-strong);box-shadow:var(--shadow);border-radius:var(--radius-lg);border:0}.dropzone:hover,.dropzone.over{box-shadow:0 0 0 4px #4fae6940, var(--shadow)}.modal-back{-webkit-backdrop-filter:blur(6px);background:#17241c47}.modal{animation:rise var(--slow) var(--ease)}.auth-wrap{background:0 0}.auth-box{width:100%;max-width:420px;animation:rise var(--slow) var(--ease)}.auth-brand{margin-bottom:36px}.auth-brand .wordmark.lg{font-size:clamp(36px,8vw,52px)}.auth-card{border-radius:var(--radius-lg);background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);box-shadow:var(--shadow-lg);gap:14px;padding:28px}.auth-card .btn{margin-top:6px}.lost{color:var(--green-900);margin:0 0 24px;font-size:64px;font-weight:600}.desk-only{display:initial}.phone-only{display:none}@media (width<=640px){.desk-only{display:none!important}.phone-only{display:initial}}.ok-text{color:var(--green-700)}.btn.danger-fill{background:var(--bad);color:var(--white);box-shadow:0 6px 18px #a3322b40}.btn.danger-fill:hover{background:#8a2a24}.select.sm-select{width:auto;padding:6px 30px 6px 10px;font-size:13px}.icon-btn.sm{width:36px;height:36px}a.icon-btn{color:var(--text);text-decoration:none}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60vw 50vh at 85% -10%,#9fd6a938,#0000 70%),radial-gradient(50vw 45vh at -10% 110%,#c5e7cb47,#0000 70%);position:fixed;inset:0}.avatar-btn{cursor:pointer;font:inherit;padding:0;font-size:14px;font-weight:600}.avatar-btn:hover{background:var(--green-200)}.nav-menu-who{padding:6px 12px 4px}.skeleton-tile{border-radius:var(--radius-lg);background:linear-gradient(100deg, var(--surface-2) 30%, var(--white) 50%, var(--surface-2) 70%);background-size:300% 100%;animation:1.4s linear infinite shimmer;display:block}.run-skeleton{aspect-ratio:3/2;max-width:980px;margin:52px auto 0}.stage-shimmer{pointer-events:none;background:linear-gradient(100deg,#0000 30%,#ffffff73 50%,#0000 70%) 0 0/300% 100%;animation:1.6s linear infinite shimmer;position:absolute;inset:0}.welcome{flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:calc(100vh - 160px);display:flex}.welcome-note{color:var(--muted);text-align:center;animation:fade var(--slow) var(--ease) .15s both;margin-top:22px;font-size:16px}.welcome-btn{border-radius:var(--radius-lg);background:var(--green-700);width:min(880px,100%);min-height:260px;color:var(--white);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease), background var(--fast);animation:rise var(--slow) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:clamp(24px,4vw,32px);font-weight:600;display:flex;box-shadow:0 24px 60px #2c7a4352,0 2px 6px #173d241f}.welcome-btn:hover{background:var(--green-900);text-decoration:none;transform:translateY(-3px)scale(1.01);box-shadow:0 32px 80px #2c7a4361,0 2px 6px #173d241f}.landing{max-width:880px;animation:rise var(--slow) var(--ease);flex-direction:column;gap:18px;margin:24px auto 0;display:flex}.landing-pair{grid-template-columns:1fr 1fr;gap:18px;display:grid}.landing-btn{border-radius:var(--radius-lg);min-height:190px;color:var(--text);background:var(--glass);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:22px;display:flex;position:relative}.landing-btn:hover{box-shadow:var(--shadow-lg);text-decoration:none;transform:translateY(-3px)}.landing-btn-label{align-items:center;gap:8px;font-size:19px;font-weight:600;display:inline-flex}.landing-btn .dot{background:#e0a63f;border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #e0a63f2e}.landing-mosaic{grid-template-columns:repeat(4,52px);gap:6px;display:grid}.landing-mosaic img{object-fit:cover;width:52px;height:52px;box-shadow:var(--shadow-sm);border-radius:12px}.landing-palette{display:flex}.landing-palette span{width:40px;height:40px;box-shadow:0 0 0 3px var(--white), var(--shadow-sm);border-radius:50%;margin-left:-8px}.landing-palette span:first-child{margin-left:0}.upload-card{text-align:center;border-radius:var(--radius-lg);background:var(--glass-strong);-webkit-backdrop-filter:blur(18px);min-height:340px;box-shadow:var(--shadow);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease), background var(--fast);flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:32px 24px;display:flex;position:relative}.upload-card.compact{min-height:180px}.upload-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.upload-card.over{background:var(--green-50);box-shadow:0 0 0 6px #4fae6938, var(--shadow-lg);transform:scale(1.01)}.upload-card.off{opacity:.6}.upload-card>:not(.upload-hit):not(input){z-index:1;pointer-events:none;position:relative}.upload-card .upload-buttons,.upload-card .upload-err{pointer-events:auto!important}.upload-hit{z-index:0;cursor:pointer;border-radius:inherit;background:0 0;border:0;position:absolute;inset:0}.upload-hit:disabled{cursor:not-allowed}.upload-icon{width:84px;height:84px;color:var(--white);background:var(--green-700);transition:transform var(--slow) var(--ease);border-radius:50%;place-items:center;display:grid;box-shadow:0 14px 34px #2c7a4352}.upload-card:hover .upload-icon,.upload-card.over .upload-icon{transform:translateY(-4px)}.upload-icon .spinner{border-color:#ffffff59;border-top-color:var(--white);width:26px;height:26px}.upload-title{color:var(--green-900);font-size:22px;font-weight:600}.upload-hint{color:var(--muted);margin-top:-8px;font-size:13px}.upload-quota{color:var(--bad);font-weight:550}.upload-soon{color:var(--muted);font-weight:550}.upload-err{width:100%;max-width:440px}.upload-buttons{gap:14px;width:100%;max-width:340px}.upload-phone{border-radius:var(--radius);background:var(--white);color:var(--green-900);font:inherit;box-shadow:var(--shadow-sm);cursor:pointer;border:0;flex-direction:column;flex:1;align-items:center;gap:8px;padding:18px 10px;font-weight:600;display:flex}.upload-phone:first-child{background:var(--green-700);color:var(--white)}@media (width<=640px){.upload-card{min-height:0;padding:28px 16px}.upload-hit{display:none}.upload-buttons{display:flex}.upload-icon{display:none}.landing-btn{min-height:150px}.landing-mosaic{grid-template-columns:repeat(2,44px)}.landing-mosaic img{width:44px;height:44px}}.flow-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.flow-head h1{font-size:26px}.run-bar{align-items:center;gap:16px;max-width:980px;margin:0 auto;display:flex}.run-screen{max-width:980px;animation:rise var(--slow) var(--ease);margin:14px auto 0}.step-dots{gap:8px;margin:0 auto;padding:0;list-style:none;display:flex}.step-dots li{background:var(--border-strong);width:8px;height:8px;transition:width var(--slow) var(--ease), background var(--fast);border-radius:999px}.step-dots li.done{background:var(--green-300)}.step-dots li.active,.step-dots li.waiting{background:var(--green-700);width:28px}.step-dots li.failed{background:var(--bad)}.run-bar:after{content:"";flex:none;width:44px}.flow-cta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;display:flex}.flow-go{min-width:200px}.flow-go svg{transition:transform var(--fast) var(--ease)}.flow-go:hover:not(:disabled) svg{transform:translate(3px)}@media (width<=640px){.flow-cta{z-index:10;background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-lg);border-radius:999px;justify-content:space-between;padding:10px;position:sticky;bottom:12px}.flow-go{flex:1;min-width:0}}.keep-stage-wrap,.concept-stage,.result-stage,.progress-stage{position:relative}.shop-stage,.compare-slider,.progress-stage{border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.stage-tools{z-index:6;gap:8px;display:flex;position:absolute;top:14px;right:14px}.stage-rooms{z-index:6;max-width:calc(100% - 28px);position:absolute;bottom:14px;left:14px}.stage-rooms .chip{background:var(--glass-strong);-webkit-backdrop-filter:blur(12px)}.stage-rooms .chip.on{background:var(--green-700)}.stage-score{z-index:6;background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);box-shadow:var(--shadow-sm);color:var(--green-900);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;display:inline-flex;position:absolute;top:14px;left:14px}.run-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;display:grid}.run-grid .skeleton-tile{aspect-ratio:4/3}.run-tile{animation:rise var(--slow) var(--ease);position:relative}.run-cover{aspect-ratio:4/3;border-radius:var(--radius-lg);background:var(--surface-2);box-shadow:var(--shadow);transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease);display:block;position:relative;overflow:hidden}.run-cover:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.run-cover img{object-fit:cover;width:100%;height:100%}.run-cover .run-original{opacity:0;transition:opacity var(--slow) var(--ease);position:absolute;inset:0}.run-cover:hover .run-original{opacity:1}.run-price{background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);color:var(--green-900);border-radius:999px;padding:6px 12px;font-size:14px;font-weight:650;position:absolute;bottom:12px;left:12px}.state-dot{border-radius:50%;width:12px;height:12px;position:absolute;top:14px;left:14px;box-shadow:0 0 0 3px #ffffffd9}.state-dot.wait{background:#e0a63f}.state-dot.busy{background:var(--green-500);animation:1.4s infinite pulse}.state-dot.bad{background:var(--bad)}.state-dot.idle{background:var(--muted)}.run-actions{opacity:0;transition:opacity var(--fast) var(--ease);gap:6px;display:flex;position:absolute;top:10px;right:10px}.run-tile:hover .run-actions,.run-tile:focus-within .run-actions{opacity:1}@media (hover:none){.run-actions{opacity:1}}.empty-upload{aspect-ratio:4/3;border-radius:var(--radius-lg);background:var(--glass-strong);width:min(420px,100%);box-shadow:var(--shadow);color:var(--green-700);place-items:center;margin:40px auto;display:grid}.empty-upload:hover{box-shadow:var(--shadow-lg)}.modal-thumb{aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);width:100%}.keep-stage-wrap.adding .shop-stage{box-shadow:0 0 0 4px var(--green-300), var(--shadow)}.keep-stage{touch-action:manipulation}.keep-stage.adding{cursor:copy}.keep-stage svg path{fill-rule:evenodd;vector-effect:non-scaling-stroke;pointer-events:none;cursor:pointer;transition:fill-opacity var(--fast) var(--ease), stroke-width var(--fast) var(--ease)}.keep-stage svg path:focus{outline:none}.keep-stage svg path.replace{fill:#000;fill-opacity:.32;stroke:var(--white);stroke-width:1.6px;stroke-dasharray:6 4;stroke-opacity:.9}.keep-stage svg path.kept{fill:var(--green-500);fill-opacity:.18;stroke:var(--green-300);stroke-width:3px}.keep-stage svg path.replace.hover{fill-opacity:.18;stroke-width:2.4px}.keep-stage svg path.kept.hover{fill-opacity:.32;stroke-width:3.6px}.keep-stage svg path:focus-visible{stroke:var(--white);stroke-width:4px;stroke-dasharray:none}.keep-stage.masked svg path{fill-opacity:0;stroke-opacity:.5}.keep-mask{mix-blend-mode:multiply;opacity:.72;pointer-events:none;width:100%;height:100%;animation:fade var(--fast) var(--ease);position:absolute;inset:0}.keep-check{background:var(--green-700);width:30px;height:30px;color:var(--white);box-shadow:0 0 0 3px #ffffffe6, var(--shadow);pointer-events:none;animation:rise var(--fast) var(--ease);border-radius:50%;place-items:center;font-size:15px;font-weight:700;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%)}.keep-tip{white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--white);pointer-events:none;background:#17241cd1;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;line-height:1.4;position:absolute;transform:translate(-50%,calc(-100% - 8px))}.keep-pin{background:var(--green-500);width:18px;height:18px;box-shadow:0 0 0 3px var(--white), 0 0 0 3px #4fae69b3;pointer-events:none;border-radius:50%;margin:-9px 0 0 -9px;animation:1.2s infinite pulse;position:absolute}@keyframes pulse{to{box-shadow:0 0 0 3px var(--white), 0 0 0 18px #4fae6900}}.keep-notes{margin-top:12px}.keep-strip{scrollbar-width:thin;gap:10px;margin:16px 0 0;padding:4px 2px 8px;list-style:none;display:flex;overflow-x:auto}.keep-chip{background:var(--white);cursor:pointer;box-shadow:var(--shadow-sm);opacity:.55;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease), box-shadow var(--fast) var(--ease);border:0;border-radius:16px;padding:4px;position:relative}.keep-chip canvas,.keep-chip img{border-radius:12px;display:block}.keep-chip.kept{opacity:1;box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.keep-chip:hover,.keep-chip.hover{opacity:1;transform:translateY(-2px)}.keep-chip-check{background:var(--green-700);width:22px;height:22px;color:var(--white);box-shadow:0 0 0 2px var(--white);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.keep-count{color:var(--text-2);font-variant-numeric:tabular-nums;gap:14px;margin-right:auto;font-weight:600;display:inline-flex}.keep-count>span{align-items:center;gap:5px;display:inline-flex}.keep-count>span:first-child{color:var(--green-700)}.compare-slider{-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:ew-resize;background:var(--surface-2);line-height:0;position:relative}.compare-slider>img,.cs-before img{pointer-events:none;width:100%;height:auto;display:block}.cs-before{position:absolute;inset:0}.cs-before img{object-fit:cover;height:100%}.cs-handle{background:var(--white);outline:none;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0;box-shadow:0 0 12px #0003}.cs-handle>span{background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);width:44px;height:44px;color:var(--green-900);box-shadow:var(--shadow);border-radius:50%;place-items:center;font-size:15px;font-weight:700;line-height:1;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cs-handle:focus-visible>span{box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.cs-label{transition:opacity var(--fast);pointer-events:none;background:var(--glass-strong);-webkit-backdrop-filter:blur(12px);line-height:1.4;position:absolute;bottom:14px}.cs-label.left{left:14px}.cs-label.right{right:14px}.kept-outline{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.kept-outline path{fill:none;stroke:var(--green-300);stroke-width:3px;vector-effect:non-scaling-stroke;fill-rule:evenodd}.progress-stage{background:var(--surface-2);line-height:0}.progress-stage img{width:100%;height:auto;display:block}.progress-stage.scanning img{filter:saturate(.9)}.progress-stage.scanning:after{content:"";height:35%;animation:scan 2.6s var(--ease) infinite;background:linear-gradient(#0000,#9fd6a96b,#0000);position:absolute;top:0;left:0;right:0}@keyframes scan{0%{transform:translateY(-100%)}to{transform:translateY(300%)}}.progress-line{color:var(--green-900);justify-content:center;gap:12px;margin-top:18px;font-size:17px;font-weight:600;display:flex}.variant-strip{gap:10px;margin-top:14px;padding:4px 2px 8px;display:flex;overflow-x:auto}.variant{background:var(--white);cursor:pointer;width:112px;box-shadow:var(--shadow-sm);opacity:.6;transition:opacity var(--fast) var(--ease), box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease);border:0;border-radius:14px;flex:none;padding:4px}.variant:hover:not(:disabled){opacity:1;transform:translateY(-2px)}.variant img,.variant-wait{aspect-ratio:3/2;object-fit:cover;border-radius:10px;width:100%;display:block}.variant-wait{color:var(--bad);place-items:center;display:grid}.variant-wait:not(.failed){background:linear-gradient(100deg, var(--surface-2) 30%, var(--white) 50%, var(--surface-2) 70%);background-size:300% 100%;animation:1.4s linear infinite shimmer}.variant.on{opacity:1;box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.variant:disabled{cursor:default}.result-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.result-bar .segmented button:disabled{opacity:.45;cursor:not-allowed}.shop-stage.result{overflow:visible}.shopping-list{border-radius:var(--radius-lg);background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow);margin-top:28px;padding:20px}.shopping-head{color:var(--green-900);align-items:center;gap:10px;margin-bottom:6px;display:flex}.shopping-head .price{font-size:22px}.piece-list li{border-top:0}.piece-list li+li{box-shadow:0 -1px #173d240f}.shopping li{display:block}.shop-row{grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;display:grid}.shop-row>img,.shop-row>.cutout{object-fit:contain;background:var(--white);width:64px;height:64px;box-shadow:var(--shadow-sm);border-radius:14px}.shop-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.shop-row-side{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.alts{animation:rise var(--fast) var(--ease);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin:12px 0 4px 78px;display:grid}.alt{background:var(--white);font:inherit;color:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow-sm);transition:box-shadow var(--fast) var(--ease), transform var(--fast) var(--ease);border:0;border-radius:14px;flex-direction:column;gap:4px;padding:8px;display:flex;position:relative}.alt:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.alt.on{box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.alt>img,.alt>.cutout{object-fit:contain;width:100%;height:96px}.alt .price{font-size:15px}.alt-shop{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.alt-on{background:var(--green-700);width:22px;height:22px;color:var(--white);box-shadow:0 0 0 2px var(--white);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;top:-6px;right:-6px}.kept-row{flex-wrap:wrap;align-items:center;gap:10px;margin-top:22px;display:flex}.kept-row-mark{width:36px;height:36px;color:var(--green-700);border-radius:50%;place-items:center;display:grid}.kept-row canvas,.kept-row img{box-shadow:var(--shadow-sm);border-radius:12px}.fineprint{text-align:center;margin-top:20px}.piece-card{background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);animation:rise var(--fast) var(--ease);border:0}@media (width<=640px){.shop-row{grid-template-columns:52px minmax(0,1fr)}.shop-row>img,.shop-row>.cutout{width:52px;height:52px}.shop-row-side{grid-column:2;align-items:flex-start}.shop-row-side .row{justify-content:flex-start!important}.alts{grid-template-columns:repeat(2,minmax(0,1fr));margin-left:0}.result-bar .segmented{justify-content:space-between;width:100%}}.run-error{text-align:center;flex-direction:column;align-items:center;gap:16px;max-width:520px;margin:24px auto 0;display:flex}.run-error img{aspect-ratio:3/2;object-fit:cover;border-radius:var(--radius-lg);width:100%;box-shadow:var(--shadow);filter:grayscale(.6)opacity(.8)}.mock-bar{z-index:60;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:fixed;bottom:12px;left:12px}.mock-panel{box-shadow:var(--shadow-lg);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.mock-bar>.btn{opacity:.7}.mock-bar>.btn:hover{opacity:1}@media (width<=900px){.mock-bar{align-items:flex-end;inset:72px 12px auto auto}}.keep-stage-wrap,.concept-stage,.result-stage,.progress-stage,.keep-notes,.keep-strip,.variant-strip,.flow-cta,.result-bar,.progress-line{max-width:max(320px,min(100%,99vh));margin-left:auto;margin-right:auto}.topbar.nav-end .nav{justify-content:flex-end}.topbar.nav-end .nav a{font-weight:550}.topbar.nav-end .nav a.active{background:var(--green-700);color:var(--white)}@keyframes slide-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}60%{opacity:1;transform:scale(1.02)}to{transform:none}}@keyframes star-pop{0%{transform:scale(1)}40%{transform:scale(1.35)rotate(-8deg)}to{transform:scale(1)}}@keyframes ring-fill{0%{--p-anim:0}}.study{max-width:1040px;margin:0 auto}.study-bar{max-width:none}.study-bar:after{display:none}.study-bar>span:first-child{flex:none;width:44px}.study-alert{margin-top:14px}.study-screen{animation:slide-in var(--slow) var(--ease);margin-top:26px}.study-skeleton{height:360px;margin-top:70px;display:block}.study-head{justify-content:center;align-items:baseline;gap:12px;margin-bottom:18px;display:flex}.study-room{color:var(--green-900);font-size:clamp(22px,3vw,28px);font-weight:600}.study-count{color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.study-hint{text-align:center;color:var(--muted);animation:fade var(--slow) var(--ease);margin:-6px 0 16px;font-size:15px}.study-test{justify-content:center;margin-top:12px;display:flex}.study-done{height:220px;color:var(--green-700);animation:pop-in var(--slow) var(--ease);place-items:center;display:grid}.study-prior{flex-direction:column;align-items:center;gap:18px;max-width:680px;margin:12vh auto 0;display:flex}.study-input{border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow);padding:20px 24px;font-size:18px}.study-input:focus{box-shadow:inset 0 0 0 2px var(--green-500), var(--shadow-lg)}.star-tile,.loop-card,.rank-card{animation:pop-in var(--slow) var(--ease) backwards}.star-tile{border-radius:var(--radius-lg);background:var(--glass-strong);box-shadow:var(--shadow-sm);transition:box-shadow var(--slow) var(--ease), transform var(--slow) var(--ease);padding:10px}.star-tile:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.star-tile.rated{box-shadow:0 0 0 3px #e0a63f73, var(--shadow)}.star-tile img{aspect-ratio:4/3;object-fit:cover;border-radius:14px;width:100%}.star-tile .stars{justify-content:center;margin:10px 0 4px}.star{transition:color var(--fast) var(--ease), transform var(--fast) var(--ease)}.star:hover{transform:scale(1.18)}.star.on{animation:star-pop var(--slow) var(--ease)}.loop-grid{gap:14px}.loop-card img{transition:transform var(--slow) var(--ease), filter var(--fast)}.loop-card:hover img{filter:saturate(.85);transform:scale(1.04)}.loop-card:disabled{opacity:.75}.loop-x{opacity:0;transition:opacity var(--fast) var(--ease), transform var(--fast) var(--ease);transform:scale(.6)}.loop-card:hover .loop-x{opacity:1;transform:none}.rank-card{cursor:grab;transition:box-shadow var(--fast) var(--ease);touch-action:none}.rank-card:hover{transform:none}.rank-card.dragging{cursor:grabbing;z-index:3}.rank-badge{transition:background var(--fast), color var(--fast)}.rank-scale{color:var(--muted);align-items:center;gap:12px;margin-top:14px;font-size:16px;display:flex}.rank-line{background:linear-gradient(90deg, var(--green-300), #c0574b73);border-radius:2px;flex:1;height:2px}.study-result{justify-content:center;align-items:center;gap:48px;margin-top:8vh;display:flex}.result-text{max-width:440px;animation:slide-in var(--slow) var(--ease) .25s both;flex-direction:column;gap:12px;display:flex}.result-text h2{color:var(--green-900);font-size:clamp(26px,3.4vw,34px)}.result-text p{color:var(--text-2);font-size:16px;line-height:1.55}.result-text p.quiet{color:var(--muted);font-size:14px}.result-text .study-actions{justify-content:flex-start;margin-top:10px}@media (width<=760px){.study-result{text-align:center;flex-direction:column;gap:24px}.result-text{align-items:center}.result-text .study-actions{justify-content:center}}@property --p-anim{syntax:"<number>";inherits:false;initial-value:0}.result-ring{--p-anim:var(--p);background:conic-gradient(var(--green-500) calc(var(--p-anim) * 1%), #173d2414 0);width:220px;height:220px;animation:ring-fill 1s var(--ease), pop-in var(--slow) var(--ease);transition:--p-anim 1s var(--ease);box-shadow:var(--shadow);border-radius:50%;place-items:center;display:grid}.result-ring:not(.ok){background:conic-gradient(#e0a63f calc(var(--p-anim) * 1%), #173d2414 0)}.result-ring>span{background:var(--white);width:176px;height:176px;color:var(--green-900);font-variant-numeric:tabular-nums;border-radius:50%;grid-auto-flow:row;align-content:center;place-items:center;gap:6px;font-size:46px;font-weight:600;line-height:1;display:grid}.study-note{text-align:center;max-width:420px}.study-note.quiet{margin-top:-10px;font-size:14px}.study-note{color:var(--muted);animation:fade var(--slow) var(--ease) .4s both;font-size:16px}.study-actions{animation:rise var(--slow) var(--ease) .55s both;flex-wrap:wrap;justify-content:center;gap:10px;display:flex}@media (width<=640px){.study-prior{margin-top:6vh}.result-ring{width:180px;height:180px}.result-ring>span{width:142px;height:142px;font-size:38px}}.study-loading{opacity:0;max-width:220px;height:3px;transition:opacity var(--fast) var(--ease);border-radius:3px;margin:12px auto 0;overflow:hidden}.study-loading.on{opacity:1}.study-loading span{background:var(--green-500);width:40%;height:100%;animation:indeterminate 1.1s var(--ease) infinite;border-radius:3px;display:block}@keyframes indeterminate{0%{transform:translate(-110%)}to{transform:translate(260%)}}.study.busy .study-input{opacity:.7}.btn .spinner{width:18px;height:18px}.btn.primary .spinner{border-color:#ffffff59;border-top-color:var(--white)}.btn.primary:disabled{opacity:.75}.tile-spin{-webkit-backdrop-filter:blur(3px);animation:fade var(--fast) var(--ease);background:#ffffff8c;place-items:center;display:grid;position:absolute;inset:0}.tile-spin .spinner{border-width:3px;width:34px;height:34px}@keyframes leave{to{opacity:.35;filter:blur(2px)saturate(.6);transform:scale(.9)}}.loop-card.pending img{animation:leave var(--slow) var(--ease) forwards}.loop-card.pending .loop-x{display:none}.study-hint.below{margin:14px 0 0;font-size:14px}.loop-card.fresh:not(.ready){background:linear-gradient(100deg, var(--surface-2) 30%, var(--white) 50%, var(--surface-2) 70%);background-size:300% 100%;animation:1.4s linear infinite shimmer}.loop-card.fresh:not(.ready) img{opacity:0}.loop-card.fresh.ready img{animation:fade var(--slow) var(--ease)}.result-ring{flex:none}.style-page{max-width:1120px;animation:rise var(--slow) var(--ease);margin:0 auto}.style-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;margin:8px 0 24px;display:flex}.style-head h1{color:var(--green-900);font-size:clamp(28px,4vw,38px)}.style-words{color:var(--muted);margin-top:6px;font-size:15px}.style-palette{display:flex}.style-palette span{width:48px;height:48px;box-shadow:0 0 0 3px var(--white), var(--shadow-sm);animation:pop-in var(--slow) var(--ease) backwards;transition:transform var(--fast) var(--ease);border-radius:50%;margin-left:-10px}.style-palette span:first-child{margin-left:0}.style-palette span:hover{z-index:1;transform:translateY(-4px)}.style-bar{align-items:center;gap:12px;margin-bottom:26px;display:flex}.style-rooms{scrollbar-width:none;flex-wrap:nowrap;flex:1;min-width:0;padding:4px 2px 8px;overflow-x:auto}.style-rooms::-webkit-scrollbar{display:none}.style-rooms .chip{flex:none}.style-result{max-width:260px}.style-section+.style-section{margin-top:34px}.style-section.style-fold{margin-top:72px}.style-note{color:var(--muted);margin:-12px 0 22px;font-size:14px}.style-label{align-items:center;gap:8px;margin-bottom:14px;font-size:17px;font-weight:600;display:flex}.style-label.love{color:var(--green-700)}.style-label.skip{color:var(--muted)}.style-wall{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.style-tile{aspect-ratio:1;border-radius:var(--radius-lg);background:var(--surface-2);box-shadow:var(--shadow-sm);animation:pop-in var(--slow) var(--ease) backwards;transition:transform var(--slow) var(--ease), box-shadow var(--slow) var(--ease);margin:0;overflow:hidden}.style-tile img{object-fit:cover;width:100%;height:100%;transition:transform var(--slow) var(--ease)}.style-tile:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.style-tile:hover img{transform:scale(1.05)}.style-wall.dim .style-tile img{filter:saturate(.55)brightness(1.02);transition:filter var(--slow) var(--ease), transform var(--slow) var(--ease)}.style-wall.dim .style-tile:hover img{filter:none}.style-tile.skeleton-tile{display:block}.style-more{justify-content:center;margin-top:28px;display:flex}@media (width<=640px){.style-wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.style-palette span{width:38px;height:38px}.style-bar{flex-direction:column;align-items:stretch}.style-result{max-width:none}}.style-fold h2{margin:0}.style-fold-head{cursor:pointer;border-radius:var(--radius-lg);background:var(--glass-strong);width:100%;box-shadow:var(--shadow-sm);font:inherit;transition:box-shadow var(--fast) var(--ease), background var(--fast) var(--ease);border:0;align-items:center;gap:8px;margin:0;padding:14px 18px;font-size:16px;font-weight:600;display:flex}.style-fold-head:hover{box-shadow:var(--shadow);background:var(--white)}.style-fold-toggle{background:var(--surface-2);color:var(--text-2);transition:background var(--fast) var(--ease);border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.style-fold-head:hover .style-fold-toggle{background:var(--green-100);color:var(--green-900)}.style-fold-chev{transition:transform var(--slow) var(--ease);display:inline-flex;transform:rotate(90deg)}.style-fold.open .style-fold-chev{transform:rotate(-90deg)}.style-fold-body{transition:grid-template-rows var(--slow) var(--ease);grid-template-rows:0fr;display:grid}.style-fold.open .style-fold-body{grid-template-rows:1fr}.style-fold-body>div{overflow:hidden}.style-fold.open .style-fold-body>div{padding-top:16px}.decide{flex-direction:column;align-items:center;gap:18px;display:flex}.decide-stage,.decide-changes,.decide-actions,.decide-alert{width:100%;max-width:max(320px,min(100%,99vh));margin-left:auto;margin-right:auto}.decide-stage{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:var(--surface-2);line-height:0;position:relative;overflow:hidden}.decide-stage img{width:100%;height:auto;animation:fade var(--slow) var(--ease);display:block}.decide-stage.working img{filter:saturate(.85)brightness(1.03)}.decide-changes{opacity:0;transition:grid-template-rows var(--slow) var(--ease), opacity var(--slow) var(--ease), transform var(--slow) var(--ease);grid-template-rows:0fr;display:grid;transform:translateY(-6px)}.decide-changes.open{opacity:1;grid-template-rows:1fr;transform:none}.decide-changes>form{align-items:flex-end;gap:10px;padding:2px;display:flex;overflow:hidden}.decide-input{resize:none;border-radius:var(--radius-lg);flex:1;min-height:58px;padding:16px 18px;font-size:16px;line-height:1.45}.decide-send{border-radius:50%;flex:none;width:56px;height:56px;padding:0}.decide-actions{flex-wrap:wrap;justify-content:flex-end;gap:12px;display:flex}.decide-actions .btn.on{background:var(--surface-2);box-shadow:none}.decide-alert{margin-top:12px}.result.approved .shopping-list{animation:rise var(--slow) var(--ease)}@media (width<=640px){.decide-actions{z-index:10;background:var(--glass-strong);-webkit-backdrop-filter:blur(16px);box-shadow:var(--shadow-lg);border-radius:999px;padding:10px;position:sticky;bottom:12px}.decide-actions .btn{flex:1}}.pick-tile{border-radius:var(--radius-lg);background:var(--glass-strong);cursor:pointer;font:inherit;color:inherit;text-align:center;box-shadow:var(--shadow-sm);opacity:.85;animation:pop-in var(--slow) var(--ease) backwards;transition:box-shadow var(--fast) var(--ease), opacity var(--fast) var(--ease), transform var(--slow) var(--ease);border:0;padding:8px;position:relative}.pick-tile:hover{opacity:1;box-shadow:var(--shadow);transform:translateY(-2px)}.pick-tile.on{opacity:1;box-shadow:0 0 0 3px var(--green-500), var(--shadow)}.pick-tile img{aspect-ratio:4/3;object-fit:cover;border-radius:14px;width:100%}.pick-name{padding:10px 4px 4px;font-size:15px;font-weight:600;display:block}.pick-check{width:26px;height:26px;animation:pop-in var(--fast) var(--ease);font-size:14px;top:2px;right:2px}.pipeline{animation:rise var(--slow) var(--ease)}.progress-stage:not(.loaded){aspect-ratio:4/3}.progress-stage:not(.loaded):before{content:"";z-index:1;background:linear-gradient(100deg, var(--surface-2) 30%, var(--white) 50%, var(--surface-2) 70%);background-size:300% 100%;animation:1.4s linear infinite shimmer;position:absolute;inset:0}.progress-stage img{opacity:0;transition:opacity var(--slow) var(--ease)}.progress-stage.loaded img{opacity:1}.progress-line{align-items:center}.progress-line .spinner{width:16px;height:16px}.keep-hint{text-align:center;color:var(--muted);max-width:max(320px,min(100%,99vh));margin:16px auto 0;font-size:15px}
