:root{color-scheme:light;--paper:hsl(40,25%,96%);--white:hsl(40,25%,99%);--ink:hsl(345,12%,16%);--muted:hsl(345,6%,40%);--line:hsl(35,15%,84%);--border:hsl(345,6%,54%);--wine:hsl(342,72%,28%);--blush:hsl(342,45%,94%);--green:hsl(150,28%,28%);font-family:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--ink)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0}button,input,textarea,select{font:inherit}a{color:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button,a,input,select,textarea{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid var(--wine);outline-offset:4px}.top{height:80px;display:flex;justify-content:space-between;align-items:center;padding:0 48px;background:linear-gradient(hsla(342,75%,12%,.6),hsla(342,75%,12%,.6)),url('/brocade.webp') center/cover;color:hsl(40,40%,96%)}.brand{display:flex;align-items:center;gap:16px;text-decoration:none}.brand img{object-fit:contain}.brand span{border-left:1px solid hsl(342,20%,60%);padding-left:16px;font-size:14px}.top nav{display:flex;align-items:center;gap:24px;font-size:14px}.top nav a{text-decoration:none;padding-block:8px}.top nav a[aria-current]{border-bottom:1px solid hsl(40,40%,96%)}.top button{background:none;border:0;color:inherit;padding:12px 0}main{max-width:1536px;padding:48px;margin:auto}.heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;gap:24px}.eyebrow{font-size:12px;font-weight:600;letter-spacing:2px;color:var(--wine);margin:0 0 16px}h1{font:400 48px/1.1 Georgia,serif;margin:0 0 16px}h1 i{color:var(--wine);font-weight:400}p{line-height:1.5;color:var(--muted);font-size:14px}h2{font-size:16px;font-weight:600;margin:0}h3{font:400 24px/1.5 Georgia,serif;margin:8px 0}.private-label{font-size:12px;color:var(--green);border:1px solid var(--line);padding:12px 16px;border-radius:8px;white-space:nowrap}.studio-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:32px;align-items:start}.controls{background:var(--white);border:1px solid var(--line);border-radius:8px}.controls section{padding:24px;border-bottom:1px solid var(--line)}.controls section:last-child{border:0}.section-title{display:flex;align-items:center;gap:12px;margin-bottom:24px}.step{font-size:12px;color:var(--wine);background:var(--blush);padding:8px;border-radius:8px}.small{font-size:12px;color:var(--muted);line-height:1.5}.upload{display:flex;align-items:center;gap:12px;padding:16px 12px;border:1px dashed var(--border);border-radius:8px;cursor:pointer;position:relative;margin:0 0 12px}.upload:hover{background:var(--blush)}.upload:focus-within{outline:3px solid var(--wine);outline-offset:3px}.upload-icon{font-size:24px;color:var(--wine);width:32px;text-align:center}.upload strong{display:block;font-size:14px;font-weight:600}.upload small{display:block;color:var(--muted);font-size:12px;margin-top:4px;max-width:192px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.upload input{position:absolute;width:100%;height:100%;inset:0;opacity:0;cursor:pointer}label:not(.upload):not(.squint-label){display:block;font-size:12px;font-weight:600;margin:24px 0 12px}output{float:right;color:var(--wine);font-variant-numeric:tabular-nums}input[type=range]{display:block;width:100%;accent-color:var(--wine);margin:0;height:24px}input:not([type=range]):not([type=file]):not([type=checkbox]),select,textarea{width:100%;padding:12px;border:1px solid var(--border);background:var(--white);border-radius:8px;font-size:14px;color:var(--ink)}textarea{resize:vertical;line-height:1.5}.range-captions{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;margin-top:4px}.row{display:flex;align-items:center;gap:12px;margin-top:16px}.secondary,.text-button{font-size:12px;font-weight:600;padding:12px;border-radius:8px}.secondary{border:1px solid var(--border);background:var(--white)}.text-button{border:0;background:none;color:var(--muted)}.text-button:hover{color:var(--wine);background:var(--blush)}details{margin-top:24px;border-top:1px solid var(--line);padding-top:16px}summary{font-size:12px;color:var(--wine);cursor:pointer}.primary{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--wine);color:var(--white);border:0;border-radius:8px;padding:16px;font-size:14px;font-weight:600;margin-top:24px;box-shadow:0 1px 3px hsla(0,0%,0%,.2)}.primary:hover{background:hsl(342,72%,22%)}.art-column{min-width:0}.canvas-panel{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white)}.canvas-top,.canvas-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px}.canvas-top span,.canvas-footer span{font-size:12px;color:var(--muted)}.canvas-wrap{position:relative;background:hsl(36,12%,90%);padding:24px;display:grid;place-items:center;min-height:384px}.canvas-wrap canvas{display:block;width:100%;max-width:768px;max-height:78dvh;object-fit:contain;touch-action:none;cursor:grab;background:hsl(35,10%,87%);border-radius:4px}.canvas-wrap canvas:active{cursor:grabbing}#canvas-empty{position:absolute;text-align:center;pointer-events:none;padding:24px}#canvas-empty>span{font:400 60px Georgia,serif;color:hsl(342,15%,50%)}#canvas-empty p{font-size:14px}.canvas-footer{padding:12px 24px}.results-section,.history-section{margin-top:32px;border-top:1px solid var(--line);padding-top:32px}.results-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.results-heading .eyebrow{margin-bottom:8px}.squint-label{display:flex;align-items:center;gap:8px;font-size:12px;cursor:pointer}.squint-label input{accent-color:var(--wine);width:16px;height:16px}.status{padding:16px;background:hsl(35,20%,92%);border-radius:8px}.status.busy{color:var(--wine);background:var(--blush)}.error{color:hsl(350,75%,35%);font-size:14px}.error:empty{display:none}.results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.result-card{margin:0;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}.result-art{overflow:hidden;background:hsl(345,12%,10%)}.result-card img{display:block;width:100%;height:auto}.results.squint .result-card img{filter:blur(7px);transform:scale(1.02)}.result-card figcaption{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px;font-size:12px}.result-card small{display:block;color:var(--muted);margin-top:4px}.result-card a{color:var(--wine);font-weight:600;text-decoration:none}.history-row{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;text-align:left;padding:16px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink)}.history-row small{color:var(--muted);font-size:12px;display:block;margin-top:4px}.history-row>span:last-child{font-size:12px;color:var(--wine)}footer{max-width:1536px;margin:0 auto;padding:32px 48px;color:var(--muted);border-top:1px solid var(--line);font-size:12px;display:flex;justify-content:space-between}.login{max-width:384px;margin:64px auto}.login h1{font-size:36px}.login form{margin-top:32px}.loading{text-align:center;padding:64px;color:var(--muted)}@media(min-width:1440px){.studio-grid{grid-template-columns:320px minmax(0,1fr)}.canvas-wrap canvas{max-width:768px}}@media(max-width:1000px){main{padding:32px 24px}.top{padding:0 24px}.studio-grid{grid-template-columns:256px minmax(0,1fr);gap:24px}.controls section{padding:16px}.canvas-wrap{padding:16px;min-height:256px}.canvas-top,.canvas-footer{padding:12px 16px}.canvas-footer{flex-wrap:wrap}.results{grid-template-columns:1fr}.canvas-top span{display:none}h1{font-size:36px}.private-label{display:none}}@media(max-width:700px){.top{height:72px;padding:0 16px}.brand{gap:8px}.brand img{width:96px}.brand span{display:none}.top nav{gap:16px;font-size:12px}main{padding:32px 16px}.heading{margin-bottom:24px}h1{font-size:30px}.studio-grid{display:flex;flex-direction:column;gap:24px}.controls{width:100%;display:grid;grid-template-columns:1fr}.controls section{padding:24px}.art-column{width:100%}.canvas-wrap canvas{max-height:none}.canvas-wrap{padding:12px}.canvas-footer span{max-width:192px;line-height:1.5}.results-heading{align-items:flex-start}.squint-label{max-width:128px}.login{margin:24px auto}footer{padding:24px 16px;gap:24px}}
canvas#canvas{height:auto;max-height:none}
@media(max-width:700px){.studio-grid{display:grid;grid-template-columns:minmax(0,1fr)}.controls,.art-column{display:contents}.controls section{background:var(--white);border:1px solid var(--line);border-radius:8px}.controls section:first-child{order:0}.canvas-panel{order:1}.controls section:nth-child(2){order:2}.controls section:nth-child(3){order:3}.results-section{order:4}.history-section{order:5}.results-section,.history-section{margin-top:0}}
.visibility-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.visibility-steps button{min-height:44px;border:1px solid var(--border);border-radius:8px;background:var(--white);color:var(--muted);font-size:16px;font-weight:600}.visibility-steps button[aria-pressed=true]{background:var(--wine);border-color:var(--wine);color:var(--white)}.visibility-summary{padding:16px;background:var(--blush);border-radius:8px;margin-top:16px}.visibility-summary strong{font-size:14px;color:var(--wine)}.visibility-summary p{font-size:12px;line-height:1.5;margin:8px 0 0;color:var(--wine)}

