:root{color-scheme:dark;font-family:Inter,"Segoe UI",sans-serif;color:#f4efff;background:#09070d;font-synthesis:none;--muted:#aaa0ba;--line:rgba(206,177,255,.16);--accent:#a855f7}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 12% 3%,rgba(124,42,195,.18),transparent 44%),radial-gradient(ellipse at 90% 45%,rgba(98,30,142,.11),transparent 45%),#09070d}header,main,footer{max-width:1280px;margin:auto;padding:28px 40px}header{display:flex;gap:16px;align-items:center;border-bottom:1px solid var(--line);margin-bottom:24px}.mark{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;background:linear-gradient(145deg,#9945e3,#6024aa);box-shadow:0 0 30px #8d44d540;color:white;font-size:32px}h1{font-size:25px;letter-spacing:-.9px;margin:0;font-weight:750}header p{margin:6px 0 0;color:var(--muted);font-size:9px;letter-spacing:2.5px;font-weight:650}h2{font-size:25px;letter-spacing:-.7px;margin:0 0 22px;font-weight:650}p{line-height:1.65}.accent{color:var(--accent)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#ad63ed;margin:0 0 14px}.grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:start}form,.results{padding:32px;background:linear-gradient(135deg,rgba(40,29,53,.76),rgba(19,15,26,.85));border:1px solid var(--line);border-radius:24px;box-shadow:0 20px 65px #0005,inset 0 1px 0 #ffffff06;backdrop-filter:blur(22px)}#login{max-width:480px;margin:48px auto 72px;padding:44px;position:relative}#login:before{content:"";position:absolute;inset:-1px;border-radius:24px;pointer-events:none;box-shadow:0 0 85px #853bca17}#login h2{font-size:46px;line-height:1.08;letter-spacing:-2px;margin-bottom:20px}.intro{color:var(--muted);font-size:14px;margin-bottom:32px}label{display:block;margin-bottom:20px;font-size:13px;font-weight:600;color:#ddd3e9}textarea,input,select{display:block;width:100%;margin-top:9px;border:1px solid rgba(198,169,232,.19);border-radius:12px;padding:14px;font:14px "Segoe UI",sans-serif;background:#0d0a14a8;color:#f5edff;outline:none;transition:border-color .18s,box-shadow .18s}textarea::placeholder,input::placeholder{color:#746981}textarea:focus,input:focus,select:focus{border-color:#963ee8;box-shadow:0 0 0 3px #a969ed1c}textarea{resize:vertical;line-height:1.6;min-height:112px}select{cursor:pointer}input[type=file]{padding:10px;font-size:12px}input::file-selector-button{background:#30203f;border:1px solid var(--line);color:#dcc3fc;border-radius:8px;padding:9px 12px;margin-right:12px;cursor:pointer}.row{display:flex;gap:16px}.row label{flex:1}button{background:linear-gradient(120deg,#8b2cdb,#681bb0);border:1px solid #d6b3ff44;border-radius:12px;color:#1d0e2c;padding:15px 23px;font:700 14px "Segoe UI";cursor:pointer;box-shadow:0 7px 25px #9f56de25;transition:filter .18s,transform .18s}button:hover{filter:brightness(1.1);transform:translateY(-1px)}button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid #dcc0ff;outline-offset:4px}button:disabled{opacity:.5;cursor:wait;transform:none}#login button,#generate{width:100%}.secondary{background:transparent;color:#c8b8da;border:1px solid var(--line);box-shadow:none;margin-top:24px}.hint,footer{font-size:12px;color:var(--muted)}.hint{line-height:1.65}details{margin:22px 0;border-top:1px solid var(--line);padding-top:18px}summary{cursor:pointer;margin-bottom:18px;color:#b49bc8;font-size:13px}#message{color:#edb5cd;font-size:14px}#gallery img{width:100%;border-radius:15px;border:1px solid var(--line)}#gallery article{margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:20px}#gallery a{display:inline-block;color:#b366f2;margin-top:10px}#gallery p{overflow-wrap:anywhere;font-size:13px;color:#c5b6d2}#empty{padding:95px 22px;text-align:center;border:1px dashed #9774ba40;border-radius:18px;color:#c9b8dc;background:radial-gradient(ellipse at center,#733da015,transparent 65%);font-size:15px}.empty-spark{display:block;font-size:65px;line-height:1;color:#9e3ddf;margin-bottom:24px;text-shadow:0 0 40px #a958e966}#empty small{display:block;color:#8d7d9e;font-size:12px;margin-top:9px}.studio-heading{display:flex;justify-content:space-between;align-items:center;margin:0 0 28px}.studio-heading h2{font-size:32px;margin:0}.studio-pill{border:1px solid var(--line);border-radius:100px;padding:10px 16px;color:#cab1e9;font-size:12px;background:#20132980}footer{text-align:center;border-top:1px solid var(--line);margin-top:30px;line-height:1.7}#preview1,#preview2{max-width:100%;max-height:220px;object-fit:contain;border-radius:12px;margin:0 0 18px;border:1px solid var(--line)}input[type=checkbox]{display:inline-block;width:auto;margin-right:8px;accent-color:#9336de}#consentSection{font-size:12px;font-weight:400;line-height:1.6}[hidden]{display:none!important}@media(max-width:760px){header,main,footer{padding:22px 20px}.grid{grid-template-columns:1fr}form,.results{padding:24px;border-radius:20px}#login{margin:25px auto 45px;padding:30px}#login h2{font-size:40px}.studio-heading h2{font-size:26px}.studio-pill{display:none}#empty{padding:65px 20px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Portal palette inspired by the Orko visual reference. */
:root{background:#101019;--accent:#a453ee;--muted:#a2a2b8;--line:rgba(179,172,220,.17)}body{background:radial-gradient(ellipse at 8% 0%,#6b359023,transparent 40%),radial-gradient(ellipse at 95% 50%,#387b8714,transparent 45%),#101019}form,.results{background:linear-gradient(135deg,#252535bf,#191923e6);border-color:#a2a0c028}.mark{background:linear-gradient(140deg,#9641df,#6524b5);box-shadow:0 0 30px #9a57d433}.portal{width:108px;height:108px;margin:0 auto 32px;position:relative;border-radius:50%;background:conic-gradient(#e68dc3,#ae8cee,#75cfe0,#abddac,#efb982,#e68dc3);padding:5px;box-shadow:0 0 35px #be68c633,18px 18px 45px #5dddc422,-18px -10px 45px #f1968022}.portal:before{content:"";position:absolute;inset:9px;border-radius:50%;border:2px solid #c391eaaa;box-shadow:inset 0 0 22px #df78d958,0 0 9px #e6beff66}.portal span{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(ellipse at 45% 40%,#21102e,#321737 60%,#643969);box-shadow:inset 0 0 20px #180d25}#login:before{box-shadow:0 0 100px #9163ca15}#login h2{font-size:42px}#login{margin-top:22px}.studio-heading{position:relative}.studio-heading:after{content:"";position:absolute;right:190px;top:12px;width:120px;height:45px;background:linear-gradient(90deg,#dd87bd,#ab90f4,#70cecb,#e7bc87);filter:blur(40px);opacity:.3;pointer-events:none}.empty-spark{background:linear-gradient(130deg,#e9a2c9,#a345e0,#79d3ce);color:transparent;background-clip:text;text-shadow:none}button{background:linear-gradient(115deg,#892bd6,#651aa8);color:#191125}.studio-pill{background:#25243399}.eyebrow{color:#ad67e8}

.render-wait{text-align:center;padding:42px 20px;margin-bottom:24px;border:1px solid var(--line);border-radius:18px;background:radial-gradient(ellipse at 50% 45%,#9b5ac520,transparent 70%)}.render-wait .portal{width:100px;height:100px;margin-bottom:28px}.render-wait p{color:#e5d7f5;font-size:15px;margin:0 0 8px}.render-wait small{font-size:12px;color:var(--muted)}.rotating{animation:portal-turn 4s linear infinite}.rotating span{animation:portal-breathe 2.8s ease-in-out infinite}@keyframes portal-turn{to{transform:rotate(360deg)}}@keyframes portal-breathe{50%{box-shadow:inset 0 0 32px #cc83ea88}}@media(prefers-reduced-motion:reduce){.rotating,.rotating span{animation:none}}

button{color:#fff;background:linear-gradient(115deg,#8828d3,#62169e);border-color:#ae5ded55;box-shadow:0 7px 25px #7e22ce35}.secondary{background:transparent;color:#c8b8da;border-color:var(--line);box-shadow:none}.mark{background:linear-gradient(140deg,#a440ed,#6520b0)}.accent{color:#b25bf1}.eyebrow{color:#b874ed}#gallery a{color:#bf78f5}

.voice-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-8px 0 20px}.voice-button{width:auto!important;background:#2b1a3b;color:#e2c7fa;border:1px solid #9d58c955;box-shadow:none;padding:10px 13px;font-size:12px}.voice-button[aria-pressed=true]{background:#7029a8;border-color:#ce95f8;box-shadow:0 0 22px #9c40dc44}.voice-row span{font-size:12px;color:#c4b2d4}.voice-privacy{font-size:11px;line-height:1.6;color:var(--muted);margin:0 0 18px}

.voice-row{justify-content:flex-end;margin-top:-16px;padding:0 8px 0 0;gap:10px}.voice-button{display:grid;place-items:center;width:34px!important;height:34px;padding:8px;border-radius:50%;border-color:transparent;background:transparent;color:#bba9cb;box-shadow:none}.voice-button svg{width:17px;height:17px}.voice-button:hover{background:#41304f;color:#f2e7ff;transform:none}.voice-button[aria-pressed=true]{background:#7526ac;color:#fff;border-color:#b774e4;box-shadow:0 0 14px #9b46d444}.voice-row span{margin-right:auto;font-size:11px}

.voice-row .voice-button{order:2}.voice-row span{order:1}

#gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}#gallery article{min-width:0;margin:0;border:1px solid var(--line);padding:10px;background:#14121b99;border-radius:17px}#gallery .thumbnail{display:block;margin:0;aspect-ratio:1;overflow:hidden;border-radius:11px;background:#0c0a12}#gallery .thumbnail img{display:block;width:100%;height:100%;object-fit:contain;border:0;border-radius:0;transition:transform .2s}#gallery .thumbnail:hover img{transform:scale(1.03)}#gallery .image-actions{display:flex;justify-content:flex-end;padding:8px 2px 0}#gallery .image-actions a{font-size:12px;margin:0;padding:6px 9px;border-radius:7px;background:#45235766;text-decoration:none}#gallery details{padding-top:10px;margin:10px 2px 0}#gallery summary{font-size:11px;margin:0;color:#a899b8}#gallery details p{font-size:11px;line-height:1.6;margin-bottom:4px}#gallery .failed-card{grid-column:1/-1}@media(max-width:420px){#gallery{grid-template-columns:1fr}}

.camera-aperture{width:120px;height:120px;margin:0 auto 32px;position:relative;filter:drop-shadow(0 0 13px #c26ff580) drop-shadow(0 0 28px #6cd7d155)}.camera-aperture:before{content:"";position:absolute;inset:-22px;background:conic-gradient(#e78bc2,#aa69ed,#63d4d0,#ecc08b,#e78bc2);border-radius:50%;filter:blur(28px);opacity:.25;z-index:-1}.camera-aperture svg{display:block;width:100%;height:100%;overflow:visible}.aperture-rim{fill:#13101d;stroke:url(#apertureSpectrum);stroke-width:3}.shutter-blades{transform-origin:60px 60px;animation:shutter-idle 7s ease-in-out infinite}.shutter-blades path{fill:#4d2967;stroke:url(#apertureSpectrum);stroke-width:1.4;fill-opacity:.75}.shutter-blades path:nth-child(2n){fill:#22383f}.shutter-blades path:nth-child(3n){fill:#583443}.aperture-core{fill:#0b0911;stroke:#c59ae9;stroke-width:1;filter:drop-shadow(0 0 6px #b569df)}.is-rendering .shutter-blades{animation:shutter-focus 2.6s ease-in-out infinite}.is-rendering .aperture-core{transform-origin:60px 60px;animation:aperture-focus 2.6s ease-in-out infinite}.render-wait .camera-aperture{width:110px;height:110px;margin-bottom:30px}@keyframes shutter-idle{50%{transform:rotate(12deg)}}@keyframes shutter-focus{0%,100%{transform:rotate(0deg) scale(1)}50%{transform:rotate(30deg) scale(.91)}}@keyframes aperture-focus{50%{transform:scale(.55)}}@media(prefers-reduced-motion:reduce){.shutter-blades,.is-rendering .aperture-core{animation:none}}

.is-rendering .aperture-rim,.is-rendering .shutter-blades path{stroke:url(#apertureSpectrumWaiting)}

.mark.brand-viewfinder{background:#21182d;border:1px solid #aa7fce30;box-shadow:0 0 22px #a36fcb26,inset 0 0 15px #9d56c514;padding:6px}.brand-viewfinder svg{width:38px;height:38px;filter:drop-shadow(0 0 3px #c08bdd66)}

.viewfinder{width:150px;height:110px;margin:8px auto 36px;position:relative;isolation:isolate}.viewfinder:before{content:"";position:absolute;inset:-20px;background:conic-gradient(from 35deg,#ef8abb,#a76ae8,#66d7d1,#e9bd7c,#ef8abb);filter:blur(30px);opacity:.28;z-index:-1}.viewfinder-corners{position:absolute;inset:9px;animation:viewfinder-focus 4s ease-in-out infinite}.viewfinder-corners i{position:absolute;width:31px;height:27px;border-style:solid;border-width:0;border-radius:7px;filter:drop-shadow(0 0 7px currentColor)}.viewfinder-corners i:nth-child(1){top:0;left:0;border-top-width:3px;border-left-width:3px;color:#d597f5}.viewfinder-corners i:nth-child(2){top:0;right:0;border-top-width:3px;border-right-width:3px;color:#ed9ec6}.viewfinder-corners i:nth-child(3){bottom:0;right:0;border-bottom-width:3px;border-right-width:3px;color:#edc78e}.viewfinder-corners i:nth-child(4){bottom:0;left:0;border-bottom-width:3px;border-left-width:3px;color:#79d8d0}.focus-point{position:absolute;inset:43px 64px;border:1px solid #d0b6eeaa;border-radius:3px;box-shadow:0 0 15px #ab74d62a}.focus-point:before,.focus-point:after{content:"";position:absolute;background:#d7c2ee77}.focus-point:before{width:1px;height:10px;left:10px;top:5px}.focus-point:after{height:1px;width:10px;left:5px;top:10px}@keyframes viewfinder-focus{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(.88);opacity:1}}@media(prefers-reduced-motion:reduce){.viewfinder-corners{animation:none}}

.mark.brand-viewfinder{background:#21182d;border:1px solid #aa7fce30;box-shadow:0 0 22px #a36fcb26;padding:6px}.brand-viewfinder svg{width:38px;height:38px;filter:drop-shadow(0 0 3px #c08bdd66)}

.render-wait .viewfinder{margin:5px auto 28px}.render-wait .viewfinder-corners{animation-duration:2.5s}

.camera-outline{width:172px;height:126px;margin:0 auto 30px;position:relative;isolation:isolate}.camera-outline:before{content:"";position:absolute;inset:8px 0;background:conic-gradient(#e188c8,#9b65e5,#73d8d3,#eabe85,#e188c8);filter:blur(30px);opacity:.22;z-index:-1}.camera-outline svg{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 6px #bc85dc99)}.camera-body,.camera-lens,.camera-detail{stroke:url(#cameraLight);stroke-width:2.5}.camera-body{stroke-dasharray:540;animation:camera-trace 5s ease-in-out infinite}.camera-lens{animation:camera-lens-glow 4s ease-in-out infinite}.camera-glass{stroke:#b98cde99;stroke-width:1;fill:#b17dde08}.camera-glint{stroke:#e3c6f1;stroke-width:1.5}.camera-logo{color:#c999f0;background:#21182d;box-shadow:0 0 24px #ab75cc26}.camera-logo svg{width:39px;height:39px}@keyframes camera-trace{0%,100%{stroke-dashoffset:0;opacity:1}50%{stroke-dashoffset:50;opacity:.7}}@keyframes camera-lens-glow{50%{opacity:.55;filter:drop-shadow(0 0 8px #77dfd3)}}@media(prefers-reduced-motion:reduce){.camera-body,.camera-lens{animation:none}}

.camera-outline{width:180px;height:130px}.camera-outline:before{inset:-3px -15px;background:conic-gradient(from 0deg,#9850ff,#6243f1,#4285ff,#7666ff,#ad77ff,#9850ff);filter:blur(29px);opacity:.42;animation:camera-aura 8s linear infinite}.camera-outline svg{filter:drop-shadow(0 0 4px #aa78ffd9) drop-shadow(0 0 12px #7950ff99) drop-shadow(0 0 22px #4889ff80)}.camera-body,.camera-lens{stroke-width:2.8}.camera-glass{stroke:#a995f5bb;fill:#7b54ed10}.camera-glint{stroke:#d1ccff;filter:drop-shadow(0 0 4px #9a91ff)}.camera-logo{color:#b197ff;box-shadow:0 0 25px #7851ec55}.camera-logo svg{filter:drop-shadow(0 0 3px #9370ffc0)}@keyframes camera-aura{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.camera-outline:before{animation:none}}

/* Steady neon tubes emit the glow; the surrounding light does not rotate. */
.camera-outline:before{animation:none;background:radial-gradient(ellipse at 40% 35%,#8d47ff66,transparent 62%),radial-gradient(ellipse at 65% 65%,#397eff55,transparent 65%);filter:blur(22px);opacity:.9;inset:-12px}.camera-outline svg{filter:drop-shadow(0 0 1px #eee5ff) drop-shadow(0 0 4px #aa73ffff) drop-shadow(0 0 10px #874affb3) drop-shadow(0 0 22px #437dff80)}.camera-body,.camera-lens{animation:none;stroke-width:2.6;filter:brightness(1.45)}.camera-detail{filter:brightness(1.4)}.camera-glass{stroke:#9b83e6aa;fill:#7c48e808}.camera-glint{stroke:#e2d8ff;filter:drop-shadow(0 0 4px #a077ff)}

.render-wait .camera-body,.render-wait .camera-lens,.render-wait .camera-detail{stroke:url(#cameraWaitingLight)}.render-wait .camera-outline{margin-bottom:28px}.mark.camera-logo{background:#181321;border:1px solid #a578de33;box-shadow:0 0 18px #8548dc40;padding:6px}.camera-logo svg{width:38px;height:38px;color:#c0a0ff;filter:drop-shadow(0 0 1px #e3d4ff) drop-shadow(0 0 4px #a566efbb) drop-shadow(0 0 9px #5785ff77)}
