@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:200 800;font-display:swap;src:url('/fonts/plus-jakarta-sans-latin-wght-normal.woff2') format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url('/fonts/jetbrains-mono-latin-wght-normal.woff2') format('woff2')}
:root{

  font:100%/1.55 var(--font-family);
  background:var(--bg);
  color:var(--ink)}
*{
  box-sizing:border-box}
body{
  margin:0;
  min-width:0;
  background:var(--texture),radial-gradient(ellipse at 90% 0,var(--tint),transparent 60%);
  min-height:100dvh}
a{
  color:var(--accent);
  text-underline-offset:3px}
button,input,textarea{
  font:inherit}
button,a,input,textarea,summary{
  -webkit-tap-highlight-color:transparent}
button{
  min-height:var(--control);
  padding:.65rem 1.1rem;
  border:1px solid var(--line);
  border-radius:var(--radius-small);
  background:var(--surface);
  color:var(--ink);
  cursor:pointer;
  margin:.25rem .25rem .25rem 0;
  transition:transform var(--duration) var(--ease),opacity var(--duration) var(--ease)}
button:active{
  transform:scale(.98)}
button:disabled{
  opacity:.5;
  cursor:not-allowed}
form>button,#signin,#setup-device{
  background:var(--gradient);
  color:var(--on-accent);
  border-color:transparent;
  font-weight:var(--weight)}
nav{
  display:flex;
  flex-direction:column;
  gap:.5rem}
nav a{
  display:flex;
  align-items:center;
  min-height:48px;
  padding:.7rem 1rem;
  border-radius:var(--radius);
  color:var(--muted);
  text-decoration:none;
  font-weight:550}
nav a[aria-current]{
  background:var(--gradient);
  color:var(--on-accent);
  box-shadow:var(--shadow)}
h1{
  font-size:var(--text-title);
  font-weight:var(--weight);
  letter-spacing:var(--tracking);
  margin:.5rem 0 1rem}
h2{
  font-size:1.25rem;
  font-weight:var(--weight);
  margin:0 0 1rem}
h3{
  font-size:1rem;
  font-weight:var(--weight)}
p{
  color:var(--muted);
  overflow-wrap:anywhere}
section{
  margin:1.5rem 0;
  padding:1.5rem;
  border-radius:var(--radius-large);
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow)}
label{
  display:block;
  margin:.75rem 0 .35rem}
input,textarea{
  display:block;
  width:100%;
  min-height:44px;
  padding:.75rem;
  border:1px solid var(--line);
  border-radius:var(--radius-small);
  background:var(--solid);
  color:var(--ink);
  font-size:1rem}
textarea{
  resize:vertical}
input[type=checkbox]{
  display:inline-block;
  width:1.25rem;
  min-height:1.25rem;
  vertical-align:middle;
  margin-right:.5rem}
input[type=file]{
  max-width:100%;
  padding:.5rem}
input::file-selector-button{
  border:0;
  padding:.6rem;
  border-radius:var(--radius-small);
  font:inherit;
  background:var(--bg);
  color:var(--ink);
  margin-right:.5rem}
:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:3px}
#status,#chat-banner,#wardrobe-status{
  font-size:var(--text-small);
  min-height:1.5rem}
#status:empty,#wardrobe-status:empty{
  display:none}
details{
  border-top:1px solid var(--line);
  margin-block:1rem;
  padding-top:.4rem}
summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:44px;
  cursor:pointer;
  font-weight:550;
  color:var(--muted);
  border-radius:var(--radius-small);
  padding:.5rem}
summary::-webkit-details-marker{
  display:none}
summary:after{
  content:'›';
  font-size:1.5rem;
  transform:rotate(0);
  transition:transform var(--duration) var(--ease)}
details[open]>summary:after{
  transform:rotate(90deg)}
#chat-history li{
  max-width:85%;
  padding:.8rem 1rem;
  border-radius:var(--radius-large);
  background:var(--surface);
  border:1px solid var(--line);
  overflow-wrap:anywhere;
  white-space:pre-wrap;
  animation:enter var(--duration) var(--ease)}
#chat-history .owner{
  align-self:flex-end;
  background:var(--solid);
  border-bottom-right-radius:4px}
#chat-history .assistant{
  align-self:flex-start;
  border-bottom-left-radius:4px}
#chat-history small{
  display:block;
  font-size:.75rem;
  color:var(--muted);
  margin-bottom:.3rem}