#preset-preview{display:flex;gap:12px;align-items:center;margin:16px 0}#preset-image{width:64px;height:64px;object-fit:contain;background:var(--paper);border-radius:8px}#load-preset,#save-preset{margin-top:16px;width:100%}
@media(max-width:700px){.controls .preset-section{order:-1}.controls section:nth-child(2){order:0}.controls section:nth-child(3){order:2}.controls section:nth-child(4){order:3}}

.upload.has-preview{flex-wrap:wrap}.upload-preview{display:block;width:100%;height:128px;object-fit:contain;background:var(--paper);border-radius:8px}.upload.has-preview .upload-icon{display:none}.upload.has-preview>span:not(.upload-icon){min-width:0;flex:1}.upload-hint{display:none;font-size:12px;color:var(--wine);margin-top:8px}.upload.has-preview .upload-hint{display:block}.upload.has-preview small{max-width:100%}

.preset-actions{display:flex;align-items:center;gap:8px;margin-top:16px}.preset-actions #load-preset{margin:0;flex:1}.preset-actions #delete-preset{color:var(--wine)}.print-section{margin-top:32px;border-top:1px solid var(--line);padding-top:32px}.print-download{font-size:12px;font-weight:600;color:var(--wine);white-space:nowrap}#print-dialog{width:min(880px,calc(100% - 32px));max-height:90dvh;border:1px solid var(--line);border-radius:8px;padding:32px;background:var(--white);color:var(--ink);box-shadow:0 24px 64px #0004}#print-dialog::backdrop{background:#21171bd9}.print-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;margin-top:24px}.print-proof{background:var(--paper);border-radius:8px;padding:24px;align-self:start;text-align:center}.print-proof canvas{display:block;max-width:100%;max-height:480px;width:auto;height:auto;margin:auto;box-shadow:0 2px 8px #0002}.print-option-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.print-options>label:first-child{margin-top:0}.print-options .primary{margin-top:16px}@media(max-width:700px){.print-section{order:5;margin-top:0}.history-section{order:6}#print-dialog{padding:24px}.print-grid{grid-template-columns:1fr;gap:24px}.print-proof canvas{max-height:256px}.print-proof{padding:16px}.print-section .history-row{flex-wrap:wrap}}

