:root{--bg:#f7f6f2;--paper:#fff;--ink:#272828;--muted:#686966;--line:#e4e3dd;--accent:#65604d;--violet:#e9e5f4;--purple:#5c467e;--dark:#252827;--radius:1rem}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:1rem/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button,a{touch-action:manipulation}button{color:inherit}a{color:inherit}svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}svg.sprite{position:absolute;width:0;height:0;overflow:hidden}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,3.6vw,2.9rem);line-height:1.12;letter-spacing:-.06em;font-weight:550;margin-bottom:.75rem}h2{font-size:1.25rem;line-height:1.35;font-weight:550;letter-spacing:-.025em}h3{font-size:1rem}p{line-height:1.6}button:focus-visible,a:focus-visible{outline:3px solid #8d74ac;outline-offset:3px}input:focus,select:focus,textarea:focus{outline:2px solid #8d74ac;outline-offset:1px}.muted{color:var(--muted)}.small{font-size:.875rem}.eyebrow{display:block;font-size:.6875rem;letter-spacing:.16em;font-weight:650;margin-bottom:1.2rem;color:var(--muted)}.brand{text-decoration:none;display:flex;align-items:center;gap:.5rem;font-size:2.25rem;font-weight:750;letter-spacing:-.09em;line-height:1}.brand span{font-size:1.9rem;color:#c5c49b;font-weight:400;letter-spacing:0}.button{border:1px solid transparent;min-height:3rem;border-radius:.55rem;padding:.75rem 1.15rem;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;font-size:.875rem;font-weight:550;text-decoration:none;transition:background .15s,transform .15s}.button:active{transform:translateY(1px)}.primary{background:var(--dark);color:white}.primary:hover{background:#41463f}.secondary{background:var(--paper);border-color:var(--line)}.secondary:hover{background:#eeede7}.wide{width:100%}.text-button{border:0;background:transparent;min-height:2.75rem;padding:.3rem 0;display:inline-flex;align-items:center;gap:.7rem;font-size:.875rem;text-decoration:none}.text-button:hover{text-decoration:underline}.icon-button{width:2.75rem;height:2.75rem;border:0;background:transparent;display:grid;place-items:center;border-radius:50%}.icon-button:hover{background:#f0efeb}.pill{display:inline-block;border:1px solid #d5d3df;border-radius:2rem;font-size:.75rem;padding:.35rem .8rem;color:#625371}.heading-dot{color:#9a91b4}label{display:flex;flex-direction:column;gap:.45rem;font-size:.875rem;font-weight:500;margin-bottom:1rem}input:not([type=checkbox]):not([type=file]),textarea,select{width:100%;background:#fff;border:1px solid #d9d8d2;border-radius:.5rem;padding:.75rem .85rem;color:var(--ink);min-height:2.875rem;font-size:1rem;max-width:100%}textarea{resize:vertical}input:disabled{background:#f5f4f1;color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr;gap:0}.form-error{color:#a23f3f;font-size:.875rem;margin:.5rem 0;min-height:.2rem}.boot{padding:3rem;color:var(--muted)}[hidden]{display:none!important}
.auth-header{padding:1.5rem;display:flex;align-items:center;justify-content:space-between}.auth-header>.muted{display:none}.auth-layout{max-width:75rem;margin:auto;padding:1.5rem;display:grid;gap:3rem}.auth-story h1{font-size:3.5rem;margin-bottom:1.5rem;line-height:1.04;letter-spacing:-.06em}.auth-story h1 em{font-family:Georgia,serif;font-weight:400;color:#777363}.auth-story p{color:var(--muted);font-size:1.125rem}.closet-art{display:none;position:relative;margin-top:3rem;width:23rem;height:12rem}.art-line{border:1px solid #b9b6ac;border-bottom:0;width:20rem;height:11rem;border-radius:3rem 3rem 0 0;position:absolute;bottom:0}.closet-art svg{position:absolute;top:1rem;left:4rem;width:9rem;height:9rem;color:#817c6a;transform:rotate(-10deg);stroke-width:.7}.art-note{position:absolute;right:0;bottom:1rem;background:#e9e5f4;padding:1.1rem;font-size:.75rem;transform:rotate(5deg);box-shadow:0 .3rem .8rem #22222208}.art-dot{position:absolute;right:4rem;top:0;font-size:4rem;color:#a6a78d}.auth-panel{background:white;padding:1.8rem;border:1px solid var(--line);border-radius:1.25rem;align-self:center;max-width:30rem;width:100%}.auth-panel h2{font-size:1.75rem;margin:1.5rem 0 .5rem;letter-spacing:-.04em}.auth-panel form{margin-top:1.8rem}.auth-switch{text-align:center;font-size:.875rem;margin:1rem 0}.auth-switch .text-button{font-weight:600}.privacy{font-size:.75rem;color:var(--muted);text-align:center;margin:1.5rem 0 0;line-height:1.8}
.sidebar{background:var(--dark);color:#f4f2ec;padding:1rem 1.25rem;display:flex;align-items:center;justify-content:space-between}.sidebar .brand{font-size:1.8rem}.sidebar-caption{display:none}.sidebar nav{display:flex;gap:.25rem}.nav{border:0;color:#b8bfba;background:transparent;padding:.6rem;min-height:2.75rem;min-width:2.75rem;border-radius:.55rem;display:flex;align-items:center;gap:.8rem;text-align:left}.nav span{display:none}.nav.active{background:#41453f;color:#fff}.nav:hover{background:#383e38}.sidebar-bottom{display:none}.workspace{min-width:0;display:flex;flex-direction:column;min-height:calc(100dvh - 4.75rem)}.topbar{padding:1rem 1.25rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:.75rem;color:var(--muted);background:var(--bg)}.topbar-right{display:flex;gap:1rem;align-items:center;flex-shrink:0}#breadcrumb{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#city-label{display:none}.main{padding:1.8rem 1.25rem 3rem;width:100%;max-width:90rem;margin:auto;flex:1}.page-heading{display:flex;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:1.8rem}.page-heading .eyebrow{margin-bottom:.8rem}.page-heading p{margin-bottom:0;font-size:.9375rem}.page-heading .button{flex-shrink:0}.wardrobe-banner{border-radius:var(--radius);background:#eae7df;padding:1.5rem;display:flex;justify-content:space-between;overflow:hidden;min-height:11rem}.wardrobe-banner h2{font-size:1.45rem;line-height:1.3;letter-spacing:-.035em;margin-bottom:.5rem}.wardrobe-banner .eyebrow{font-size:.625rem;margin-bottom:.75rem}.wardrobe-banner .text-button{font-weight:600}.banner-graphic{align-self:center;display:none;color:#7b7865;transform:rotate(-12deg);margin-right:2rem}.banner-graphic svg{width:6rem;height:6rem;stroke-width:.7}.banner-graphic span{font:italic 1.125rem Georgia,serif;display:block;transform:rotate(12deg);padding-left:3.5rem}.collection-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:2.3rem 0 1rem}.collection-heading h2{margin:0;white-space:nowrap}.collection-heading h2 span{color:#8b8b83;font-size:.875rem;margin-left:.5rem;font-weight:400}.search-field{margin:0;display:flex;flex-direction:row;align-items:center;gap:.5rem;max-width:14rem;min-width:0}.search-field svg{color:#8c8d85}.search-field input{background:transparent!important;border:0!important;min-height:2.75rem!important;padding:.4rem!important;font-size:.875rem!important;min-width:0}.filters{display:flex;gap:.5rem;overflow-x:auto;padding:.25rem 0 1rem;margin-bottom:.6rem;scrollbar-width:thin}.filter{border:1px solid var(--line);background:transparent;padding:.5rem .8rem;min-height:2.75rem;white-space:nowrap;border-radius:2rem;font-size:.8125rem;color:var(--muted)}.filter.active{background:var(--dark);border-color:var(--dark);color:white}.items-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem .8rem}.item-card{border:0;background:transparent;padding:0;text-align:left;min-width:0}.item-photo{position:relative;background:#eeede8;border-radius:.7rem;overflow:hidden;aspect-ratio:4/5}.item-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.item-card:hover img{transform:scale(1.03)}.item-photo .status{position:absolute;bottom:.6rem;left:.6rem;border-radius:2rem;background:#fffef7ec;padding:.2rem .55rem;font-size:.6875rem}.item-card h3{margin:.7rem 0 .2rem;overflow-wrap:anywhere;font-weight:550;font-size:.9375rem}.item-card p{font-size:.75rem;color:var(--muted);margin:0}.empty{text-align:center;padding:2.2rem 1rem 1rem;display:flex;flex-direction:column;align-items:center}.empty h2{margin:.8rem 0 .5rem}.empty p{font-size:.875rem;color:var(--muted);margin-bottom:1.25rem}.empty .small{margin-top:1rem}.empty-icon{display:grid;place-items:center;width:4rem;height:4rem;background:#eae7df;border-radius:1.2rem;color:#7c7868}.empty-icon svg{width:2rem;height:2rem}.footer{border-top:1px solid var(--line);padding:1rem 1.25rem;display:flex;justify-content:space-between;gap:1rem;font-size:.625rem;color:var(--muted)}.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:1.5rem}.panel p{font-size:.875rem}.stylist-layout{display:grid;gap:1.25rem}.weather-card{background:var(--violet);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem}.weather-head{display:flex;align-items:center;justify-content:space-between}.weather-head p{margin:0;font-size:.8125rem;color:#635a75}.weather-temp{font-size:2.75rem;letter-spacing:-.06em;line-height:1.2;margin:.7rem 0}.weather-details{font-size:.8125rem;display:flex;gap:1rem;flex-wrap:wrap;color:#635a75}.weather-hours{display:flex;justify-content:space-between;padding-top:1rem;border-top:1px solid #cfc8de;margin-top:1rem;font-size:.8125rem}.weather-hours strong{display:block}.weather-source{display:block;margin-top:.75rem;font-size:.6875rem;color:#635a75}.mode-note{background:#f4f2ec;padding:.8rem;border-radius:.5rem;color:var(--muted);font-size:.75rem!important}.look-placeholder{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:20rem}.look-placeholder>svg{width:3rem;height:3rem;color:#a29bb3;margin-bottom:1.5rem}.look-placeholder p{max-width:22rem}.look-result .pill{margin-bottom:1rem}.look-result h2{font-size:1.65rem;margin-bottom:.5rem}.look-result .explanation{white-space:pre-line;color:var(--muted);line-height:1.8}.look-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem;margin:1.3rem 0}.look-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:.65rem;background:#f0efeb}.look-item strong{display:block;font-size:.8125rem;margin-top:.4rem}.look-item .text-button{font-size:.75rem;color:var(--purple)}.history{margin-top:2rem}.history button{display:block;background:white;border:1px solid var(--line);padding:1rem;width:100%;text-align:left;border-radius:.5rem;margin-bottom:.5rem;min-height:3rem}.history button span{font-size:.8125rem;color:var(--muted);display:block}.shopping-intro{max-width:47rem;padding:1.75rem}.shopping-intro h2{font-size:2rem;margin:1.5rem 0 1rem;letter-spacing:-.04em}.shopping-intro>p{color:var(--muted);max-width:35rem}.shopping-intro form{margin:1.5rem 0}.shop-links{display:flex;gap:.75rem;flex-wrap:wrap;margin:1.25rem 0}.shop-links a{flex:1;min-width:10rem}.profile-panel{max-width:45rem}.profile-panel .button{margin-top:.5rem}
dialog{border:1px solid var(--line);border-radius:1.1rem;padding:1.5rem;max-width:36rem;width:calc(100% - 1.5rem);max-height:90dvh;overflow:auto;color:var(--ink);background:var(--bg)}dialog::backdrop{background:#1d201c70;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dialog-heading h2{font-size:1.5rem;margin:0}.upload-zone{position:relative;background:#eae7df;border:1px dashed #bcb8ab;border-radius:.65rem;overflow:hidden;min-height:10rem;margin-bottom:1rem}.upload-label{margin:0;min-height:10rem;align-items:center;justify-content:center;cursor:pointer;padding:1.5rem;text-align:center}.upload-label svg{width:1.8rem;height:1.8rem}.upload-label span{font-size:.75rem;color:var(--muted)}.upload-label input{max-width:100%;font-size:.75rem;margin-top:.5rem}.upload-zone img{display:block;max-width:100%;height:14rem;object-fit:contain;margin:auto}.upload-zone:has(img:not([hidden])) .upload-label{min-height:0;padding:.7rem}.upload-zone:has(img:not([hidden])) .upload-label>svg,.upload-zone:has(img:not([hidden])) .upload-label>strong,.upload-zone:has(img:not([hidden])) .upload-label>span{display:none}.check-label{display:flex;flex-direction:row;align-items:center;gap:.75rem;min-height:2.75rem}.check-label input{width:1.25rem;height:1.25rem;accent-color:#5b6156}.dialog-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.danger{color:#a23f3f}.toast{position:fixed;bottom:1.5rem;left:50%;transform:translateX(-50%);background:var(--dark);color:white;padding:.85rem 1.4rem;border-radius:.7rem;font-size:.875rem;box-shadow:0 .5rem 2rem #0002;z-index:100;max-width:calc(100% - 2rem);width:max-content}
@media(min-width:640px){.form-row{grid-template-columns:1fr 1fr;gap:1rem}.page-heading{flex-direction:row;align-items:center;justify-content:space-between}.banner-graphic{display:block}.items-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem 1.1rem}.main{padding:2.5rem 2rem 3rem}#city-label{display:inline}.topbar{padding:.8rem 2rem}.footer{padding:1rem 2rem}.wardrobe-banner{padding:1.7rem 2rem}.auth-header{padding:2rem 3rem}.auth-header>.muted{display:block;font-size:.875rem}.auth-panel{padding:2.5rem}.auth-layout{padding:2rem 3rem}}
@media(min-width:1024px){#app-shell{display:grid;grid-template-columns:14.5rem minmax(0,1fr)}.sidebar{height:100dvh;position:sticky;top:0;padding:2.25rem 1.1rem 1.25rem;flex-direction:column;align-items:stretch;justify-content:flex-start}.sidebar .brand{padding-left:1rem;font-size:2.4rem}.sidebar .brand span{font-size:2.1rem}.sidebar-caption{display:block;font-size:.5rem;letter-spacing:.1em;color:#a6afa6;margin:1.1rem 0 2.5rem 1rem}.sidebar nav{flex-direction:column;gap:.5rem}.nav{padding:.85rem 1rem;font-size:.8125rem;min-height:3.1rem}.nav span{display:inline}.nav .nav-count{margin-left:auto;font-size:.6875rem;background:#5c6258;border-radius:.3rem;padding:0 .3rem}.sidebar-bottom{margin-top:auto;display:block}.side-note{margin:2rem .8rem;color:#afb6a8;display:flex;align-items:center;gap:1rem}.side-note>span{font-size:2.5rem;color:#bfc2a0}.side-note p{font-size:.75rem;margin:0}.account{border:0;border-top:1px solid #454b43;display:flex;gap:.7rem;align-items:center;background:transparent;color:white;text-align:left;width:100%;padding:1.2rem .5rem 0}.account strong{font-size:.8125rem;font-weight:500;display:block;max-width:7rem;overflow:hidden;text-overflow:ellipsis}.account small{font-size:.625rem;color:#aeb6ad}.account>span:last-child{margin-left:auto;color:#aeb6ad}.avatar{display:grid;place-items:center;background:#d4d1b9;color:#3e4236;border-radius:50%;width:2.2rem;height:2.2rem;flex-shrink:0;font-size:.875rem}.main{padding:2.5rem 3rem}.topbar{padding:.8rem 3rem}.footer{padding:1rem 3rem}.stylist-layout{grid-template-columns:minmax(16rem,.85fr) minmax(20rem,1.15fr)}.auth-layout{grid-template-columns:1fr 1fr;gap:7rem;min-height:calc(100dvh - 7rem);align-items:center;max-width:78rem;padding-bottom:4rem}.auth-story h1{font-size:4.7rem}.closet-art{display:block}.auth-story{padding-bottom:1rem}.auth-panel{justify-self:end}.empty{padding-top:2.3rem}.empty-icon{width:4.5rem;height:4.5rem}}
@media(min-width:1280px){.items-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.main{padding:3rem 3.5rem}.wardrobe-banner h2{font-size:1.75rem}.wardrobe-banner{min-height:12.5rem}.banner-graphic{margin-right:4rem}.banner-graphic svg{width:7rem;height:7rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

.look-collages {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr));
  gap: 14px;
  margin-block: 16px;
}
.look-collages:empty { display: none; }
.look-collages figure { margin: 0; min-width: 0; }
.look-collages img { display: block; width: 100%; height: auto; border-radius: 12px; }
.look-collages figcaption { margin-top: 6px; font-weight: 600; }
