:root{--paper:#f7f7f5;--surface:#fff;--ink:#171714;--muted:#777772;--rule:#deded8;--purple:#635bff;--red:#e94b3c;--control-radius:10px;--mono:"DM Mono","SFMono-Regular",monospace;--sans:Outfit,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}button{font:inherit;cursor:pointer}button:focus-visible,label:focus-within{outline:2px solid var(--purple);outline-offset:3px}[hidden]{display:none!important}.queue-app{min-height:100dvh}.queue-header{min-height:64px;padding:0 2.2vw;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--rule);background:rgba(247,247,245,.92);position:sticky;top:0;z-index:8;backdrop-filter:blur(18px)}.header-left,.header-right{display:flex;align-items:center;gap:.45rem}.header-right{justify-self:end}.wordmark{font-weight:700;letter-spacing:-.06em;text-decoration:none;color:var(--ink)}.language-switcher,.wallet-pill,.email-control,.icon-button,.download-selected{height:34px;border:1px solid var(--rule);background:var(--surface);color:var(--ink)}.language-switcher{padding:0 .55rem;display:flex;align-items:center;gap:.3rem;border-radius:999px;font:500 .62rem/1 var(--mono)}.language-switcher i{color:var(--muted);font-style:normal}.language-switcher .is-active{color:var(--purple)}.icon-button{width:34px;padding:0;display:grid;place-items:center;border-radius:7px}.icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.upload-button:hover,.logout-button:hover{border-color:var(--ink)}.wallet-pill{padding:0 .65rem;border-radius:999px;display:flex;align-items:center;overflow:hidden;white-space:nowrap;font:500 .64rem/1 var(--mono);transition:border-color .2s}.topup-command{max-width:0;margin-left:0;overflow:hidden;opacity:0;font-family:var(--sans);font-size:.76rem;font-weight:400;transition:max-width .2s,margin .2s,opacity .2s}.topup-command b{color:var(--purple);font-weight:400}.wallet-pill:hover,.wallet-pill:focus-visible{border-color:var(--purple)}.wallet-pill:hover .topup-command,.wallet-pill:focus-visible .topup-command{max-width:160px;margin-left:.65rem;opacity:1}.email-control{padding:0 .7rem;border-radius:7px;white-space:nowrap;font-size:.76rem;font-weight:400}.download-selected{padding:0 .75rem;border-color:var(--ink);border-radius:999px;background:var(--ink);color:#fff;font:500 .64rem/1 var(--mono)}.queue-workspace{min-height:calc(100dvh - 64px);padding:clamp(1.2rem,3vw,3rem);position:relative}.drop-copy{max-width:450px;margin:clamp(4rem,13vh,9rem) auto 0;color:var(--muted);text-align:center;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.45}.queue-workspace.is-dragging:before{content:"DROP TO ADD";position:absolute;inset:1.5rem;z-index:6;display:grid;place-items:center;border:1px dashed var(--purple);background:rgba(255,255,255,.82);color:var(--purple);font:500 .8rem/1 var(--mono);letter-spacing:.1em}.generation-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;max-width:1700px;margin:0 auto;padding-bottom:6rem}.generation-card{perspective:1100px;aspect-ratio:1;min-width:0}.card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.generation-card.is-flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;overflow:hidden;border:1px solid var(--rule);background:var(--surface);backface-visibility:hidden}.card-back{transform:rotateY(180deg);background:#fafaff}.card-source{width:100%;height:100%;display:block;object-fit:cover}.card-delete,.card-flip-back,.card-select,.card-download,.card-redo{position:absolute;width:32px;height:32px;display:grid;place-items:center;border:0}.card-delete{top:0;right:0;background:var(--red);color:#fff}.card-flip-back{top:0;right:0;background:#fff;color:var(--ink);border-left:1px solid var(--rule);border-bottom:1px solid var(--rule)}.card-select{top:.55rem;left:.55rem;width:20px;height:20px;appearance:none;border:1px solid var(--rule);background:#fff}.card-select:checked{border-color:var(--purple);background:var(--purple)}.card-select:checked:after{content:"";width:7px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg);margin-top:-2px}.card-download,.card-redo{bottom:0;background:#fff;color:var(--ink);border-top:1px solid var(--rule)}.card-download{right:0;border-left:1px solid var(--rule)}.card-redo{left:0;border-right:1px solid var(--rule)}.card-face button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.card-status{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;background:rgba(23,23,20,.58);color:#fff}.split-flap{display:flex;font:500 clamp(.7rem,1.25vw,1rem)/1 var(--mono);letter-spacing:.12em}.split-flap span{display:block;animation:flap .8s steps(2,end) infinite alternate}.split-flap span:nth-child(2){animation-delay:.08s}.split-flap span:nth-child(3){animation-delay:.16s}.split-flap span:nth-child(4){animation-delay:.24s}.split-flap span:nth-child(5){animation-delay:.32s}.split-flap span:nth-child(6){animation-delay:.4s}.split-flap span:nth-child(7){animation-delay:.48s}.split-flap span:nth-child(8){animation-delay:.56s}.split-flap span:nth-child(9){animation-delay:.64s}.split-flap span:nth-child(10){animation-delay:.72s}@keyframes flap{from{transform:rotateX(0);opacity:.45}to{transform:rotateX(80deg);opacity:1}}.card-back model-viewer{width:100%;height:100%;background:linear-gradient(135deg,#eef0ff,#fff)}.card-model-label{position:absolute;top:.65rem;left:.65rem;color:var(--purple);font:500 .6rem/1 var(--mono);letter-spacing:.08em}.process-button{width:52px;height:52px;position:fixed;right:clamp(1.2rem,3vw,3rem);bottom:clamp(1.2rem,3vw,3rem);z-index:7;display:grid;place-items:center;border:1px solid var(--ink);border-radius:7px;background:var(--ink);color:#fff;box-shadow:0 9px 22px rgba(0,0,0,.12)}.process-button svg{width:19px;height:19px;fill:currentColor;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round}.icon-pause{display:none!important}.process-button.is-processing{background:var(--purple);border-color:var(--purple)}.process-button.is-processing .icon-play{display:none}.process-button.is-processing .icon-pause{display:block!important}.inline-notice{position:fixed;left:50%;bottom:1.3rem;z-index:10;transform:translateX(-50%);margin:0;padding:.65rem .8rem;border:1px solid var(--ink);background:#fff;font:500 .65rem/1.4 var(--mono);box-shadow:0 8px 20px rgba(0,0,0,.08)}.sheet-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:rgba(0,0,0,.18)}.sheet{width:min(100%,440px);padding:1.2rem;border:1px solid var(--ink);background:#fff}.sheet-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--rule)}.sheet h2{margin:0 0 1rem;font-size:1.3rem}.text-button{border:0;background:transparent;font:500 .65rem/1 var(--mono)}.package-option{width:100%;padding:.9rem 0;display:flex;justify-content:space-between;border:0;border-bottom:1px solid var(--rule);background:transparent;text-align:left}.package-option:hover{color:var(--purple)}
@media(max-width:1050px){.generation-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:780px){.queue-header{grid-template-columns:1fr auto;gap:.6rem;padding:.55rem 1rem}.header-center{grid-column:1/-1;grid-row:2;justify-self:center}.header-right{gap:.3rem}.email-control{max-width:185px;overflow:hidden;text-overflow:ellipsis}.queue-workspace{padding:1.2rem 1rem}.generation-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem}.drop-copy{margin-top:20vh}}@media(max-width:520px){.wallet-pill{padding:0 .45rem}.wallet-pill:hover .topup-command{max-width:0;margin:0;opacity:0}.email-control{display:none}.generation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.language-switcher{padding:0 .4rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

.language-switcher,.wallet-pill,.email-control,.icon-button,.download-selected,.process-button,.card-face,.card-delete,.card-flip-back,.card-select,.card-download,.card-redo,.text-button,.package-option{border-radius:var(--control-radius)}

.queue-header{display:flex;justify-content:space-between;}
.header-right{margin-left:auto;}
.header-center{position:absolute;left:50%;transform:translateX(-50%)}
.drop-copy{font-family:Roboto,Arial,sans-serif;font-size:15px;font-weight:300;cursor:pointer}
@media(max-width:780px){.queue-header{flex-wrap:wrap}.header-center{position:static;order:3;flex-basis:100%;display:flex;justify-content:center;transform:none}}

/* ---- Flip-to-3D cards, expanded viewer, account sheets (Claude, 2026-09-24) ---- */
.card-front{cursor:default}
.generation-card.is-done .card-front{cursor:pointer}
.generation-card.is-done:not(.is-flipped):hover .card-inner{transform:translateY(-3px)}
.card-front:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
.card-ready{position:absolute;left:.55rem;bottom:.55rem;display:flex;align-items:center;gap:.4rem;padding:.4rem .55rem;border-radius:var(--control-radius);background:rgba(255,255,255,.94);color:var(--purple);font:500 .58rem/1 var(--mono);letter-spacing:.08em;box-shadow:0 2px 8px rgba(0,0,0,.08)}
.card-ready svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.generation-card.is-done .card-front:hover .card-ready:after{content:"VIEW 3D →";margin-left:.2rem;color:var(--ink)}
.card-status[data-kind="error"]{padding:1rem;gap:.35rem;text-align:center;background:rgba(233,75,60,.88)}
.card-error-title{font:500 .7rem/1 var(--mono);letter-spacing:.12em}
.card-error-copy{max-width:92%;font-size:.72rem;line-height:1.35}
.card-error-hint{font:500 .58rem/1 var(--mono);opacity:.85}
.card-status[data-kind="queued"]{background:rgba(23,23,20,.28);place-content:end start;padding:.55rem}
.card-queued{padding:.35rem .5rem;border-radius:var(--control-radius);background:#fff;color:var(--muted);font:500 .56rem/1 var(--mono);letter-spacing:.1em}
.card-viewer,.card-viewer model-viewer{position:absolute;inset:0;width:100%;height:100%}
.card-viewer model-viewer{background:linear-gradient(135deg,#eef0ff,#fff)}
.card-select{z-index:2}
.card-flip-back{z-index:2}
.card-toolbar{position:absolute;left:.45rem;right:.45rem;bottom:.45rem;z-index:2;display:flex;justify-content:space-between;pointer-events:none}
.card-tool{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--rule);border-radius:var(--control-radius);background:#fff;color:var(--ink);pointer-events:auto;transition:border-color .2s,color .2s}
.card-tool:hover{border-color:var(--purple);color:var(--purple)}
.card-tool svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.card-tool[data-action="expand"]{margin:0 auto}

body.viewer-open{overflow:hidden}
.viewer-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:clamp(.6rem,3vw,2.4rem);background:rgba(23,23,20,.62);backdrop-filter:blur(6px)}
.viewer-panel{width:min(100%,1400px);height:min(100%,900px);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;border:1px solid var(--ink);border-radius:var(--control-radius);background:#fff}
.viewer-bar{min-height:56px;padding:0 .7rem 0 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--rule)}
.viewer-meta{display:flex;align-items:baseline;gap:.7rem;min-width:0}
.viewer-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;letter-spacing:-.02em}
.viewer-sub{color:var(--muted);font:500 .6rem/1 var(--mono);letter-spacing:.08em;white-space:nowrap}
.viewer-tools{display:flex;gap:.4rem}
.viewer-tool{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--rule);border-radius:var(--control-radius);background:#fff;color:var(--ink);transition:border-color .2s,color .2s,background .2s}
.viewer-tool:hover{border-color:var(--ink)}
.viewer-tool[aria-pressed="true"]{border-color:var(--purple);background:#efeeff;color:var(--purple)}
.viewer-tool svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#btnViewerDownload{border-color:var(--ink);background:var(--ink);color:#fff}
#btnViewerDownload:hover{border-color:var(--purple);background:var(--purple)}
.viewer-stage{position:relative;min-height:0;background:linear-gradient(135deg,#eef0ff,#fff)}
.viewer-stage model-viewer{position:absolute;inset:0;width:100%;height:100%;--poster-color:transparent}
.viewer-hint{margin:0;padding:.7rem 1rem;border-top:1px solid var(--rule);color:var(--muted);font:400 .6rem/1 var(--mono);letter-spacing:.04em;text-align:center}

.sheet-note{margin:0 0 .8rem;padding:.65rem .75rem;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--paper);color:var(--muted);font-size:.8rem;line-height:1.45}
.sheet-foot{margin:.9rem 0 0;color:var(--muted);font-size:.72rem}
.package-option:disabled{cursor:not-allowed;opacity:.45}
.package-option:disabled:hover{color:inherit}
.package-option.is-loading strong:after{content:" …"}
.package-option small{color:var(--muted);font-size:.72rem}
.sheet-field{display:grid;gap:.45rem;margin:.4rem 0 1rem;color:var(--muted);font:500 .6rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.key-row{display:flex;gap:.5rem;align-items:center}
.key-row input{flex:1;min-width:0;height:36px;padding:0 .6rem;border:1px solid var(--rule);border-radius:var(--control-radius);background:var(--paper);font:400 .75rem var(--mono);letter-spacing:0;text-transform:none}
.sheet-link{color:var(--purple);font:500 .65rem/1 var(--mono);text-decoration:none}
.sheet-link:hover{text-decoration:underline}
.inline-notice[data-kind="error"]{border-color:var(--red);color:var(--red)}
.inline-notice[data-kind="success"]{border-color:var(--purple);color:var(--purple)}
@media(max-width:780px){.viewer-hint{display:none}.viewer-sub{display:none}}
