@font-face{font-family:DM;src:url("/assets/fonts/DMSans-Variable.ttf") format("truetype");font-weight:100 1000;font-display:swap}
@font-face{font-family:RoomTC;src:url("/assets/fonts/NotoSansTC-UI-Variable.woff2") format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:RoomJP;src:url("/assets/fonts/NotoSansJP-UI-Variable.woff2") format("woff2");font-weight:400 700;font-display:swap}
:root{--paper:#f5f3ed;--surface:#fbfaf7;--stage:#e5e5dd;--ink:#242c27;--muted:#72786d;--line:#dcded4;--accent:#dce99b;--accent-hover:#cdda87;--coral:#b34b37;--font:DM,RoomTC,"Noto Sans",sans-serif;--radius:3px}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--paper);color:var(--ink)}html{font-family:var(--font);font-synthesis:none}html[lang=zh-TW]{--font:DM,RoomTC,"Microsoft JhengHei",sans-serif}html[lang=ja]{--font:DM,RoomJP,"Yu Gothic",sans-serif}body{font-size:15px;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button,a,input,select,textarea,label{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button,input,select,textarea{border-radius:var(--radius)}button{border:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.upload-tile:focus-within{outline:2px solid var(--ink);outline-offset:4px}button{transition:background .18s ease,color .18s ease,opacity .18s ease}a{color:inherit}svg{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}button svg{width:20px;height:20px}p,h1,h2,h3{margin:0}h1,h2{font-weight:500;letter-spacing:-.045em}h1,h2{font-size:25px;line-height:1.22}img{display:block;max-width:100%}button[hidden],[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-100px;left:20px;padding:12px;background:var(--accent);z-index:30}.skip-link:focus{top:12px}.topbar{height:76px;padding:0 32px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line)}.brand{text-decoration:none;display:flex;align-items:center;gap:10px;font-size:20px;font-weight:650;letter-spacing:.035em}.brand svg{width:25px;height:25px;stroke-width:1.7}.brand-dot{width:5px;height:5px;background:var(--coral);border-radius:50%;align-self:flex-start;margin:8px 0 0 -6px}.brand-note{color:var(--muted);font-size:14px;letter-spacing:.01em;}.header-tools{margin-left:auto;display:flex;align-items:center;gap:22px}.text-button{min-height:40px;padding:6px 0;background:none;font-size:14px;font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-color:transparent;}.text-button:hover{text-decoration-color:currentColor}.language-label select{appearance:none;border:0;background:none;padding:9px 20px 9px 0;cursor:pointer;font-size:14px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='m1 1 4 4 4-4' fill='none' stroke='%23242c27'/%3E%3C/svg%3E");background-position:right center;background-repeat:no-repeat;}.icon-button{display:grid;place-items:center;background:none;width:40px;height:40px;font-size:26px}.icon-button svg{width:21px;height:21px}.workspace{display:grid;grid-template-columns:minmax(235px,21%) minmax(0,1fr) minmax(290px,26%);height:calc(100dvh - 76px);min-height:0;max-height:none;}.wardrobe-panel,.decision-panel{padding:31px 25px 20px;overflow-y:auto;scrollbar-width:thin;min-height:0;overscroll-behavior:contain;}.wardrobe-panel{border-right:1px solid var(--line);display:flex;flex-direction:column}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.eyebrow{display:block;font-size:11px;letter-spacing:.12em;font-weight:600;line-height:1.5;margin-bottom:11px;color:var(--muted);}.tiny-index{align-self:flex-end;margin-bottom:3px;color:#8b8e83;font-size:12px;letter-spacing:.08em;}.panel-intro{font-size:14px;line-height:1.6;max-width:210px;color:var(--muted);margin-bottom:22px;}.segmented{display:flex;gap:2px}.segmented button{padding:8px 10px;min-height:44px;font-size:14px;background:transparent;color:var(--muted);white-space:normal;line-height:1.4;}.segmented button.active{background:var(--ink);color:var(--surface)}.catalog-filters{margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:14px}.catalog-filters button{flex:1;padding-left:4px;padding-right:4px}.catalog{display:grid;gap:18px}.product-card{background:none;text-align:left;width:100%;padding:0;position:relative}.product-image{aspect-ratio:4 / 5;background:#eae8e1;overflow:hidden;position:relative;border:1px solid transparent;transition:border .18s;width:min(100%,160px);margin-inline:auto;}.product-image img{height:100%;width:100%;object-fit:contain;transition:transform .25s;}.product-card:hover img{transform:none;}.product-card.selected .product-image{border-color:var(--ink)}.product-card.selected .product-image:after{content:"";position:absolute;inset:3px;border:1px solid var(--surface);pointer-events:none}.product-slot{position:absolute;top:10px;left:10px;display:grid;place-items:center;background:var(--surface);width:30px;height:30px;font-size:14px;font-weight:600;z-index:1;}.product-source{position:absolute;right:9px;bottom:9px;background:#faf9f3e8;padding:3px 7px;font-size:14px;letter-spacing:.02em;z-index:1;}.product-meta{display:flex;justify-content:space-between;gap:8px;margin-top:9px;align-items:baseline;flex-wrap:wrap;}.product-name{font-size:14px;font-weight:500;}.product-category{color:var(--muted);font-size:12px;margin-top:2px;}.product-price{font-size:14px;white-space:nowrap;}.upload-tile{display:flex;align-items:center;justify-content:center;gap:8px;border:1px dashed #b8bcaf;min-height:44px;margin-top:20px;font-size:14px;cursor:pointer;}.upload-tile svg{width:16px;height:16px}.upload-tile:hover{background:#e8eadf}.wardrobe-footnote{display:flex;gap:8px;font-size:12px;line-height:1.6;color:var(--muted);margin-top:auto;padding-top:28px;}.small-dot{display:block;width:4px;height:4px;background:var(--muted);border-radius:50%;flex-shrink:0;margin-top:6px}.studio-panel{padding:22px 26px 15px;display:flex;flex-direction:column;min-width:0;background:var(--surface);min-height:0;overflow-y:auto;scrollbar-width:thin;}.studio-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px;}.studio-heading h2{font-size:35px;letter-spacing:-.055em}.studio-heading .eyebrow{margin-bottom:8px}.connection-status{font-size:12px;line-height:1.5;display:flex;gap:6px;align-items:center;max-width:150px;padding-top:4px;color:var(--muted);}.status-dot{width:5px;height:5px;background:#929a87;border-radius:50%;flex-shrink:0}.connection-status.connected .status-dot{background:#4d7952}.connection-status.unavailable .status-dot{background:#bd7152}.stage-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:13px;flex-wrap:wrap;}.view-tabs button{padding:7px 9px;font-size:14px;min-height:44px;}.with-icon{display:flex;align-items:center;gap:7px;font-size:14px;white-space:normal;}.with-icon svg{width:14px;height:14px}.photo-stage{background:var(--stage);position:relative;flex:1 0 240px;min-height:240px;isolation:isolate;overflow:hidden;}.stage-background-label{position:absolute;z-index:-1;top:30%;left:50%;transform:translateX(-50%);font-size:48px;font-weight:500;letter-spacing:-.06em;color:#c6c9bc;line-height:1;max-width:250px;text-align:center}.original-view,.compare-view,.before-view{position:absolute;inset:0}.original-view>img{width:100%;height:100%;object-fit:contain;object-position:center;padding:12px 8px 44px;}.image-unavailable{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;gap:20px;text-align:center;font-size:18px;line-height:1.4;background:var(--stage)}.image-unavailable svg{width:80px;height:100px;stroke:#7e8972;stroke-width:.9}.stage-topline{position:absolute;z-index:4;top:17px;left:17px;right:17px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.image-kind{background:#fbfaf2e8;color:#3a4035;font-size:12px;letter-spacing:.03em;line-height:1.4;padding:6px 9px;backdrop-filter:blur(5px);max-width:calc(100% - 42px);}.small-icon{pointer-events:all;background:#fbfaf2e8;width:36px;height:36px;font-size:20px;line-height:1;}.stage-bottomline{position:absolute;bottom:0;left:0;right:0;padding:34px 18px 15px;background:linear-gradient(transparent,#222b263d);color:white;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;pointer-events:none;font-size:12px;text-shadow:0 1px 5px #0008;}.frame-mark{font-size:28px;font-weight:200;line-height:1}.studio-footer{display:flex;justify-content:space-between;gap:16px;padding-top:12px;font-size:12px;color:var(--muted);flex-wrap:wrap;}.studio-footer p{max-width:270px}.powered{text-align:right;font-size:12px;letter-spacing:.09em;white-space:nowrap;line-height:1.65;}.powered span{display:block;font-weight:600;color:#444f42}.decision-panel{border-left:1px solid var(--line);display:flex;flex-direction:column}.decision-panel .panel-heading{margin-bottom:21px}.look-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:18px}.look-switch button{background:none;display:flex;flex-direction:column;align-items:flex-start;padding:10px 9px;border:1px solid var(--line);gap:8px;text-align:left;font-size:14px;line-height:1.4;min-height:64px;color:var(--muted);}.look-switch button.active{background:#e9edda;border-color:#a9b18f;color:var(--ink)}.look-letter{font-size:14px;font-weight:600;line-height:1;}.selected-product{display:flex;align-items:center;gap:13px;margin-bottom:20px;min-height:59px}.selected-thumb{height:80px;width:64px;object-fit:contain;background:#eae8e1;flex-shrink:0;}.selected-info h3{font-weight:500;font-size:14px;line-height:1.3;margin-bottom:4px}.selected-info p{font-size:12px;color:var(--muted);}.decision-fields{border-top:1px solid var(--line);padding-top:17px}.field-pair{display:grid;grid-template-columns:1.2fr 1fr;gap:14px}.field-pair label>span,.notes-label{display:block;font-size:14px;margin-bottom:7px;color:#60695e;}.field-pair input{width:100%;height:39px;background:transparent;border:0;border-bottom:1px solid #bfc4b6;padding:4px 0;font-size:16px;outline-offset:2px}.input-affix{display:flex;gap:6px;border-bottom:1px solid #bfc4b6;height:39px}.input-affix select{width:58px;font-size:14px;appearance:none;background:none;border:none;}.input-affix input{border:none;min-width:0}.cost-line{display:flex;align-items:baseline;justify-content:space-between;padding-top:15px;font-size:14px;gap:10px;}.cost-line strong{font-size:24px;font-weight:500;letter-spacing:-.04em}.field-note{font-size:12px;line-height:1.5;color:var(--muted);margin-top:3px;}.notes-label{margin-top:19px}textarea{width:100%;resize:vertical;min-height:57px;max-height:130px;padding:9px 10px;border:1px solid var(--line);background:#f9f8f3;font-size:16px;line-height:1.5;}textarea::placeholder{color:#8c9085}.generate-area{margin-top:20px}.consent-line{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:1.55;color:#626c5e;margin-bottom:13px;cursor:pointer;}.consent-line input{accent-color:var(--ink);margin:3px 0 0;width:18px;height:18px;flex-shrink:0;}.primary-button{display:flex;justify-content:space-between;align-items:center;gap:14px;background:var(--accent);border:1px solid #bbc87d;min-height:44px;padding:11px 14px;width:100%;font-size:14px;font-weight:550;}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.secondary-button{border:1px solid #b5bba9;background:transparent;padding:10px 17px;min-height:44px;font-size:14px;}.secondary-button:hover{background:#e1e5d7}.generation-note{margin-top:8px;text-align:center;font-size:12px;line-height:1.5;color:var(--muted);}.save-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:17px;flex-wrap:wrap}.save-actions .text-button{font-size:14px;min-height:44px;text-decoration-color:#b1b8a8;}.save-actions .quiet{color:var(--muted);text-decoration-color:transparent}.private-note{display:flex;gap:6px;font-size:12px;line-height:1.5;color:var(--muted);padding-top:16px;margin-top:auto;}.private-note svg{width:13px;height:13px;flex-shrink:0}.message{padding:10px 12px;background:#f0e8dc;border:1px solid #d3bca4;font-size:14px;margin-top:10px;line-height:1.6;overflow-wrap:anywhere;}.message.error{background:#f9eae2;color:#7b3527;border-color:#e9c3b6}.job-status{font-size:14px;line-height:1.6;background:#e9eddf;border:1px solid #cdd5bb;padding:10px;margin-top:12px;}.job-status button{background:none;text-decoration:underline;font-size:14px;padding:5px;min-height:44px;}.compare-view{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#c7cabc}.compare-pane{position:relative;min-width:0;overflow:hidden;background:var(--stage)}.compare-pane>img{height:100%;width:100%;object-fit:contain;object-position:center;padding:12px 8px 44px;}.image-letter{position:absolute;top:55px;left:15px;font-size:15px;background:#faf9f0e8;display:grid;place-items:center;width:28px;height:28px;z-index:2}.result-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:20px;gap:12px;text-align:center;font-size:14px;color:#65705c;}.result-placeholder img{width:85px;height:100px;object-fit:contain;opacity:.8;}.result-placeholder small{font-size:12px;line-height:1.6;}.before-view>img,.after-layer img{width:100%;height:100%;object-fit:contain;object-position:center;padding:12px 8px 44px;}.after-layer{position:absolute;inset:0;clip-path:inset(0 0 0 50%)}.slider-line{position:absolute;top:0;bottom:0;left:50%;width:1px;background:#fcfbef;pointer-events:none;display:flex;align-items:center;justify-content:center}.slider-line span{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:#fbfaf4;color:var(--ink);flex-shrink:0;box-shadow:0 1px 10px #0002}.before-slider{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.before-slider:focus-visible{opacity:.15}.before-label,.after-label{position:absolute;bottom:49px;background:#faf9f0e8;padding:4px 8px;font-size:12px;pointer-events:none;}.before-label{left:12px}.after-label{right:12px}.retry-button{border:1px solid #b8bcaf;padding:7px 10px;background:#f7f6ef;font-size:14px;min-height:44px;}.loading-mark{width:20px;height:20px;border:1px solid #b2bba5;border-top-color:#374631;border-radius:50%;animation:turn 1.2s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}dialog{border:1px solid var(--line);padding:38px;max-width:520px;width:calc(100% - 36px);background:var(--surface);color:var(--ink);max-height:85dvh;overflow:auto}dialog::backdrop{background:#18221dcc;backdrop-filter:blur(4px)}dialog h2{font-size:30px;margin-bottom:21px}dialog p{font-size:14px;line-height:1.8;color:#626b5d;margin:0 0 15px}dialog ul{padding-left:20px;font-size:14px;line-height:1.8;color:#626b5d;}dialog a{text-underline-offset:3px}.dialog-close{position:absolute;right:12px;top:10px}.dialog-done{margin-top:10px}.noscript{padding:20px;background:#f8dcca;position:fixed;bottom:0;left:0;right:0}.input-error{border-color:var(--coral)!important}
@media(min-width:1600px){.workspace{grid-template-columns:320px minmax(0,1fr) 370px;max-width:1900px;margin:auto;border-inline:1px solid var(--line);}.wardrobe-panel,.decision-panel{padding:36px}.studio-panel{padding:32px 45px 18px}.catalog{gap:25px}.product-image{aspect-ratio:4 / 5;width:min(100%,180px);}.studio-heading h2{font-size:42px}.photo-stage{min-height:240px;}.decision-panel .panel-heading{margin-bottom:30px}.generate-area{margin-top:28px}}
@media(max-width:1150px) and (min-width:801px){.workspace{grid-template-columns:210px minmax(0,1fr) 280px;min-height:0;}.wardrobe-panel,.decision-panel{padding:25px 17px 16px}.studio-panel{padding:25px 18px 14px}.topbar{padding:0 23px}.studio-heading h2{font-size:30px}.brand-note{display:none}.studio-heading{flex-wrap:wrap}.connection-status{max-width:150px;padding:0;line-height:1.5;}.stage-toolbar{align-items:flex-start;flex-direction:column}.stage-toolbar .with-icon{align-self:flex-end;margin-top:-4px;min-height:26px}.product-image{aspect-ratio:4 / 5;width:min(100%,150px);}.look-switch button{font-size:14px;min-height:64px;gap:8px;}.field-pair{gap:9px}.save-actions{gap:4px}.private-note{font-size:12px;}}
@media(max-width:800px){.topbar{height:64px;padding:0 18px;gap:15px}.brand{font-size:17px;gap:7px}.brand svg{width:21px;height:21px}.brand-note{display:none}.header-tools{gap:13px}.header-tools>.text-button{display:none}.privacy-button{width:28px}.workspace{display:flex;flex-direction:column;height:auto;min-height:0;max-height:none}.studio-panel{order:0;padding:22px 18px 17px;overflow:visible;}.studio-heading{margin-bottom:14px}.studio-heading h2{font-size:31px}.eyebrow{font-size:11px;}.connection-status{max-width:108px;font-size:12px;}.stage-toolbar{margin-bottom:12px}.view-tabs button{font-size:14px;padding:7px;min-height:44px;}.stage-toolbar .with-icon{font-size:14px;gap:4px;}.stage-toolbar .with-icon svg{width:13px}.photo-stage{height:min(66dvh,650px);flex:none;min-height:350px;}.original-view>img{object-position:center;object-fit:contain;}.studio-footer{font-size:12px;line-height:1.6;}.studio-footer p{max-width:215px}.wardrobe-panel{order:1;border-right:0;border-block:1px solid var(--line);padding:24px 18px 20px;overflow:visible;display:block}.wardrobe-panel .panel-heading{margin-bottom:8px}.panel-intro{max-width:none;margin-bottom:13px;font-size:14px;}.catalog-filters{max-width:310px;padding-bottom:9px;margin-bottom:14px}.catalog{display:grid;grid-auto-flow:column;grid-auto-columns:calc(50% - 7px);grid-template-rows:1fr;gap:14px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory}.product-card{scroll-snap-align:start}.product-image{aspect-ratio:4 / 5;}.product-name{font-size:14px;}.product-price{font-size:14px;}.product-category{font-size:12px;}.upload-tile{margin-top:12px;min-height:44px;}.wardrobe-footnote{font-size:12px;padding-top:11px;margin:0;}.decision-panel{order:2;border:0;overflow:visible;padding:26px 18px 22px;display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.decision-panel .panel-heading{grid-column:1/-1;margin-bottom:17px}.decision-panel .panel-heading h2{font-size:27px}.look-switch{grid-column:1/-1;gap:12px;margin-bottom:17px}.look-switch button{min-height:64px;flex-direction:row;align-items:center;gap:8px;padding:12px;font-size:14px;}.selected-product{grid-column:1/-1;gap:12px;margin-bottom:19px}.selected-thumb{width:56px;height:70px;object-fit:contain;flex-shrink:0;}.decision-fields{grid-column:1/-1}.field-pair{gap:22px}.cost-line{padding-top:17px}.notes-label{grid-column:1/-1;margin-top:19px}textarea{grid-column:1/-1;min-height:70px;font-size:16px;}.generate-area{grid-column:1/-1;margin-top:22px}.consent-line{font-size:14px;line-height:1.6;margin-bottom:15px;gap:11px;}.consent-line input{width:18px;height:18px;}.primary-button{min-height:44px;font-size:14px;padding:14px 17px;}.generation-note{font-size:12px;}.save-actions{grid-column:1/-1;justify-content:flex-start;gap:20px;padding-top:15px}.save-actions .text-button{font-size:14px;min-height:44px;}.private-note{grid-column:1/-1;font-size:12px;padding-top:16px;}.decision-fields .field-note{font-size:12px;}.field-pair label>span,.notes-label{font-size:14px;}.image-kind{font-size:12px;letter-spacing:.03em;max-width:calc(100% - 42px);}.stage-topline{top:13px;left:13px;right:13px}.stage-bottomline{font-size:12px;padding-inline:13px;}.powered{font-size:12px;}.compare-view .compare-pane>img{object-fit:contain;object-position:center;}.result-placeholder{padding:14px;font-size:14px;}.result-placeholder img{width:70px;height:90px;object-fit:contain;}.image-letter{top:50px;left:10px}.photo-stage[data-view=compare]{height:min(64dvh,590px)}dialog{padding:31px 24px}dialog h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.loading-mark{border-style:dashed}}

/* Keep the application within a short desktop viewport; each panel owns its scrolling. */
.wardrobe-panel > *, .decision-panel > *, .studio-panel > * { flex-shrink: 0; }
.selected-info, .field-pair label { min-width: 0; }
.selected-info, .product-name { overflow-wrap: anywhere; }
.view-tabs { flex-wrap: wrap; }
.product-card:hover .product-image { background: #e3e3d9; }
.studio-footer > p { flex: 1 1 200px; }
@media (min-width: 801px) and (max-height: 760px) {
  .wardrobe-panel, .decision-panel { padding-top: 20px; }
  .studio-panel { padding-top: 18px; }
  .studio-heading { margin-bottom: 12px; }
  .studio-heading h2 { font-size: 30px; }
  .photo-stage { flex-basis: 220px; min-height: 220px; }
  .message { max-height: 112px; overflow-y: auto; }
}
@media (max-width: 800px) {
  .stage-toolbar { align-items: flex-start; gap: 6px; }
  .stage-toolbar .view-tabs { flex: 1 1 100%; }
  .stage-toolbar .with-icon { margin-left: auto; }
}