#delete-dialog{max-width:448px;width:calc(100% - 32px);padding:32px;border:1px solid var(--line);border-radius:8px;background:var(--white);color:var(--ink)}#delete-dialog::backdrop{background:#21171bd9}#delete-dialog .primary{margin:0;width:auto}

/* Recent work gallery */
#history{display:grid;grid-template-columns:repeat(auto-fill,minmax(192px,1fr));gap:16px;margin-top:24px;align-items:start}#history>p{grid-column:1/-1}.history-card{min-width:0;background:var(--white);border:1px solid var(--line);border-radius:8px;overflow:hidden}.history-art{display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;border:0;background:var(--blush);color:var(--wine);font-size:14px}.history-art img{display:block;width:100%;height:100%;object-fit:contain}.history-art:focus-visible{outline-offset:-4px}.history-art:hover{filter:brightness(.95)}.history-info{display:grid;grid-template-columns:1fr auto;gap:8px;padding:16px;font-size:14px}.history-info small{grid-column:1/-1;color:var(--muted);font-size:12px}.history-status{font-size:12px;color:var(--wine)}.history-settings{margin:0;padding:16px;border-top:1px solid var(--line)}.history-settings summary{font-size:12px;font-weight:600;padding:4px 0}.history-settings summary:focus-visible{outline:3px solid var(--wine);outline-offset:4px}.history-settings dl{margin:16px 0 0;font-size:12px;line-height:1.5}.history-settings dl>div+div{margin-top:12px}.history-settings dt{color:var(--muted)}.history-settings dd{margin:4px 0 0;overflow-wrap:anywhere;white-space:pre-wrap;color:var(--ink)}@media(max-width:700px){#history{grid-template-columns:repeat(2,minmax(0,1fr))}.history-info{padding:12px;grid-template-columns:1fr}.history-info small{grid-column:auto}.history-settings{padding:12px}}

.visibility-steps{grid-template-columns:repeat(3,minmax(0,1fr))}.visibility-steps button{font-size:12px;padding:8px}
