:root{--color-primary: 13, 110, 133;--color-primary-dark: 9, 78, 95;--color-accent: 20, 160, 180;--color-accent-soft: 224, 242, 245;--color-text: 15, 23, 42;--color-text-muted: 100, 116, 139;--color-heading: 15, 23, 42;--color-background: 244, 247, 250;--color-surface: 255, 255, 255;--color-surface-2: 241, 245, 249;--color-border: 226, 232, 240;--color-success: 22, 163, 74;--color-warn: 202, 138, 4;--color-danger: 220, 38, 38;--color-info: 37, 99, 235;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--font-family-base: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.5rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);--shadow-md: 0 6px 16px -4px rgba(15, 23, 42, .12);--shadow-lg: 0 16px 40px -12px rgba(15, 23, 42, .18);--shadow-xl: 0 24px 60px -16px rgba(15, 23, 42, .22)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-base, system-ui, -apple-system, sans-serif);font-size:var(--font-size-base, 1rem);line-height:1.5;color:rgb(var(--color-text, 17, 24, 39));background:rgb(var(--color-background, 255, 255, 255))}:focus-visible{outline:2px solid rgb(var(--color-accent, 0, 123, 255));outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.m-0{margin:0}.m-1{margin:var(--space-1, .25rem)}.m-2{margin:var(--space-2, .5rem)}.m-3{margin:var(--space-3, .75rem)}.m-4{margin:var(--space-4, 1rem)}.m-5{margin:var(--space-5, 1.25rem)}.m-6{margin:var(--space-6, 1.5rem)}.m-8{margin:var(--space-8, 2rem)}.m-10{margin:var(--space-10, 2.5rem)}.m-12{margin:var(--space-12, 3rem)}.m-16{margin:var(--space-16, 4rem)}.mx-auto{margin-left:auto;margin-right:auto}.mx-1{margin-left:var(--space-1, .25rem);margin-right:var(--space-1, .25rem)}.mx-2{margin-left:var(--space-2, .5rem);margin-right:var(--space-2, .5rem)}.mx-4{margin-left:var(--space-4, 1rem);margin-right:var(--space-4, 1rem)}.mx-6{margin-left:var(--space-6, 1.5rem);margin-right:var(--space-6, 1.5rem)}.my-1{margin-top:var(--space-1, .25rem);margin-bottom:var(--space-1, .25rem)}.my-2{margin-top:var(--space-2, .5rem);margin-bottom:var(--space-2, .5rem)}.my-4{margin-top:var(--space-4, 1rem);margin-bottom:var(--space-4, 1rem)}.my-6{margin-top:var(--space-6, 1.5rem);margin-bottom:var(--space-6, 1.5rem)}.my-8{margin-top:var(--space-8, 2rem);margin-bottom:var(--space-8, 2rem)}.mt-0{margin-top:0}.mt-1{margin-top:var(--space-1, .25rem)}.mt-2{margin-top:var(--space-2, .5rem)}.mt-3{margin-top:var(--space-3, .75rem)}.mt-4{margin-top:var(--space-4, 1rem)}.mt-6{margin-top:var(--space-6, 1.5rem)}.mt-8{margin-top:var(--space-8, 2rem)}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--space-1, .25rem)}.mb-2{margin-bottom:var(--space-2, .5rem)}.mb-3{margin-bottom:var(--space-3, .75rem)}.mb-4{margin-bottom:var(--space-4, 1rem)}.mb-6{margin-bottom:var(--space-6, 1.5rem)}.mb-8{margin-bottom:var(--space-8, 2rem)}.mb-12{margin-bottom:var(--space-12, 3rem)}.ml-0{margin-left:0}.ml-1{margin-left:var(--space-1, .25rem)}.ml-2{margin-left:var(--space-2, .5rem)}.ml-4{margin-left:var(--space-4, 1rem)}.ml-6{margin-left:var(--space-6, 1.5rem)}.mr-0{margin-right:0}.mr-1{margin-right:var(--space-1, .25rem)}.mr-2{margin-right:var(--space-2, .5rem)}.mr-4{margin-right:var(--space-4, 1rem)}.mr-6{margin-right:var(--space-6, 1.5rem)}.p-0{padding:0}.p-1{padding:var(--space-1, .25rem)}.p-2{padding:var(--space-2, .5rem)}.p-3{padding:var(--space-3, .75rem)}.p-4{padding:var(--space-4, 1rem)}.p-5{padding:var(--space-5, 1.25rem)}.p-6{padding:var(--space-6, 1.5rem)}.p-8{padding:var(--space-8, 2rem)}.p-10{padding:var(--space-10, 2.5rem)}.p-12{padding:var(--space-12, 3rem)}.px-1{padding-left:var(--space-1, .25rem);padding-right:var(--space-1, .25rem)}.px-2{padding-left:var(--space-2, .5rem);padding-right:var(--space-2, .5rem)}.px-3{padding-left:var(--space-3, .75rem);padding-right:var(--space-3, .75rem)}.px-4{padding-left:var(--space-4, 1rem);padding-right:var(--space-4, 1rem)}.px-6{padding-left:var(--space-6, 1.5rem);padding-right:var(--space-6, 1.5rem)}.px-8{padding-left:var(--space-8, 2rem);padding-right:var(--space-8, 2rem)}.py-1{padding-top:var(--space-1, .25rem);padding-bottom:var(--space-1, .25rem)}.py-2{padding-top:var(--space-2, .5rem);padding-bottom:var(--space-2, .5rem)}.py-3{padding-top:var(--space-3, .75rem);padding-bottom:var(--space-3, .75rem)}.py-4{padding-top:var(--space-4, 1rem);padding-bottom:var(--space-4, 1rem)}.py-6{padding-top:var(--space-6, 1.5rem);padding-bottom:var(--space-6, 1.5rem)}.py-8{padding-top:var(--space-8, 2rem);padding-bottom:var(--space-8, 2rem)}.pt-0{padding-top:0}.pt-1{padding-top:var(--space-1, .25rem)}.pt-2{padding-top:var(--space-2, .5rem)}.pt-4{padding-top:var(--space-4, 1rem)}.pt-6{padding-top:var(--space-6, 1.5rem)}.pt-8{padding-top:var(--space-8, 2rem)}.pb-0{padding-bottom:0}.pb-1{padding-bottom:var(--space-1, .25rem)}.pb-2{padding-bottom:var(--space-2, .5rem)}.pb-4{padding-bottom:var(--space-4, 1rem)}.pb-6{padding-bottom:var(--space-6, 1.5rem)}.pb-8{padding-bottom:var(--space-8, 2rem)}.pl-0{padding-left:0}.pl-1{padding-left:var(--space-1, .25rem)}.pl-2{padding-left:var(--space-2, .5rem)}.pl-4{padding-left:var(--space-4, 1rem)}.pl-6{padding-left:var(--space-6, 1.5rem)}.pr-0{padding-right:0}.pr-1{padding-right:var(--space-1, .25rem)}.pr-2{padding-right:var(--space-2, .5rem)}.pr-4{padding-right:var(--space-4, 1rem)}.pr-6{padding-right:var(--space-6, 1.5rem)}.gap-0{gap:0}.gap-1{gap:var(--space-1, .25rem)}.gap-2{gap:var(--space-2, .5rem)}.gap-3{gap:var(--space-3, .75rem)}.gap-4{gap:var(--space-4, 1rem)}.gap-6{gap:var(--space-6, 1.5rem)}.gap-8{gap:var(--space-8, 2rem)}.gap-12{gap:var(--space-12, 3rem)}.text-xs{font-size:var(--font-size-xs, .75rem)}.text-sm{font-size:var(--font-size-sm, .875rem)}.text-base{font-size:var(--font-size-base, 1rem)}.text-lg{font-size:var(--font-size-lg, 1.125rem)}.text-xl{font-size:var(--font-size-xl, 1.25rem)}.text-2xl{font-size:var(--font-size-2xl, 1.5rem)}.text-3xl{font-size:var(--font-size-3xl, 1.875rem)}.text-4xl{font-size:var(--font-size-4xl, 2.25rem)}.font-normal{font-weight:var(--font-weight-normal, 400)}.font-medium{font-weight:var(--font-weight-medium, 500)}.font-semibold{font-weight:var(--font-weight-semibold, 600)}.font-bold{font-weight:var(--font-weight-bold, 700)}.font-sans{font-family:var(--font-family-base, system-ui, -apple-system, sans-serif)}.font-serif{font-family:var(--font-family-serif, Georgia, Cambria, "Times New Roman", serif)}.font-mono{font-family:var(--font-family-mono, ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.leading-none{line-height:1}.leading-tight{line-height:1.25}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.75}.underline{text-decoration:underline}.no-underline{text-decoration:none}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.normal-case{text-transform:none}.block{display:block}.inline{display:inline}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-initial{flex:0 1 auto}.flex-none{flex:none}.flex-grow{flex-grow:1}.flex-shrink-0{flex-shrink:0}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-min{width:min-content}.w-max{width:max-content}.w-fit{width:fit-content}.w-1\/2{width:50%}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.h-min{height:min-content}.h-max{height:max-content}.h-fit{height:fit-content}.min-w-0{min-width:0}.min-w-full{min-width:100%}.min-h-0{min-height:0}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.max-w-none{max-width:none}.max-w-full{max-width:100%}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.inset-0{top:0;right:0;bottom:0;left:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-auto{z-index:auto}.border{border-width:1px;border-style:solid}.border-0{border-width:0}.border-2{border-width:2px;border-style:solid}.border-4{border-width:4px;border-style:solid}.border-t{border-top-width:1px;border-top-style:solid}.border-r{border-right-width:1px;border-right-style:solid}.border-b{border-bottom-width:1px;border-bottom-style:solid}.border-l{border-left-width:1px;border-left-style:solid}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm, 4px)}.rounded,.rounded-md{border-radius:var(--radius-md, 6px)}.rounded-lg{border-radius:var(--radius-lg, 8px)}.rounded-xl{border-radius:12px}.rounded-2xl{border-radius:16px}.rounded-full{border-radius:var(--radius-full, 9999px)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:var(--shadow-sm, 0 1px 2px 0 rgba(0, 0, 0, .05))}.shadow,.shadow-md{box-shadow:var(--shadow-md, 0 4px 6px -1px rgba(0, 0, 0, .1))}.shadow-lg{box-shadow:var(--shadow-lg, 0 10px 15px -3px rgba(0, 0, 0, .1))}.shadow-xl{box-shadow:0 20px 25px -5px #0000001a}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.visible{visibility:visible}.invisible{visibility:hidden}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.cursor-auto{cursor:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-wait{cursor:wait}.cursor-text{cursor:text}.cursor-move{cursor:move}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.object-fill{object-fit:fill}.object-none{object-fit:none}.object-scale-down{object-fit:scale-down}.select-none{-webkit-user-select:none;user-select:none}.select-text{-webkit-user-select:text;user-select:text}.select-all{-webkit-user-select:all;user-select:all}.select-auto{-webkit-user-select:auto;user-select:auto}@media(min-width:640px){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:grid{display:grid}.sm\:hidden{display:none}.sm\:table-cell{display:table-cell}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:text-left{text-align:left}.sm\:text-center{text-align:center}.sm\:text-right{text-align:right}}@media(min-width:768px){.md\:block{display:block}.md\:flex{display:flex}.md\:grid{display:grid}.md\:hidden{display:none}.md\:table-cell{display:table-cell}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-left{text-align:left}.md\:text-center{text-align:center}.md\:text-right{text-align:right}}@media(min-width:1024px){.lg\:block{display:block}.lg\:flex{display:flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:table-cell{display:table-cell}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.lg\:text-left{text-align:left}.lg\:text-center{text-align:center}.lg\:text-right{text-align:right}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}body{background:radial-gradient(1200px 600px at 100% -10%,rgba(var(--color-accent),.1),transparent 60%),radial-gradient(900px 500px at -10% 0%,rgba(var(--color-primary),.08),transparent 55%),rgb(var(--color-background));color:rgb(var(--color-text));min-height:100vh}h1,h2,h3,h4{color:rgb(var(--color-heading));line-height:1.2}.text-muted{color:rgb(var(--color-text-muted))}.text-primary{color:rgb(var(--color-primary))}.app{min-height:100vh;display:flex;flex-direction:column}.app__container{width:100%;max-width:1200px;margin:0 auto;padding:var(--space-4)}.app__workspace{display:grid;grid-template-columns:1fr;gap:var(--space-6);align-items:start}@media(min-width:1024px){.app__workspace{grid-template-columns:minmax(0,1fr) 340px}}.site-header{position:sticky;top:0;z-index:40;background:#ffffffb8;-webkit-backdrop-filter:saturate(140%) blur(12px);backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid rgb(var(--color-border))}.site-header__inner{max-width:1200px;margin:0 auto;padding:var(--space-3) var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.brand{display:flex;align-items:center;gap:var(--space-3);background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit}.brand:focus-visible{outline:2px solid rgb(var(--color-primary));outline-offset:3px;border-radius:var(--radius-sm)}.brand__mark{width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,rgb(var(--color-primary)),rgb(var(--color-accent)));display:grid;place-items:center;color:#fff;box-shadow:var(--shadow-sm)}.brand__name{font-weight:var(--font-weight-bold);font-size:var(--font-size-lg);letter-spacing:-.01em}.brand__name span{color:rgb(var(--color-primary))}.hero__art{display:block;width:100%;max-width:720px;height:auto;margin:var(--space-8) auto 0;border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.hero{text-align:center;padding:var(--space-10) 0 var(--space-6)}.hero__title{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em;margin-bottom:var(--space-4)}.hero__title em{font-style:normal;background:linear-gradient(120deg,rgb(var(--color-primary)),rgb(var(--color-accent)));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero__subtitle{font-size:var(--font-size-lg);color:rgb(var(--color-text-muted));max-width:44rem;margin:0 auto var(--space-8)}.card{background:rgb(var(--color-surface));border:1px solid rgb(var(--color-border));border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.panel{padding:var(--space-5)}.panel__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:rgb(var(--color-text-muted));margin-bottom:var(--space-4);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:transform .06s ease,background .15s ease,box-shadow .15s ease,border-color .15s ease;text-decoration:none;white-space:nowrap}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,rgb(var(--color-primary)),rgb(var(--color-accent)));color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover:not(:disabled){box-shadow:var(--shadow-md)}.btn--secondary{background:rgb(var(--color-surface));color:rgb(var(--color-text));border-color:rgb(var(--color-border))}.btn--secondary:hover:not(:disabled){background:rgb(var(--color-surface-2))}.btn--ghost{background:transparent;color:rgb(var(--color-primary))}.btn--ghost:hover:not(:disabled){background:rgb(var(--color-accent-soft))}.btn--block{width:100%}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-base)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs)}.stepnav{display:flex;flex-wrap:wrap;gap:var(--space-2)}.stepnav__item{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);border:1px solid rgb(var(--color-border));background:rgb(var(--color-surface));color:rgb(var(--color-text-muted));font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all .15s ease}.stepnav__item:disabled{opacity:.45;cursor:not-allowed}.stepnav__item--active{border-color:rgb(var(--color-primary));color:rgb(var(--color-primary-dark));background:rgb(var(--color-accent-soft))}.stepnav__item--done{color:rgb(var(--color-success))}.stepnav__num{width:22px;height:22px;border-radius:var(--radius-full);background:rgb(var(--color-surface-2));display:grid;place-items:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.stepnav__item--active .stepnav__num{background:rgb(var(--color-primary));color:#fff}.stepnav__item--done .stepnav__num{background:rgb(var(--color-success));color:#fff}.dropzone{border:2px dashed rgba(var(--color-primary),.35);border-radius:var(--radius-xl);background:rgb(var(--color-surface));padding:var(--space-12) var(--space-6);text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease}.dropzone:hover{border-color:rgb(var(--color-primary));background:rgb(var(--color-accent-soft))}.dropzone--drag{border-color:rgb(var(--color-primary));background:rgb(var(--color-accent-soft));transform:scale(1.005)}.dropzone__icon{width:64px;height:64px;margin:0 auto var(--space-4);border-radius:var(--radius-full);background:rgb(var(--color-accent-soft));color:rgb(var(--color-primary));display:grid;place-items:center}.dropzone__hint{color:rgb(var(--color-text-muted));font-size:var(--font-size-sm)}.feature-row{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}.feature{display:flex;align-items:center;gap:var(--space-2);color:rgb(var(--color-text-muted));font-size:var(--font-size-sm)}.feature svg{color:rgb(var(--color-primary));flex-shrink:0}.stage{position:relative;width:100%;aspect-ratio:35 / 45;max-width:460px;margin:0 auto;border-radius:var(--radius-lg);overflow:hidden;background:repeating-conic-gradient(rgb(var(--color-surface-2)),rgb(var(--color-surface-2)) 25%,rgb(var(--color-surface)) 0%,rgb(var(--color-surface)) 50%) 50% / 22px 22px;touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.stage--grabbing{cursor:grabbing}.stage__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.stage__frame{position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 1px #0f172a1f;pointer-events:none}.guide{position:absolute;left:0;right:0;height:0;border-top:1.5px dashed rgba(255,255,255,.95);pointer-events:none}.guide--crown{border-color:#7de3fff2}.guide--chin{border-color:#ffce78f2}.guide__label{position:absolute;right:6px;top:-10px;transform:translateY(-50%);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.04em;text-transform:uppercase;color:#0b1f2a;background:#ffffffd9;padding:1px 6px;border-radius:var(--radius-full)}.detect-dot{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:var(--radius-full);background:rgba(var(--color-accent),.9);border:2px solid #fff;pointer-events:none}.slider{margin-bottom:var(--space-4)}.slider__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2);font-size:var(--font-size-sm)}.slider__value{color:rgb(var(--color-text-muted));font-variant-numeric:tabular-nums}.slider input[type=range]{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:var(--radius-full);background:rgb(var(--color-surface-2));outline:none}.slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:18px;height:18px;border-radius:var(--radius-full);background:rgb(var(--color-primary));border:2px solid #fff;box-shadow:var(--shadow-sm);cursor:pointer}.slider input[type=range]::-moz-range-thumb{width:18px;height:18px;border:2px solid #fff;border-radius:var(--radius-full);background:rgb(var(--color-primary));cursor:pointer}.readout{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.readout--ok{background:rgba(var(--color-success),.12);color:rgb(var(--color-success))}.readout--warn{background:rgba(var(--color-warn),.14);color:rgb(var(--color-warn))}.readout--bad{background:rgba(var(--color-danger),.12);color:rgb(var(--color-danger))}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-3)}.swatch{width:40px;height:40px;border-radius:var(--radius-md);border:2px solid rgb(var(--color-border));cursor:pointer;position:relative;transition:transform .08s ease,border-color .15s ease}.swatch:hover{transform:translateY(-2px)}.swatch--active{border-color:rgb(var(--color-primary));box-shadow:0 0 0 3px rgba(var(--color-primary),.2)}.swatch--custom{display:grid;place-items:center;overflow:hidden;background:conic-gradient(red,orange,#ff0,green,#0ff,#00f,violet,red)}.switch{position:relative;display:inline-flex;align-items:center;gap:var(--space-3);cursor:pointer;-webkit-user-select:none;user-select:none}.switch__track{width:44px;height:26px;border-radius:var(--radius-full);background:rgb(var(--color-surface-2));border:1px solid rgb(var(--color-border));transition:background .15s ease;position:relative;flex-shrink:0}.switch__thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:var(--radius-full);background:#fff;box-shadow:var(--shadow-sm);transition:transform .15s ease}.switch--on .switch__track{background:rgb(var(--color-primary));border-color:rgb(var(--color-primary))}.switch--on .switch__thumb{transform:translate(18px)}.checklist{display:flex;flex-direction:column;gap:var(--space-2)}.check{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:rgb(var(--color-surface-2))}.check__icon{width:20px;height:20px;flex-shrink:0;border-radius:var(--radius-full);display:grid;place-items:center;color:#fff;font-size:12px;font-weight:var(--font-weight-bold);margin-top:1px}.check__icon--pass{background:rgb(var(--color-success))}.check__icon--warn{background:rgb(var(--color-warn))}.check__icon--fail{background:rgb(var(--color-danger))}.check__icon--info{background:rgb(var(--color-text-muted))}.check__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.check__detail{font-size:var(--font-size-xs);color:rgb(var(--color-text-muted))}.preview__frame{width:100%;max-width:200px;margin:0 auto var(--space-4);aspect-ratio:35 / 45;border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid rgb(var(--color-border));background:rgb(var(--color-surface-2))}.preview__canvas{width:100%;height:100%;display:block}.preview__placeholder{width:100%;height:100%;display:grid;place-items:center;color:rgb(var(--color-text-muted));font-size:var(--font-size-sm);text-align:center;padding:var(--space-4)}.preview__score{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--font-size-sm);margin-bottom:var(--space-4)}.stage__status{position:absolute;inset:auto 0 0 0;margin:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:#0f172ac7;color:#fff;font-size:var(--font-size-xs);display:flex;align-items:center;gap:var(--space-2);justify-content:center}.spinner{width:14px;height:14px;border-radius:var(--radius-full);border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .8s linear infinite}.spinner--dark{border-color:rgba(var(--color-primary),.25);border-top-color:rgb(var(--color-primary))}.doctype{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid rgb(var(--color-border));background:rgb(var(--color-surface-2))}.doctype__badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:rgb(var(--color-primary));color:#fff;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.divider{height:1px;background:rgb(var(--color-border));margin:var(--space-4) 0}.help-text{font-size:var(--font-size-xs);color:rgb(var(--color-text-muted));line-height:1.5}.list-disc{list-style:disc}.list-disc li{margin-bottom:var(--space-1)}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.alert--error{background:rgba(var(--color-danger),.1);color:rgb(var(--color-danger))}.alert--info{background:rgb(var(--color-accent-soft));color:rgb(var(--color-primary-dark))}.site-footer{margin-top:auto;padding:var(--space-8) var(--space-4);text-align:center;color:rgb(var(--color-text-muted));font-size:var(--font-size-sm)}.modify,.download{display:grid;grid-template-columns:1fr;gap:var(--space-6);align-items:start}@media(min-width:1024px){.modify{grid-template-columns:minmax(0,1fr) 380px}.download{grid-template-columns:minmax(0,420px) 1fr}}.stage-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.select{position:relative;display:inline-flex;align-items:center}.select__input{-moz-appearance:none;appearance:none;-webkit-appearance:none;font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:rgb(var(--color-text));background:rgb(var(--color-surface));border:1px solid rgb(var(--color-border));border-radius:var(--radius-md);padding:var(--space-2) var(--space-10) var(--space-2) var(--space-4);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.select__input:hover{border-color:rgb(var(--color-primary))}.select__input:focus-visible{border-color:rgb(var(--color-primary))}.select__arrow{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);pointer-events:none;color:rgb(var(--color-text-muted));display:flex}.format-picker{display:flex;align-items:center;justify-content:center;gap:var(--space-4);flex-wrap:wrap;margin-bottom:var(--space-6)}.tabs{display:flex;gap:var(--space-1);padding:4px;border-radius:var(--radius-md);background:rgb(var(--color-surface-2));margin-bottom:var(--space-5)}.tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:rgb(var(--color-text-muted));cursor:pointer;transition:all .15s ease}.tab--active{background:rgb(var(--color-surface));color:rgb(var(--color-primary-dark));box-shadow:var(--shadow-sm)}.compliance-bar{display:flex;flex-wrap:wrap;gap:var(--space-2)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.chip--pass{background:rgba(var(--color-success),.12);color:rgb(var(--color-success))}.chip--warn{background:rgba(var(--color-warn),.14);color:rgb(var(--color-warn))}.chip--fail{background:rgba(var(--color-danger),.12);color:rgb(var(--color-danger))}.chip--info{background:rgb(var(--color-surface-2));color:rgb(var(--color-text-muted))}.download__frame{width:100%;max-width:320px;margin:0 auto var(--space-4);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);border:1px solid rgb(var(--color-border));background:rgb(var(--color-surface-2))}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:rgb(var(--color-background, 255, 255, 255));border-radius:var(--radius-lg, 8px);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0, 0, 0, .1));max-width:90vw;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal--sm{width:400px}.modal--md{width:560px}.modal--lg{width:720px}.modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5, 1.25rem) var(--space-6, 1.5rem);border-bottom:1px solid rgb(var(--color-border, 229, 231, 235));flex-shrink:0}.modal__title{font-size:var(--font-size-xl, 1.25rem);font-weight:var(--font-weight-semibold, 600);margin:0}.modal__close{background:none;border:none;font-size:var(--font-size-2xl, 1.5rem);cursor:pointer;padding:var(--space-1, .25rem);line-height:1;color:rgb(var(--color-text-muted, 107, 114, 128));border-radius:var(--radius-sm, 4px)}.modal__close:hover{color:rgb(var(--color-text, 17, 24, 39));background:rgb(var(--color-gray-100, 243, 244, 246))}.modal__body{padding:var(--space-6, 1.5rem);overflow-y:auto;flex:1}.modal__footer{display:flex;justify-content:flex-end;gap:var(--space-3, .75rem);padding:var(--space-4, 1rem) var(--space-6, 1.5rem);border-top:1px solid rgb(var(--color-border, 229, 231, 235));flex-shrink:0}@media(max-width:640px){.modal{margin:var(--space-4, 1rem);margin-top:max(var(--space-4, 1rem),env(safe-area-inset-top));margin-bottom:max(var(--space-4, 1rem),env(safe-area-inset-bottom));max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem);border-radius:var(--radius-md, 6px)}.modal--sm,.modal--md,.modal--lg{width:100%}.modal__header,.modal__body{padding:var(--space-4, 1rem)}.modal__footer{padding:var(--space-3, .75rem) var(--space-4, 1rem)}.modal__close{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}}@media(max-width:380px){.modal__footer{flex-direction:column}.modal__footer>button{width:100%}}