#chat-form label{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%)}
#typing{
  font-size:var(--text-small)}
#item-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));
  gap:1rem;
  margin-top:1.5rem}
article{
  padding:1rem;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:var(--solid);
  min-width:0;
  box-shadow:var(--shadow)}
article img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:contain;
  border-radius:var(--radius-small);
  background:var(--bg)}
#try-it-result img{
  max-width:100%;
  height:auto;
  max-height:70dvh;
  object-fit:contain}
#today-outfit{
  padding:1.5rem;
  border:1px solid var(--line);
  border-radius:var(--radius-large);
  background:var(--surface);
  min-height:140px}
.collage{
  display:flex;
  gap:.5rem;
  overflow:hidden}
.collage img{
  width:30%;
  height:auto;
  aspect-ratio:1;
  object-fit:contain}
.chips{
  display:flex;
  flex-wrap:wrap;
  gap:.3rem}
.chips span{
  font-size:.75rem;
  padding:.2rem .6rem;
  background:var(--bg);
  border-radius:var(--radius-small);
  color:var(--muted)}
#photo-upload{
  border:1px dashed var(--line);
  border-radius:var(--radius);
  padding:1rem;
  margin-block:1rem}
#devices{
  list-style:none;
  padding:0}
#devices li{
  display:flex;
  gap:1rem;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding:1rem 0;
  overflow-wrap:anywhere}
#devices span{
  min-width:0}
#shopping-suggestions{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));
  gap:1rem}
pre{
  white-space:pre-wrap;
  overflow-wrap:anywhere}
.skip{
  position:fixed;
  top:-5rem;
  left:1rem;
  z-index:10;
  background:var(--solid);
  padding:1rem}
.skip:focus{
  top:1rem}
.sr-only{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip-path:inset(50%)}
[hidden]{
  display:none!important}
@supports(backdrop-filter:blur(var(--blur))){
  header,#chat-form,section{
  backdrop-filter:blur(var(--blur))}
}
@media(hover:hover){
  article:hover{
  box-shadow:var(--elevation)}
button:hover,summary:hover,nav a:not([aria-current]):hover{
  box-shadow:var(--elevation)}
}
@keyframes enter{
  from{
  opacity:0;
  transform:translateY(5px)}
to{
  opacity:1;
  transform:translateY(0)}
}

@media(prefers-reduced-transparency:reduce){
  header,section,#chat-form{
  background:var(--solid);
  backdrop-filter:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
  animation:none!important;
  transition:none!important;
  scroll-behavior:auto!important}
::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){
  animation:none!important}
}

#budget-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));
  gap:1rem;
  margin:1rem 0}
.stat{
  background:var(--solid);
  border:1px solid var(--line);
  padding:1rem;
  border-radius:var(--radius);
  font-variant-numeric:tabular-nums}
.stat span{
  font-size:var(--text-small);
  color:var(--muted)}
.stat strong{
  display:block;
  font-size:1.5rem;
  font-weight:var(--weight);
  margin:.5rem 0}
progress{
  display:block;
  width:100%;
  height:6px;
  accent-color:var(--accent);
  margin:.5rem 0}
.skeleton{
  aspect-ratio:1;
  background:var(--bg);
  border-radius:var(--radius-small);
  display:grid;
  place-items:center}


.icon-sprite{
  position:absolute;
  width:0;
  height:0;
  overflow:hidden}
nav svg{
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linejoin:round;
  stroke-linecap:round;
  flex-shrink:0}
nav a{
  gap:.75rem}
#item-grid article{
  display:flex;
  flex-direction:column}
#item-grid article>img{
  order:-1}
#item-grid article>details{
  margin-top:auto}
#item-grid h3{
  margin:.75rem 0}
.stat progress{
  border:0}
#chat-banner{
  border-radius:var(--radius-small);
  background:var(--surface);
  padding:.5rem .75rem}
#chat-banner:empty{
  display:none}



.collage{
  min-height:140px}
.collage:empty{
  background:var(--bg);
  border-radius:var(--radius-small)}

