:root{--ink:#14232b;--ink-soft:#243640;--chalk:#f2f6f8;--mist:#d7e2e8;--teal:#2f8f7f;--teal-bright:#5ec4b0;--line:#14232b1f;--shadow:0 24px 60px #14232b2e;--font-display:"Fraunces", Georgia, serif;--font-body:"Outfit", system-ui, sans-serif;color:var(--ink);background:var(--chalk);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(1200px 600px at 80% -10%, #5ec4b02e, transparent 55%), radial-gradient(900px 500px at -10% 30%, #24364014, transparent 50%), linear-gradient(180deg, #eef3f6 0%, var(--chalk) 42%, #e7eef2 100%);min-width:320px;margin:0}img{max-width:100%;display:block}a{color:inherit}button,input{font:inherit}::selection{background:#2f8f7f40}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%{transform:scale(1.08)translate(0,0)}to{transform:scale(1.14)translate(-1.5%,1%)}}@keyframes stitch{0%{stroke-dashoffset:120px}to{stroke-dashoffset:0}}@keyframes pulseSoft{0%,to{opacity:.55}50%{opacity:1}}.rise{animation:.9s cubic-bezier(.22,1,.36,1) both rise}.rise-delay-1{animation-delay:.12s}.rise-delay-2{animation-delay:.24s}.rise-delay-3{animation-delay:.36s}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rise,.hero__image{animation:none!important}}.page{min-height:100vh}.nav{z-index:3;color:var(--chalk);justify-content:space-between;align-items:center;padding:1.25rem clamp(1.25rem,4vw,3rem);display:flex;position:absolute;inset:0 0 auto}.nav__brand{font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:.7rem;font-size:1.35rem;font-weight:700;text-decoration:none;display:inline-flex}.nav__mark{width:2rem;height:2rem}.nav__actions{flex-wrap:wrap;align-items:center;gap:.85rem 1.1rem;display:flex}.nav__cta{color:var(--chalk);opacity:.9;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;font-family:inherit;font-size:.95rem;font-weight:500;text-decoration:none;transition:border-color .2s,opacity .2s}.nav__cta:hover{opacity:1;border-bottom-color:var(--teal-bright)}.nav__cta--btn{appearance:none}.hero{min-height:100svh;color:var(--chalk);align-items:end;display:grid;position:relative;overflow:hidden}.hero__media{position:absolute;inset:0}.hero__image{object-fit:cover;will-change:transform;width:100%;height:100%;animation:28s ease-in-out infinite alternate drift}.hero__veil{background:linear-gradient(#14232b59 0%,#14232b2e 38%,#14232bc7 100%),linear-gradient(90deg,#14232b73 0%,#0000 55%);position:absolute;inset:0}.hero__content{z-index:1;width:min(720px,100%);padding:clamp(5.5rem,14vh,8rem) clamp(1.25rem,4vw,3rem) clamp(3rem,8vh,5rem);position:relative}.hero__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--teal-bright);align-items:center;gap:.55rem;margin:0 0 1rem;font-size:.85rem;font-weight:500;display:inline-flex}.hero__eyebrow-dot{background:var(--teal-bright);border-radius:50%;width:.45rem;height:.45rem;animation:2.4s ease-in-out infinite pulseSoft}.hero__brand{font-family:var(--font-display);letter-spacing:-.04em;margin:0;font-size:clamp(3.4rem,10vw,6.4rem);font-weight:700;line-height:.92}.hero__headline{max-width:18ch;font-family:var(--font-display);color:#f2f6f8eb;margin:1.1rem 0 0;font-size:clamp(1.35rem,3vw,1.85rem);font-weight:500;line-height:1.25}.hero__support{color:#f2f6f8c7;max-width:38ch;margin:1rem 0 0;font-size:1.05rem;line-height:1.55}.hero__actions{flex-wrap:wrap;gap:.85rem;margin-top:1.75rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:2.9rem;padding:.7rem 1.25rem;text-decoration:none;transition:transform .2s,background .2s,border-color .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn--primary{background:var(--teal);color:#fff}.btn--primary:hover{background:#277868}.btn--ghost{color:var(--chalk);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#f2f6f814;border-color:#f2f6f847}.btn--ghost:hover{border-color:#f2f6f88c}.stitch-line{width:min(180px,40%);margin-top:1.5rem;display:block;overflow:visible}.stitch-line path{fill:none;stroke:var(--teal-bright);stroke-width:2px;stroke-dasharray:4 8;stroke-linecap:round;animation:2.2s forwards stitch}.section{padding:clamp(3.5rem,8vw,6rem) clamp(1.25rem,4vw,3rem)}.section__inner{width:min(1100px,100%);margin:0 auto}.section__title{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(2rem,4vw,2.8rem);font-weight:700;line-height:1.1}.section__lede{max-width:42ch;color:var(--ink-soft);margin:.85rem 0 0;font-size:1.08rem;line-height:1.55}.features{gap:1.5rem;margin-top:2.5rem;display:grid}@media (width>=860px){.features{grid-template-columns:1.05fr .95fr;align-items:stretch;gap:2rem}}.feature-visual{min-height:280px;box-shadow:var(--shadow);border-radius:1.25rem;position:relative;overflow:hidden}.feature-visual img{object-fit:cover;width:100%;height:100%}.feature-stack{gap:1rem;display:grid}.feature-card{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff8c;border-radius:1.1rem;grid-template-columns:96px 1fr;align-items:center;gap:1rem;padding:.85rem;display:grid}.feature-card img{object-fit:cover;border-radius:.8rem;width:96px;height:96px}.feature-card h3{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:1.2rem;font-weight:700}.feature-card p{color:var(--ink-soft);margin:.35rem 0 0;font-size:.98rem;line-height:1.45}.waitlist{position:relative}.waitlist__panel{background:linear-gradient(160deg, #ffffffc7, #f2f6f8e6), var(--chalk);border:1px solid var(--line);width:min(720px,100%);box-shadow:var(--shadow);border-radius:1.5rem;margin:0 auto;padding:clamp(1.75rem,4vw,2.5rem)}.waitlist__panel h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.8rem,3.5vw,2.35rem)}.waitlist__panel>p{color:var(--ink-soft);margin:.75rem 0 0;line-height:1.5}.form{gap:.85rem;margin-top:1.5rem;display:grid}.form__row{gap:.75rem;display:grid}@media (width>=640px){.form__row{grid-template-columns:1fr auto}}.form label{gap:.35rem;font-size:.9rem;font-weight:500;display:grid}.form input[type=email],.form input[type=password],.auth-form input[type=email],.auth-form input[type=password]{border:1px solid var(--line);width:100%;min-height:2.9rem;color:var(--ink);background:#fff;border-radius:999px;outline:none;padding:.7rem .95rem;transition:border-color .2s,box-shadow .2s}.form input[type=email]:focus,.form input[type=password]:focus,.auth-form input[type=email]:focus,.auth-form input[type=password]:focus{border-color:var(--teal);box-shadow:0 0 0 3px #2f8f7f2e}.auth-page{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.auth-nav{padding:1.25rem clamp(1.25rem,4vw,3rem)}.auth-nav__brand{color:var(--ink)}.auth-main{place-items:start center;padding:1rem clamp(1.25rem,4vw,3rem) 3rem;display:grid}.auth-panel{border:1px solid var(--line);background:linear-gradient(160deg, #ffffffd1, #f2f6f8eb), var(--chalk);width:min(440px,100%);box-shadow:var(--shadow);border-radius:1.4rem;padding:clamp(1.5rem,4vw,2.25rem)}.auth-panel h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(1.8rem,4vw,2.2rem)}.auth-panel__lede{color:var(--ink-soft);margin:.6rem 0 0;line-height:1.5}.auth-form{gap:.9rem;margin-top:1.4rem;display:grid;position:relative}.auth-form label{gap:.35rem;font-size:.9rem;font-weight:500;display:grid}.auth-form__submit{width:100%;margin-top:.25rem}.auth-links{flex-wrap:wrap;gap:.75rem 1.25rem;margin:1.25rem 0 0;font-size:.92rem;display:flex}.auth-links a{color:var(--teal);border-bottom:1px solid #0000;text-decoration:none}.auth-links a:hover{border-bottom-color:var(--teal)}.auth-loading{text-align:center;color:var(--ink-soft);padding:3rem}.app-shell{grid-template-rows:auto 1fr;min-height:100vh;display:grid}.app-shell__bar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff8c;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem clamp(1.25rem,4vw,3rem);display:flex}.app-shell__account{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;display:flex}.app-shell__email{color:var(--ink-soft);font-size:.92rem}.app-shell__badge{letter-spacing:.02em;color:#8a5a2f;background:#8a5a2f1f;border-radius:999px;padding:.25rem .55rem;font-size:.78rem;font-weight:600}.app-shell__signout{min-height:2.4rem;color:var(--ink);border-color:var(--line);background:0 0;padding:.45rem .95rem}.app-shell__main{width:min(720px,100%);margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.25rem,4vw,3rem)}.app-shell__main--wide{width:min(1100px,100%)}.app-shell__main h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:clamp(2rem,4vw,2.6rem)}.app-shell__main p{color:var(--ink-soft);max-width:42ch;margin:.85rem 0 1.5rem;line-height:1.55}.app-shell__nav{flex-wrap:wrap;gap:.35rem 1rem;display:flex}.app-shell__nav-link{color:var(--ink-soft);border-bottom:2px solid #0000;padding:.2rem 0;font-size:.95rem;font-weight:500;text-decoration:none;transition:color .2s,border-color .2s}.app-shell__nav-link:hover{color:var(--ink)}.app-shell__nav-link--active{color:var(--ink);border-bottom-color:var(--teal)}.app-shell__banner{color:#6b4420;background:#8a5a2f1f;border-bottom:1px solid #8a5a2f2e;padding:.75rem clamp(1.25rem,4vw,3rem);font-size:.92rem;line-height:1.45}.studio-section__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem 1.5rem;margin-bottom:1.5rem;display:flex}.studio-section__head h1{margin:0}.studio-section__head p{max-width:48ch;margin:.55rem 0 0}.studio__muted{color:var(--ink-soft)}.studio-empty{justify-items:start;gap:1rem;padding:1.5rem 0;display:grid}.studio-form{gap:1.15rem;margin-bottom:2rem;display:grid}.studio-form label{color:var(--ink-soft);gap:.35rem;font-size:.92rem;font-weight:500;display:grid}.studio-form input,.studio-form select,.studio-textarea{border:1px solid var(--line);min-height:2.75rem;color:var(--ink);font:inherit;background:#ffffffb8;border-radius:.55rem;padding:.55rem .75rem}.studio-textarea{resize:vertical;min-height:5.5rem;line-height:1.45}.studio-form input:focus,.studio-form select:focus,.studio-textarea:focus{border-color:var(--teal);outline:2px solid #2f8f7f59}.studio-form__row{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.studio-form__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.meas-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem 1rem;display:grid}.meas-grid label{color:var(--ink-soft);gap:.3rem;font-size:.85rem;font-weight:500;display:grid}.meas-grid input{border:1px solid var(--line);min-height:2.5rem;color:var(--ink);background:#ffffffb8;border-radius:.45rem;padding:.45rem .65rem}.studio-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.studio-list__item{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.85rem 1.25rem;padding:1rem 0;display:flex}.studio-list__item strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.15rem;display:block}.studio-list__meta{color:var(--ink-soft);margin-top:.25rem;font-size:.88rem;display:block}.studio-list__actions{flex-wrap:wrap;gap:.5rem;display:flex}.design-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.85rem;display:grid}.design-card{border:1px solid var(--line);cursor:pointer;background:#ffffff8c;border-radius:.75rem;gap:.35rem;padding:1rem 1.05rem;transition:border-color .2s,background .2s,transform .2s;display:grid;position:relative}.design-card:hover{border-color:#2f8f7f73;transform:translateY(-1px)}.design-card--active{border-color:var(--teal);background:#2f8f7f14}.design-card input{opacity:0;pointer-events:none;position:absolute}.design-card__name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);font-size:1.15rem;font-weight:600}.design-card__desc{color:var(--ink-soft);font-size:.88rem;line-height:1.4}.design-card__meta{color:#243640b3;font-size:.8rem}.meas-needed{border-left:3px solid var(--teal);color:var(--ink-soft);background:#2f8f7f0f;padding:.85rem 1rem;font-size:.9rem}.meas-needed ul{margin:.4rem 0 .75rem;padding-left:1.1rem}.meas-needed .is-missing{color:#8a2f2f}.pattern-preview{border:1px solid var(--line);background:linear-gradient(#ffffffd9,#f2f6f8e6),repeating-linear-gradient(-12deg,#0000,#0000 11px,#2f8f7f0a 11px 12px);border-radius:.85rem;margin:1.5rem 0;padding:1rem;animation:.7s cubic-bezier(.22,1,.36,1) both rise;overflow:auto}.pattern-preview svg{width:100%;height:auto;max-height:70vh;display:block}.studio-details{color:var(--ink-soft);margin:1rem 0;font-size:.92rem}.studio-details summary{cursor:pointer;color:var(--ink);font-weight:500}.studio-details pre{background:#14232b0d;border-radius:.55rem;max-height:280px;margin:.75rem 0 0;padding:.85rem 1rem;font-size:.78rem;line-height:1.4;overflow:auto}.studio-back{margin-top:1.5rem;font-size:.95rem}.studio-back a{color:var(--teal);border-bottom:1px solid #0000;text-decoration:none}.studio-back a:hover{border-bottom-color:var(--teal)}@media (width<=720px){.app-shell__bar{flex-direction:column;align-items:flex-start}}.form__hp{opacity:0;pointer-events:none;position:absolute;left:-10000px}.form__status{min-height:1.35rem;margin:0;font-size:.92rem}.form__status--ok{color:#1f6f5f}.form__status--err{color:#8a2f2f}.form__note{color:#243640b8;margin:0;font-size:.85rem;line-height:1.45}.status-filter{flex-wrap:wrap;gap:.45rem;margin-bottom:1.25rem;display:flex}.status-chip{appearance:none;border:1px solid var(--line);color:var(--ink-soft);font:inherit;cursor:pointer;background:#ffffff8c;border-radius:999px;padding:.35rem .85rem;font-size:.88rem;transition:border-color .2s,background .2s,color .2s}.status-chip:hover{color:var(--ink);border-color:#2f8f7f66}.status-chip--active{border-color:var(--teal);color:var(--ink);background:#2f8f7f1f}.status-pill{letter-spacing:.02em;color:#1f6f5f;background:#2f8f7f1f;border-radius:999px;padding:.1rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.status-pill--cutting{color:#6b4420;background:#8a5a2f24}.status-pill--sewing{color:#2f4f7a;background:#2f5a8f1f}.status-pill--done{color:var(--ink-soft);background:#2436401a}.project-panel{border-bottom:1px solid var(--line);margin:0 0 2rem;padding-bottom:1.5rem}.project-panel h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.35rem}.project-meta{gap:.55rem;margin:0;padding:0;list-style:none;display:grid}.project-meta li{flex-wrap:wrap;gap:.5rem 1rem;font-size:.95rem;display:flex}.project-meta span{min-width:5.5rem;color:var(--ink-soft)}.project-meta a{color:var(--teal);text-decoration:none}.project-notes{border-left:3px solid var(--teal);color:var(--ink-soft);white-space:pre-wrap;background:#2f8f7f0f;margin:1rem 0 0;padding:.85rem 1rem}.cut-list{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.cut-list__item{border-bottom:1px solid #24364014;padding:.65rem 0}.cut-list__item--done strong{opacity:.65;text-decoration:line-through}.cut-list__check{cursor:pointer;align-items:flex-start;gap:.75rem;display:flex}.cut-list__check input{width:1.1rem;height:1.1rem;accent-color:var(--teal);margin-top:.35rem}.upload-btn{cursor:pointer;position:relative;overflow:hidden}.upload-btn input{opacity:0;cursor:pointer;position:absolute;inset:0}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.85rem;margin:0;padding:0;list-style:none;display:grid}.photo-grid__item{gap:.45rem;display:grid}.photo-grid__item img{aspect-ratio:1;object-fit:cover;border:1px solid var(--line);background:#fff9;border-radius:.65rem;width:100%;display:block}.photo-grid__meta{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.preview3d__banner{color:var(--ink);background:#2f6f6a1a;border:1px solid #2f6f6a59;border-radius:.65rem;margin:0 0 1rem;padding:.75rem 1rem;font-size:.92rem}.preview3d__layout{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:start;gap:1rem;display:grid}.preview3d__viewport{border:1px solid var(--line);touch-action:none;background:#dfe7ec;border-radius:.85rem;height:min(62vh,560px);min-height:min(62vh,560px);position:relative;overflow:hidden}.preview3d__viewport canvas{display:block;width:100%!important;height:100%!important}.preview3d__controls{border:1px solid var(--line);background:#ffffff8c;border-radius:.85rem;gap:.85rem;padding:1rem;display:grid}.preview3d__controls h2{margin:0;font-size:1.05rem}.preview3d__btns{flex-wrap:wrap;gap:.5rem;display:flex}.preview3d__swatches{flex-wrap:wrap;gap:.45rem;margin-top:.45rem;display:flex}.preview3d__swatch{cursor:pointer;border:2px solid #0000;border-radius:999px;width:1.7rem;height:1.7rem;padding:0}.preview3d__swatch--active{border-color:var(--ink);box-shadow:0 0 0 2px #ffffffe6}.preview3d__list{color:var(--ink-soft);margin:.4rem 0 0;padding-left:1.1rem;font-size:.88rem}@media (width<=860px){.preview3d__layout{grid-template-columns:1fr}.preview3d__viewport{height:50vh;min-height:50vh}}.footer{border-top:1px solid var(--line);padding:2rem clamp(1.25rem,4vw,3rem) 2.5rem}.footer__inner{color:#243640bf;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;width:min(1100px,100%);margin:0 auto;font-size:.92rem;display:flex}.footer a{color:var(--ink);border-bottom:1px solid #0000;text-decoration:none}.footer a:hover{border-bottom-color:var(--teal)}.footer__links{flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;display:flex}.app-shell__badge--ok{color:#1f5c4a;background:#1f5c4a1f}.studio-subhead{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 .75rem;font-size:1.35rem}.studio-form--compact{border-bottom:1px solid var(--line);margin-bottom:2rem;padding-bottom:1.5rem}.studio-list__note{color:var(--ink-soft);max-width:48ch;margin:.35rem 0 0;font-size:.92rem}.studio-list__item--stack{align-items:flex-start}.account-block{border-bottom:1px solid var(--line);margin:0 0 2.25rem;padding-bottom:1.75rem}.account-block--danger{border-bottom:none}.totp-qr{border:1px solid var(--line);background:#fff;margin:.75rem 0 1rem;display:block}.mono-secret{color:var(--ink-soft);word-break:break-all;font-size:.9rem}.mono-secret code{color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.recovery-codes{background:#1f5c4a14;border:1px solid #1f5c4a2e;margin-top:1rem;padding:1rem 1.1rem}.recovery-codes ul{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.35rem 1rem;margin:.5rem 0 0;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9rem;list-style:none;display:grid}.legal-page .legal{width:min(720px,100%);margin:0 auto;padding:clamp(2.5rem,6vw,4rem) clamp(1.25rem,4vw,3rem) 4rem}.legal h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 .75rem;font-size:clamp(2rem,4vw,2.6rem)}.legal h2{font-family:var(--font-display);margin:2rem 0 .65rem;font-size:1.35rem}.legal__lede,.legal p,.legal li{color:var(--ink-soft);line-height:1.6}.legal ul{padding-left:1.2rem}.legal__updated{margin-top:2.5rem;font-size:.9rem}
