/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:"Instrument Sans", ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-blue-300:oklch(80.9% .105 251.813);--color-blue-700:oklch(48.8% .243 264.376);--color-blue-800:oklch(42.4% .199 265.638);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-gray-900:oklch(21% .034 264.665);--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-xl:1.25rem;--font-weight-medium:500;--leading-tight:1.25;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.-ml-px{margin-left:-1px}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-5{height:calc(var(--spacing) * 5)}.w-5{width:calc(var(--spacing) * 5)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.resize{resize:both}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-items-center{justify-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.rounded-md{border-radius:var(--radius-md)}.rounded-l-md{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.rounded-r-md{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-gray-300{border-color:var(--color-gray-300)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-white{background-color:var(--color-white)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-2{padding-block:calc(var(--spacing) * 2)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.leading-5{--tw-leading:calc(var(--spacing) * 5);line-height:calc(var(--spacing) * 5)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-gray-300{--tw-ring-color:var(--color-gray-300)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-150{--tw-duration:.15s;transition-duration:.15s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}@media (hover:hover){.hover\:bg-gray-100:hover{background-color:var(--color-gray-100)}.hover\:text-gray-400:hover{color:var(--color-gray-400)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}}.focus\:border-blue-300:focus{border-color:var(--color-blue-300)}.focus\:ring:focus{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\:bg-gray-100:active{background-color:var(--color-gray-100)}.active\:text-gray-500:active{color:var(--color-gray-500)}.active\:text-gray-700:active{color:var(--color-gray-700)}.active\:text-gray-800:active{color:var(--color-gray-800)}@media (width>=40rem){.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:flex-1{flex:1}.sm\:items-center{align-items:center}.sm\:justify-between{justify-content:space-between}.sm\:gap-2{gap:calc(var(--spacing) * 2)}}.rtl\:flex-row-reverse:where(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)),[dir=rtl],[dir=rtl] *){flex-direction:row-reverse}@media (prefers-color-scheme:dark){.dark\:border-gray-600{border-color:var(--color-gray-600)}.dark\:bg-gray-700{background-color:var(--color-gray-700)}.dark\:bg-gray-800{background-color:var(--color-gray-800)}.dark\:text-gray-200{color:var(--color-gray-200)}.dark\:text-gray-300{color:var(--color-gray-300)}.dark\:text-gray-400{color:var(--color-gray-400)}.dark\:text-gray-600{color:var(--color-gray-600)}@media (hover:hover){.dark\:hover\:bg-gray-900:hover{background-color:var(--color-gray-900)}.dark\:hover\:text-gray-200:hover{color:var(--color-gray-200)}.dark\:hover\:text-gray-300:hover{color:var(--color-gray-300)}}.dark\:focus\:border-blue-700:focus{border-color:var(--color-blue-700)}.dark\:focus\:border-blue-800:focus{border-color:var(--color-blue-800)}.dark\:active\:bg-gray-700:active{background-color:var(--color-gray-700)}.dark\:active\:text-gray-300:active{color:var(--color-gray-300)}}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--font-body:"Instrument Sans", ui-sans-serif, system-ui, sans-serif;--text-xs:.75rem;--text-sm:.875rem;--text-md:1rem;--text-lg:1.25rem;--text-xl:clamp(2.25rem, 7vw, 4.75rem);--leading-tight:1.05;--leading-body:1.55;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-sm:.625rem;--radius-md:1rem;--radius-lg:1.5rem;--radius-pill:999px;--shadow-sm:0 .25rem 1rem #0307192e;--shadow-md:0 1rem 3rem #03071947;--color-canvas:#070b24;--color-surface:#fff;--color-surface-muted:#eeebf8;--color-ink:#211b32;--color-ink-muted:#51485f;--color-brand:#6d3fe0;--color-brand-strong:#5124be;--color-accent:#ffcb45;--color-success:#16794e;--color-danger:#b42318;--color-focus:#1769e0;--color-border:#d8d2e6;--duration-fast:.12s;--duration-normal:.22s;--touch-target:2.75rem;--content-max:75rem;--z-nav:20;--z-overlay:40;--z-toast:60}*,:before,:after{box-sizing:border-box}html{background:var(--color-canvas);scroll-behavior:smooth}body{isolation:isolate;color:#eef2ff;min-height:100vh;font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading-body);background:0 0;margin:0;padding-bottom:5.5rem;position:relative;overflow-x:hidden}body:before,body:after{z-index:-2;pointer-events:none;content:"";position:fixed;inset:0}body:before{background:radial-gradient(at 15% 15%,#5c46ff70,#0000 34rem),radial-gradient(at 86% 22%,#00c2ff4d,#0000 30rem),radial-gradient(at 70% 88%,#d53eff3d,#0000 32rem),radial-gradient(at 28% 78%,#2563eb3d,#0000 28rem),linear-gradient(145deg,#030617 0%,#0a1033 42%,#121044 72%,#050817 100%)}body:after{z-index:-1;opacity:.72;background-image:radial-gradient(circle,#ffffffeb 0 .075rem,#0000 .09rem),radial-gradient(circle,#a5d4ffc2 0 .055rem,#0000 .075rem),radial-gradient(circle,#ffffff85 0 .04rem,#0000 .065rem);background-position:0 0,2.4rem 3.1rem,1.1rem 4.6rem;background-size:7.5rem 7.5rem,10rem 10rem,5.5rem 5.5rem;-webkit-mask-image:linear-gradient(#000,#000000b8);mask-image:linear-gradient(#000,#000000b8)}button,input{font:inherit}a{color:inherit}[hidden]{display:none!important}:focus-visible{outline:.1875rem solid var(--color-focus);outline-offset:.1875rem}.skip-link{top:var(--space-3);left:var(--space-3);z-index:calc(var(--z-toast) + 1);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);background:var(--color-ink);color:var(--color-surface);position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.connection-banner{padding:var(--space-2) var(--space-4);background:var(--color-ink);color:var(--color-surface);font-size:var(--text-sm);text-align:center}.app-header{z-index:var(--z-nav);width:min(100% - 2rem, var(--content-max));align-items:center;gap:var(--space-4);grid-template-columns:1fr auto;min-height:5rem;margin-inline:auto;display:grid;position:relative}.brand{align-items:center;gap:var(--space-3);text-shadow:0 .25rem 1rem #0000006b;width:fit-content;font-weight:600;text-decoration:none;display:inline-flex}.brand__mark{border-radius:var(--radius-sm);background:var(--color-brand);box-shadow:var(--shadow-sm);grid-template-columns:repeat(3,.375rem);gap:.1875rem;padding:.5rem;display:grid}.brand__mark span{background:var(--color-surface);border-radius:50%;width:.375rem;height:.375rem}.desktop-nav{align-items:center;gap:var(--space-2);display:none}.desktop-nav>a:not(.ui-button){min-height:var(--touch-target);padding:.65rem var(--space-4);border-radius:var(--radius-pill);color:#dbe6ff;font-weight:500;text-decoration:none}.desktop-nav>a[aria-current=page]{color:#fff;background:#0f173db8;border:1px solid #bfdbfe52;box-shadow:0 .5rem 1.5rem #03071947}.save-status{justify-self:end;align-items:center;gap:var(--space-2);color:#cbd7f3;font-size:var(--text-xs);display:inline-flex}.save-status__dot{background:var(--color-success);border-radius:50%;width:.5rem;height:.5rem}.app-content{width:min(100% - 2rem, var(--content-max));padding-block:var(--space-5) var(--space-8);margin-inline:auto}.ui-card,.auth-panel,.pattern-studio,.pattern-review,.board-editor,.board-library__card,.board-option,.guest-project-saved,.ui-dialog,.mobile-nav{color:var(--color-ink)}.mobile-nav{right:var(--space-3);bottom:var(--space-3);left:var(--space-3);z-index:var(--z-nav);padding:var(--space-2);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffffeb;border:1px solid #d8d2e6cc;grid-template-columns:repeat(3,1fr);display:grid;position:fixed}.mobile-nav a{min-height:var(--touch-target);justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-md);color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:600;text-decoration:none;display:flex}.mobile-nav a[aria-current=page]{background:var(--color-surface-muted);color:var(--color-brand-strong)}.hero{align-items:center;gap:var(--space-7);min-height:min(42rem,100vh - 8rem);padding-block:var(--space-6);display:grid}.hero__copy{max-width:43rem}.hero h1,.hero__intro,.page-heading,.page-heading p,.wizard-shell>h1,.wizard-shell>p,.wizard-shell>.eyebrow,.board-options>legend,.board-scan__instructions,.ui-stepper{color:#eef2ff;text-shadow:0 .3rem 1.3rem #00000061}.eyebrow{margin:0 0 var(--space-3);color:var(--color-brand-strong);font-size:var(--text-sm);letter-spacing:.08em;text-transform:uppercase;font-weight:600}h1,h2,p{margin-top:0}h1{max-width:16ch;margin-bottom:var(--space-5);font-size:var(--text-xl);letter-spacing:-.045em;line-height:var(--leading-tight)}.hero__intro{max-width:38rem;margin-bottom:var(--space-6);color:#cbd7f3;font-size:var(--text-lg)}.hero__actions,.component-row,.swatch-row{gap:var(--space-3);flex-wrap:wrap;display:flex}.hero__actions .ui-button{padding-inline:var(--space-4)}.pattern-preview{aspect-ratio:1;width:min(78vw,23rem);max-width:calc(100% - 1.5rem);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(1rem);backdrop-filter:blur(1rem);background:#ffffff94;border:1px solid #ffffffb3;border-radius:22%;grid-template-columns:repeat(6,1fr);place-self:center;gap:clamp(.25rem,1.2vw,.65rem);padding:clamp(1rem,4vw,2.5rem);display:grid;transform:rotate(3deg)}.pattern-preview__bead{aspect-ratio:1;background:var(--color-surface-muted);border-radius:50%;box-shadow:inset 0 -.2rem .4rem #211b321f,0 .2rem .5rem #211b321f}.pattern-preview__bead--violet{background:#8c66eb}.pattern-preview__bead--yellow{background:#ffcb45}.pattern-preview__bead--coral{background:#ef6b63}.pattern-preview__bead--mint{background:#65c8a2}.pattern-preview__bead--blue{background:#5793e8}.pattern-preview__bead--pink{background:#ef8bb5}.home-grid,.showcase-grid{gap:var(--space-5);display:grid}.auth-heading{padding-block:var(--space-6)}.auth-heading p{color:var(--color-ink-muted);margin-bottom:0}.auth-panel{width:min(100%,32rem);margin:var(--space-6) auto;padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md)}.auth-form{gap:var(--space-4);display:grid}.auth-form>.ui-button{width:100%;margin-top:var(--space-2)}.auth-switch{margin:var(--space-5) 0 0;color:var(--color-ink-muted);text-align:center}.auth-switch a{color:var(--color-brand-strong);font-weight:600}.ui-button{min-height:var(--touch-target);border-radius:var(--radius-pill);color:var(--color-surface);cursor:pointer;transition:filter var(--duration-fast) ease, border-color var(--duration-fast) ease;background:linear-gradient(135deg,#7c3aed 0%,#4f46e5 48%,#2563eb 100%);border:1px solid #c4b5fdb8;justify-content:center;align-items:center;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 .55rem 1.25rem #2563eb47,inset 0 1px #ffffff38}.ui-button:hover{filter:brightness(1.14)saturate(1.08);border-color:#d8b4fe}.ui-button--secondary{color:var(--color-ink);background:#fff;border:1px solid #a5b4fc;box-shadow:0 .5rem 1.25rem #0f172a2e}.ui-button--quiet{color:#eef6ff;-webkit-backdrop-filter:blur(.75rem);backdrop-filter:blur(.75rem);background:#0c1234d1;border:1px solid #bfdbfe85;box-shadow:0 .5rem 1.25rem #0307193d}.ui-button--danger{background:linear-gradient(135deg,#be123c,#e11d48);border-color:#fda4af}.ui-button[aria-pressed=true]{border-color:#67e8f9;box-shadow:0 0 0 .15rem #67e8f957,0 .6rem 1.5rem #2563eb52}.ui-button--small{min-height:2.5rem;padding:.55rem var(--space-4);font-size:var(--text-sm)}.ui-button:disabled,.ui-button[aria-disabled=true]{opacity:.5;cursor:not-allowed;transform:none}.ui-icon-button{width:var(--touch-target);height:var(--touch-target);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-ink);cursor:pointer;border-radius:50%;place-items:center;display:inline-grid}.ui-card{min-height:15rem;padding:var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#ffffffd1;border:1px solid #d8d2e6bf;flex-direction:column;display:flex}.ui-card--accent{background:#fff6d9}.ui-card__title{margin-bottom:var(--space-3);font-size:var(--text-lg)}.ui-card__body{color:var(--color-ink-muted);flex:1}.ui-card__footer{padding-top:var(--space-4)}.ui-field{gap:var(--space-2);display:grid}.ui-field__label{font-size:var(--text-sm);font-weight:600}.ui-field__required{margin-left:var(--space-2);color:var(--color-ink-muted);font-size:var(--text-xs);font-weight:400}.ui-input{width:100%;min-height:var(--touch-target);padding:.75rem var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-ink)}.ui-input--error{border-color:var(--color-danger)}.ui-field__error{color:var(--color-danger);font-size:var(--text-sm);margin:0}.ui-dialog{border-radius:var(--radius-lg);background:var(--color-surface);width:min(100% - 2rem,34rem);color:var(--color-ink);box-shadow:var(--shadow-md);border:0;padding:0}.ui-dialog::backdrop{-webkit-backdrop-filter:blur(.25rem);backdrop-filter:blur(.25rem);background:#211b328c}.ui-dialog__header{padding:var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.ui-dialog__header h2{margin:0}.ui-dialog__body{padding:var(--space-5)}.ui-drawer{border-radius:var(--radius-lg) 0 0 var(--radius-lg);width:min(90vw,25rem);height:100%;max-height:none;margin:0 0 0 auto}.ui-toast{right:var(--space-4);z-index:var(--z-toast);max-width:min(24rem,100% - 2rem);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-surface);box-shadow:var(--shadow-md);position:fixed;bottom:6rem}.ui-progress{gap:var(--space-2);display:grid}.ui-progress__label{justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);display:flex}.ui-progress progress{border-radius:var(--radius-pill);border:0;width:100%;height:.75rem;overflow:hidden}.ui-progress progress::-webkit-progress-bar{background:var(--color-surface-muted)}.ui-progress progress::-webkit-progress-value{background:var(--color-brand)}.ui-stepper{margin:var(--space-5) 0 0;gap:var(--space-3);padding:0;list-style:none;display:grid}.ui-stepper li{align-items:center;gap:var(--space-3);color:var(--color-ink-muted);display:flex}.ui-stepper li[aria-current=step]{color:var(--color-brand-strong);font-weight:600}.ui-stepper__number{background:var(--color-surface-muted);border-radius:50%;place-items:center;width:2rem;height:2rem;display:grid}.ui-state{padding-block:var(--space-4);justify-items:start;gap:var(--space-2);display:grid}.ui-state p{margin-bottom:0}.ui-state__icon{width:var(--touch-target);height:var(--touch-target);background:var(--color-surface-muted);color:var(--color-brand-strong);font-size:var(--text-lg);border-radius:50%;place-items:center;font-weight:600;display:grid}.ui-state--error .ui-state__icon{color:var(--color-danger);background:#fee4e2}.ui-state--loading{grid-template-columns:auto 1fr;align-items:center}.ui-spinner{border:.1875rem solid var(--color-surface-muted);border-top-color:var(--color-brand);width:1.5rem;height:1.5rem;animation:spin var(--duration-normal) linear infinite;border-radius:50%}.ui-swatch{min-height:var(--touch-target);align-items:center;gap:var(--space-2);display:inline-flex}.ui-swatch__color{border:.125rem solid var(--color-surface);background:var(--swatch-color);width:2rem;height:2rem;box-shadow:0 0 0 1px var(--color-border);border-radius:50%}.ui-swatch small{color:var(--color-ink-muted);display:block}.page-heading{margin-bottom:var(--space-6);justify-content:space-between;align-items:end;gap:var(--space-5);display:flex}.page-heading h1,.wizard-shell h1{margin-bottom:var(--space-3)}.page-heading p,.wizard-shell>p{max-width:42rem;color:var(--color-ink-muted);margin-bottom:0}.project-grid{gap:var(--space-5);display:grid}.project-card__preview,.board-option__preview{border-radius:var(--radius-md);background:radial-gradient(circle, #6d3fe040 0 .2rem, transparent .23rem) 0 0 / 1rem 1rem, var(--color-surface-muted);min-height:8rem;color:var(--color-brand-strong);place-items:center;font-weight:600;display:grid}.project-card__meta{margin-top:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-xs);display:flex}.status-chip{border-radius:var(--radius-pill);background:var(--color-surface-muted);color:var(--color-brand-strong);padding:.25rem .625rem;font-weight:600}.project-card__title{margin:var(--space-3) 0 var(--space-1);color:var(--color-ink)}.project-card__rename{margin-top:var(--space-4)}.project-card__rename summary{color:var(--color-brand-strong);cursor:pointer;font-weight:600}.project-card__rename form,.upload-form{margin-top:var(--space-3);gap:var(--space-3);display:grid}.project-card__actions,.wizard-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.project-card__actions form{margin:0}.pagination{margin-top:var(--space-6)}.status-message{padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);color:var(--color-success);background:#dff7eb}.wizard-shell{max-width:52rem;margin-inline:auto}.wizard-form{margin-top:var(--space-6);gap:var(--space-6);display:grid}.board-options{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.board-options legend{margin-bottom:var(--space-3);font-weight:600}.board-option{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);align-items:center;gap:var(--space-4);cursor:pointer;grid-template-columns:7rem 1fr;display:grid}.board-option:has(input:checked){border-color:var(--color-brand);box-shadow:0 0 0 .125rem #6d3fe026}.board-option input{opacity:0;position:absolute}.board-option__preview{min-height:6rem}.board-option strong,.board-option small{display:block}.board-option small{margin-top:var(--space-1);color:var(--color-ink-muted)}.board-option--disabled{opacity:.55;cursor:not-allowed}.board-option--action{text-decoration:none}.board-option--action:hover{border-color:var(--color-brand)}.board-option__mask{aspect-ratio:1;grid-template-columns:repeat(18,1fr);gap:.08rem;width:6rem;display:grid}.board-option__mask i{background:#ded9e8;border-radius:50%}.board-option__mask i.is-active{background:var(--color-brand)}.board-option__mask--large{gap:.12rem;width:min(100%,14rem);margin-inline:auto}.board-scan{gap:var(--space-6);display:grid}.board-scan__instructions{gap:var(--space-2);padding-inline-start:var(--space-6);display:grid}.board-editor{padding:clamp(var(--space-3), 3vw, var(--space-6));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:var(--space-5);display:grid}.board-editor__status{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.board-editor__status progress{width:min(100%,20rem)}.board-editor__canvas{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-canvas);overflow:hidden}.board-editor__canvas canvas{object-fit:contain;cursor:crosshair;touch-action:none;width:100%;height:auto;max-height:70vh;display:block}.board-editor__tools,.board-editor__corners,.board-editor__save,.board-library__actions{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.board-editor__tools label,.board-editor__corners label,.board-editor__save label{align-items:center;gap:var(--space-2);display:inline-flex}.board-editor__corners{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);margin:0}.board-editor__corners legend{padding-inline:var(--space-2);font-weight:600}.board-editor__save{align-items:end}.board-editor__save .ui-field{flex:16rem}.board-library{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));display:grid}.board-library__card{padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);gap:var(--space-4);display:grid}.board-library__card form{gap:var(--space-2);display:flex}.board-library__card form label{flex:1;min-width:0}.guest-project-saved{margin-top:var(--space-6);padding:var(--space-6);border-radius:var(--radius-lg);background:#fff6d9}.pattern-studio{margin-top:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);gap:var(--space-5);display:grid}.pattern-studio__preview canvas{aspect-ratio:1;border-radius:var(--radius-md);background:var(--color-surface-muted);touch-action:none;width:100%;display:block}.pattern-studio__controls{align-content:start;gap:var(--space-4);display:grid}.pattern-studio__controls label{gap:var(--space-2);font-weight:600;display:grid}.pattern-studio__controls input[type=range],.pattern-studio__controls progress{width:100%}.pattern-studio__quick-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.pattern-review{gap:var(--space-5);margin-block:var(--space-6);padding:clamp(var(--space-4), 3vw, var(--space-7));border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);display:grid}.pattern-review__heading,.pattern-review__layout,.pattern-review__toolbar,.pattern-review__view-switch{gap:var(--space-4);display:flex}.pattern-review__heading{justify-content:space-between;align-items:start}.pattern-review__layout{align-items:start}.pattern-review__layout>div{flex:1;min-width:0}.pattern-review__sidebar{gap:var(--space-4);flex:0 0 19rem;width:min(100%,19rem);display:grid}.pattern-review__toolbar{flex-wrap:wrap;align-items:center;margin-block-end:var(--space-3)}.pattern-review__view-switch{gap:var(--space-2)}.pattern-review__view-switch .ui-button[aria-pressed=false],.build-mode__switch .ui-button[aria-pressed=false]{color:var(--color-ink);background:#fff;border-color:#a5b4fc;box-shadow:0 .5rem 1.25rem #0f172a2e}.pattern-review__view-switch .ui-button[aria-pressed=true],.build-mode__switch .ui-button[aria-pressed=true]{color:#fff;background:linear-gradient(135deg,#7c3aed 0%,#4f46e5 48%,#2563eb 100%);border-color:#67e8f9}.pattern-review__3d{min-width:0}.pattern-review__3d-viewport{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#eeeae2;width:100%;height:clamp(24rem,68vw,46rem);overflow:hidden}.build-mode{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-md);gap:1rem;margin-block:1.5rem;padding:clamp(1rem,3vw,1.75rem);display:grid}.build-mode__heading,.build-mode__switch,.build-mode__actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.build-mode__switch .ui-button{flex:12rem}.build-mode__current{border-radius:var(--radius-md);background:var(--color-surface-muted);gap:.75rem;padding:1rem;display:grid}.build-mode__current progress{width:100%;min-height:.9rem;accent-color:var(--color-brand)}.build-mode__current ul{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding-left:1.25rem;display:flex}.build-mode--compact{padding:var(--space-3);gap:var(--space-3);box-shadow:none;margin:0}.build-mode--compact .build-mode__heading{align-items:start}.build-mode--compact .build-mode__heading h2{margin-bottom:var(--space-1);font-size:1.1rem}.build-mode--compact .build-mode__heading p{font-size:var(--text-xs);margin-bottom:0}.build-mode--compact .build-mode__heading .eyebrow{margin-bottom:var(--space-1);color:var(--color-brand-strong)}.build-mode--compact .build-mode__switch{gap:var(--space-2)}.build-mode--compact .build-mode__switch .ui-button{flex-basis:7rem}.build-mode--compact .build-mode__current{padding:var(--space-3);gap:var(--space-2)}.build-mode--compact .build-mode__current h3,.build-mode--compact .build-mode__current p{margin:0}.build-mode--compact .build-mode__current h3{font-size:var(--text-md)}.build-mode--compact .build-mode__actions{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.build-mode--compact .build-mode__actions .ui-button{min-width:0;padding-inline:var(--space-2)}.pattern-review__3d-viewport canvas{touch-action:none;width:100%;height:100%;display:block}.pattern-review__3d:fullscreen{padding:var(--space-4);background:var(--color-canvas);overflow:auto}.pattern-review__3d:fullscreen .pattern-review__3d-viewport{height:calc(100vh - 7rem)}.ui-alert--warning{padding:var(--space-4);border-left:.3rem solid var(--color-accent);border-radius:var(--radius-sm);background:#fff7db}.pattern-review__toolbar label{align-items:center;gap:var(--space-2);min-height:2.75rem;display:inline-flex}.pattern-review__viewport{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:#ece9e2;width:100%;min-width:0;max-width:100%;height:clamp(22rem,68vw,44rem);overflow:hidden}.pattern-review__viewport canvas{cursor:grab;touch-action:none;width:100%;max-width:100%;height:100%;display:block}.pattern-review__viewport canvas:active{cursor:grabbing}.pattern-review__viewport canvas:focus-visible{outline:3px solid var(--color-focus);outline-offset:-3px}.pattern-review__tooltip{min-height:1.5rem;margin-block:var(--space-3) 0;font-weight:600}.pattern-review__legend{width:100%;padding:var(--space-4);border-radius:var(--radius-lg);background:var(--color-surface-muted)}.pattern-review__legend ul{gap:var(--space-2);padding:0;list-style:none;display:grid}.pattern-review__legend li{gap:var(--space-2);grid-template-columns:auto 1fr auto;align-items:center;display:grid}.pattern-review__swatch{background:var(--swatch);border:1px solid #0000002e;border-radius:50%;width:1.25rem;height:1.25rem}.hero .eyebrow,.page-heading .eyebrow,.wizard-shell>.eyebrow{color:#8be9ff}.page-heading,.page-heading p,.wizard-shell>h1,.wizard-shell>p,.board-options>legend,.board-scan__instructions,.ui-stepper li,.ui-stepper li[aria-current=step]{color:#eef2ff}.ui-stepper__number{color:#fff;-webkit-backdrop-filter:blur(.65rem);backdrop-filter:blur(.65rem);background:#0f173db8;border:1px solid #a5b4fc6b;box-shadow:0 .45rem 1.2rem #0307194d}@media (width<=48rem){.pattern-review__heading,.pattern-review__layout{flex-direction:column}.pattern-review__heading .ui-button,.pattern-review__legend,.pattern-review__sidebar{width:100%}.pattern-review__sidebar{flex-basis:auto}.pattern-review__viewport{height:min(88vw,34rem);min-height:19rem}.pattern-review__3d-viewport{height:min(90vw,34rem);min-height:20rem}.board-option{grid-template-columns:5rem 1fr}.board-option__mask{width:4.5rem}.board-editor__tools .ui-button{flex:auto}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=24rem){.app-header{min-height:4rem}.brand__name{display:none}.hero{min-height:auto;padding-top:var(--space-4)}h1{margin-bottom:var(--space-4);font-size:clamp(2rem,11vw,2.5rem)}.hero__intro{margin-bottom:var(--space-4);font-size:var(--text-md)}.hero__actions{gap:var(--space-2)}.hero__actions .ui-button{min-height:2.5rem;padding:.55rem var(--space-3);font-size:var(--text-sm)}}@media (width>=48rem){body{padding-bottom:0}.app-header{width:min(100% - 3rem, var(--content-max));grid-template-columns:1fr auto auto}.app-content{width:min(100% - 3rem, var(--content-max))}.desktop-nav{display:flex}.mobile-nav{display:none}.hero{grid-template-columns:minmax(0,1.15fr) minmax(18rem,.85fr)}.home-grid,.showcase-grid,.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-studio{padding:var(--space-6);grid-template-columns:minmax(0,1.2fr) minmax(16rem,.8fr)}}@media (width>=64rem){.app-header,.app-content{width:min(100% - 5rem, var(--content-max))}.ui-card{padding:var(--space-6)}.showcase-grid,.project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