select{font:inherit;min-height:44px;padding:.5rem;border:1px solid var(--line);border-radius:var(--radius-small);background:var(--solid);color:var(--ink)}
#theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1rem}
.theme-choice{display:flex;flex-direction:column;gap:.5rem;text-align:left;padding:.75rem;margin:0;min-width:0}
.theme-choice>span:last-child{font-size:var(--text-small);color:var(--muted)}
.theme-preview{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;width:100%;min-height:150px;padding:1rem;background:var(--solid);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);font-family:var(--font-family)}
.preview-title{grid-column:1/-1;font-weight:var(--weight);letter-spacing:var(--tracking)}
.preview-button{padding:.45rem;background:var(--gradient);color:var(--on-accent);border-radius:var(--radius-small);font-size:.8rem;text-align:center}
.preview-chip{align-self:center;padding:.2rem .5rem;border:1px solid var(--line);border-radius:var(--radius-large);font-size:.75rem;color:var(--muted)}
.preview-gradient{grid-column:1/-1;height:6px;background:var(--gradient);border-radius:var(--radius)}


h2,h3{letter-spacing:var(--tracking)}
.theme-preview{background:var(--surface);backdrop-filter:blur(var(--blur))}
@media(prefers-reduced-transparency:reduce){.theme-preview{background:var(--solid);backdrop-filter:none}}
/* The shell always allocates the remaining track to content. */
:root{--navigation:14rem;--tabs:0px;--viewport:100dvh}
*{min-width:0}
html{overflow-x:clip}
body{display:grid;grid-template-columns:var(--navigation) minmax(0,1fr);isolation:isolate}
body::before,body::after{content:'';position:fixed;inset:-15%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 15% 20%,var(--tint),transparent 55%),radial-gradient(ellipse at 85% 70%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 50%);animation:ambient 70s ease-in-out infinite alternate}
body::after{transform:rotate(180deg);animation-delay:-35s;opacity:.6}
@keyframes ambient{to{transform:translate3d(3%,2%,0) scale(1.04)}}
header{position:sticky;top:0;height:100dvh;padding:clamp(1rem,2vw,2rem) 1rem;z-index:5;background:var(--surface);border-right:1px solid var(--line);backdrop-filter:blur(var(--blur))}
header>a{display:flex;align-items:center;gap:.75rem;font-size:1.25rem;font-weight:650;text-decoration:none;margin-bottom:2rem;padding:.5rem}
.brand-mark{display:block;flex-shrink:0;max-width:100%}
main{width:100%;max-width:90rem;margin:0 auto;padding:clamp(1rem,3vw,3rem);overflow-wrap:anywhere}
section{padding:clamp(1rem,2vw,1.5rem);margin:1.5rem 0}
h1{line-height:1.25;margin:0 0 1.5rem}h2,h3{line-height:1.35;letter-spacing:-.015em}
#account-state{font-size:.75rem;margin:2rem .5rem}
#signout{position:fixed;bottom:1rem;left:1rem;width:calc(var(--navigation) - 2rem);z-index:6;margin:0}
body[data-signed-in=false] main:has(#signin-panel:not([hidden]))>h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#signin-panel{max-width:26rem;margin:clamp(2rem,12vh,9rem) auto;padding:clamp(1.5rem,4vw,3rem);text-align:center}
#signin-panel>.brand-mark{margin:0 auto 1.5rem}#signin-heading{font-size:1.5rem}#signin{width:100%;margin:0}#signin-panel details{font-size:.875rem;text-align:left;border:0;margin-bottom:0}#signin-panel summary{font-weight:400;justify-content:center}#signin-panel form{text-align:left}
body[data-page=chat][data-signed-in=true] main{display:flex;flex-direction:column;height:var(--viewport);padding-bottom:calc(1rem + var(--tabs));}
body[data-page=chat][data-signed-in=true] main>h1{margin-bottom:.5rem}
#chat-page{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:52rem;margin:0 auto;padding:0;border:0;box-shadow:none;background:transparent;backdrop-filter:none}
#chat-history{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;list-style:none;padding:.5rem .25rem;margin:.5rem 0;gap:1rem;scrollbar-gutter:stable}
#chat-history li{max-width:min(88%,65ch);flex-shrink:0;backdrop-filter:blur(var(--blur));line-height:1.55}
#chat-history li.grouped{margin-top:-.75rem}
#chat-history .owner{background:var(--gradient);color:var(--on-accent);border-color:transparent}
#chat-history .owner small{color:inherit;opacity:1}
#chat-history .briefing{align-self:stretch;max-width:100%;border-top:2px solid var(--accent);border-radius:var(--radius);background:var(--surface)}
#chat-history small{font-size:.6875rem;letter-spacing:.015em}
#chat-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem 0}
#chat-empty p{margin:0;font-size:.875rem}#chat-empty:not([hidden])+#chat-history:empty{flex:0;margin:0;padding:0}
#chat-form{position:static;display:flex;flex-shrink:0;align-items:end;gap:.5rem;width:100%;padding:.5rem;border:1px solid var(--line);border-top-color:color-mix(in srgb,var(--line),var(--solid) 25%);border-radius:2rem;background:var(--surface);backdrop-filter:blur(var(--blur));box-shadow:var(--elevation);margin-top:.5rem}
#chat-form textarea{flex:1;min-height:3rem;max-height:10.5rem;line-height:1.5rem;padding:.75rem 1rem;border:0;background:transparent;resize:none;border-radius:1.5rem;overflow-y:auto}
#chat-form button{width:3rem;min-height:3rem;padding:.75rem;flex-shrink:0;margin:0;border-radius:50%}
#chat-form #microphone{background:transparent;color:var(--muted);border:0}
#chat-form svg{width:1.25rem;height:1.25rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
#history,#retry{align-self:center;font-size:.875rem}#typing{margin:.25rem 0}#chat-banner{margin:.5rem 0}
select{max-width:100%}button,summary,a{overflow-wrap:anywhere}#devices li{flex-wrap:wrap}#devices button{flex-shrink:0}
.theme-preview{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@supports(backdrop-filter:blur(1px)){
header,section,article,#chat-form,#chat-history .assistant{background-color:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(var(--blur));border-top-color:color-mix(in srgb,var(--line),var(--solid) 25%)}
#chat-page{background:transparent;backdrop-filter:none}
}
@media(hover:hover) and (pointer:fine){nav a:hover,button:hover,article:hover{background-image:linear-gradient(120deg,var(--tint),transparent 65%)}nav a[aria-current]:hover,#send:hover,#signin:hover{background-image:var(--gradient)}}
@media(min-width:600px) and (max-width:1023px){
:root{--navigation:5rem}header{padding:1rem .5rem}header>a{justify-content:center;padding:.25rem}header>a span,nav a span,#account-state{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}nav a{justify-content:center;padding:.75rem}#signout{font-size:.6875rem;padding:.5rem .125rem;left:.25rem;width:calc(var(--navigation) - .5rem)}
}
@media(max-width:599px){
:root{--navigation:0px;--tabs:calc(4.5rem + env(safe-area-inset-bottom))}
body{display:block}header{position:static;height:auto;border:0;background:transparent;padding:.5rem 1rem;backdrop-filter:none}header>a{margin:0;padding:0;font-size:1rem;min-height:3rem}header .brand-mark{width:2rem;height:2rem}#account-state{display:none}
nav{position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;height:var(--tabs);padding:.5rem .25rem calc(.5rem + env(safe-area-inset-bottom));background:var(--surface);backdrop-filter:blur(var(--blur));border-top:1px solid var(--line);z-index:7}
nav a{flex-direction:column;justify-content:center;gap:.125rem;padding:.25rem .125rem;min-height:3rem;font-size:.625rem;line-height:1.2;min-width:0}
main{padding:1rem 1rem calc(1rem + var(--tabs))}#signout{top:.75rem;right:1rem;left:auto;bottom:auto;width:auto;min-height:2.5rem;font-size:.75rem;padding:.5rem}
body[data-page=chat][data-signed-in=true] main{height:calc(var(--viewport) - 4rem);padding-top:.5rem}#chat-history li{max-width:92%}#signin-panel{margin:2rem auto}#chat-form{gap:.25rem}#chat-form textarea{padding-left:.75rem}#chat-form button{width:3rem}
}
/* Do not composite old and new text at the same instant. */
:root{view-transition-name:none}main{view-transition-name:content}
::view-transition-group(content){animation-duration:150ms}
::view-transition-old(content){animation:fade-out 75ms ease-in both}
::view-transition-new(content){animation:fade-in 75ms 75ms ease-out both}
@keyframes fade-out{to{opacity:0}}@keyframes fade-in{from{opacity:0}}
@media(prefers-reduced-transparency:reduce){header,nav,section,article,#chat-form,#chat-history .assistant{background:var(--solid);backdrop-filter:none}body::before,body::after{display:none}}
@media(prefers-reduced-motion:reduce){body::before,body::after{animation:none}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}
#chat-history li.existing{animation:none}
@media(max-width:599px){body::after{display:none}body::before{animation-duration:100s}}
.pair-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:clamp(2rem,10vw,3rem);
  letter-spacing:.12em;
  font-weight:600;
  margin:.5rem 0;
  overflow-wrap:anywhere}

#briefing-places{list-style:none;margin:.5rem 0;padding:0;display:grid;gap:.5rem}
.briefing-preview{margin-top:.5rem;padding:1rem;border-top:2px solid var(--accent);border-radius:var(--radius);background:var(--surface);line-height:1.55}

#voice-status{display:flex;align-items:center;gap:.5rem;margin:.5rem 0 0;font-size:.875rem;color:var(--muted)}
#voice-status[hidden]{display:none}
#voice-level{width:6rem;height:.5rem}
#voice-timer{font-variant-numeric:tabular-nums}
#chat-form #microphone[data-state=recording]{background:var(--gradient);color:var(--on-accent)}

/* Tactile controls retain a boundary independently of their shadows. */
button{min-height:48px;border:1px solid var(--line);box-shadow:var(--control-shadow)}
button:active{box-shadow:var(--clay-inner-shade)}
.theme-choice{box-shadow:none}
.preview-button{box-shadow:var(--control-shadow);border:1px solid var(--floating-boundary)}
#chat-history .owner{background:var(--bubble-owner-bg);color:var(--bubble-owner-ink);border-radius:var(--bubble-radius)}
#chat-history .assistant{color:var(--bubble-assistant-ink);border-radius:var(--bubble-radius)}
#voice-status{background:var(--voice-bg);color:var(--voice-ink);border:1px solid var(--voice-boundary);border-radius:999px;padding:.5rem 1rem}
#voice-level{accent-color:var(--voice-icon)}
button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(prefers-reduced-transparency:reduce){button{background:var(--solid);color:var(--ink);box-shadow:none}}
@media(forced-colors:active){button,#voice-status{background:Canvas;color:CanvasText;border:1px solid ButtonText;box-shadow:none}button:focus-visible{outline-color:Highlight}}
/* Halo shares structure across themes; only semantic tokens provide paint. */
#home-page{max-width:54rem;margin:0 auto;padding:clamp(1rem,3vw,2.5rem);background:transparent;border:0;box-shadow:none;backdrop-filter:none}
body[data-page=home][data-signed-in=true] main>h1,body[data-page=voice][data-signed-in=true] main>h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.home-presence{text-align:center;padding:clamp(1rem,4vh,3rem) 0 2rem}
.eyebrow{font-size:var(--text-small);letter-spacing:.08em;margin:1.5rem 0 .5rem}
#home-greeting{font-size:clamp(2rem,1.5rem + 2vw,3rem);line-height:1.15;font-weight:500;margin:0}
.home-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(.75rem,2vw,1.25rem)}
.action-card{display:flex;flex-direction:column;align-items:start;gap:.75rem;min-height:10rem;padding:clamp(1rem,2vw,1.75rem);border:1px solid var(--line);border-radius:var(--radius-large);background:var(--surface);backdrop-filter:blur(var(--blur));text-decoration:none;color:var(--ink);box-shadow:var(--shadow);transition:transform var(--duration) var(--ease)}
.action-card svg{color:var(--accent)}
.action-card strong{font-size:clamp(1rem,1rem + .3vw,1.25rem);font-weight:600}
.action-card span{font-size:var(--text-small);color:var(--muted)}
.action-card:active{transform:scale(.98)}
.action-card svg{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.suggestions{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin:1.5rem 0}
.suggestions button{border-radius:999px;font-size:var(--text-small);margin:0;background:var(--solid)}
summary{min-height:var(--control)}summary small{display:block;font-size:var(--text-small);font-weight:400;margin-top:.25rem}
.today-links,.home-links{display:flex;flex-wrap:wrap;gap:1rem}.today-links a,.home-links a{display:flex;align-items:center;min-height:var(--control)}
.home-links{justify-content:center;font-size:var(--text-small)}
#home-today{background:var(--surface);padding:.75rem 1rem;border:1px solid var(--line);border-radius:var(--radius)}
#voice-page{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:calc(var(--viewport) - var(--tabs) - 8rem);margin:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none}
#listening-orb{inline-size:clamp(10rem,28vw,20rem);animation:none;transform:scale(var(--level-scale,1));margin:3rem auto}
#listening-orb::before{animation:none;opacity:var(--level-glow,.4)}
.voice-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;margin:1.5rem 0}
.voice-controls button{border-radius:999px;min-width:var(--control)}
#voice-listen,#voice-stop{background:var(--secondary);color:var(--on-secondary)}
#live-transcript{max-width:38ch;font-size:clamp(1.1rem,2vw,1.5rem);min-height:3em;color:var(--ink)}
.older-word{opacity:.55}
#chat-form #microphone{border:1px solid var(--line);background:var(--solid);color:var(--ink);box-shadow:var(--control-shadow)}
#chat-form #microphone[data-state=recording]{background:var(--secondary);color:var(--on-secondary)}
#chat-history .owner{background:var(--gradient);color:var(--on-accent)}
.sparkle-avatar{display:inline-grid;place-items:center;inline-size:1.5rem;aspect-ratio:1;border:1px solid var(--bubble-boundary);border-radius:50%;color:var(--accent);margin-bottom:.5rem}
#voice-level{appearance:none;border:0;background:repeating-linear-gradient(90deg,var(--voice-icon) 0 2px,transparent 2px 5px);height:1rem;border-radius:999px}
input[type=checkbox]{appearance:none;inline-size:3rem;min-height:var(--control);border-radius:999px;background:var(--solid);box-shadow:var(--clay-inner-shade);border:1px solid var(--line);position:relative;cursor:pointer}
input[type=checkbox]::after{content:'';position:absolute;inset:.6rem auto .6rem .3rem;width:1.25rem;border-radius:50%;background:var(--muted);transition:transform var(--duration) var(--ease)}
input[type=checkbox]:checked::after{transform:translateX(1.1rem);background:var(--secondary)}
input[type=range]{accent-color:var(--secondary);box-shadow:var(--clay-inner-shade);border:1px solid var(--line);min-height:var(--control)}
.segmented{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--clay-inner-shade);margin:1rem 0}
.segmented button{flex:1;margin:0;background:var(--solid)}
.segmented button[aria-pressed=true]{box-shadow:var(--clay-inner-shade);border-color:var(--secondary);color:var(--secondary)}
button[aria-pressed=true]{box-shadow:var(--clay-inner-shade)}
@media(max-width:599px){nav .nav-extra{display:none}nav a[href='/']{order:0}nav a[href='/chat']{order:1}nav .orb-action{order:2;align-self:start;justify-self:center;inline-size:var(--floating-size);min-height:var(--floating-size);border-radius:50%;transform:translateY(calc(-1 * var(--floating-offset)));background:var(--gradient);color:var(--on-accent);border:1px solid var(--floating-boundary);box-shadow:var(--control-shadow)}nav a[href='/wardrobe']{order:3}nav a[href='/settings']{order:4}nav .orb-action span{position:absolute;inline-size:1px;height:1px;overflow:hidden;clip-path:inset(50%)}#chat-form{flex-wrap:wrap}#chat-form textarea{min-width:0;width:0;padding-inline:.5rem}#chat-form button{padding:.5rem}#home-page{padding-inline:0}.action-card{min-height:10rem}#voice-page{min-height:calc(var(--viewport) - var(--tabs) - 6rem)}}
@media(prefers-reduced-motion:reduce){.orb,.orb::before,.orb::after{animation:none!important;transform:none!important}#listening-orb{transform:none!important}}
@media(prefers-reduced-transparency:reduce){.action-card,#home-today{background:var(--solid);backdrop-filter:none}.orb::before{display:none}}
@media(forced-colors:active){.orb{background:Canvas;border:1px solid CanvasText}.orb::before,.orb::after{display:none}.action-card,nav .orb-action{background:Canvas;color:CanvasText;border-color:CanvasText}input[type=checkbox]{appearance:auto}.segmented button[aria-pressed=true]{outline:2px solid Highlight}}
.voice-review{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:1rem;background:var(--voice-bg);color:var(--voice-ink);padding:.5rem 1rem;border:1px solid var(--voice-boundary);border-radius:999px;font-variant-numeric:tabular-nums}
.voice-review a{color:var(--voice-ink);display:inline-flex;align-items:center;min-height:var(--control)}
.waveform{inline-size:4rem;block-size:1.5rem;background:repeating-linear-gradient(90deg,var(--voice-icon) 0 2px,transparent 2px 5px);clip-path:polygon(0 40%,10% 25%,20% 35%,30% 0,40% 30%,50% 15%,60% 40%,70% 5%,80% 30%,90% 20%,100% 40%,100% 60%,90% 80%,80% 70%,70% 95%,60% 60%,50% 85%,40% 70%,30% 100%,20% 65%,10% 75%,0 60%)}
@media(forced-colors:active){input[type=checkbox]::after{display:none}.waveform{background:CanvasText}}
