.studio{width:100%;max-width:none;margin:0;padding:48px 3vw}.studio-intro{max-width:680px}.studio section{padding:30px 0}.studio h1{font-size:34px}.studio h2{font-size:23px}.studio h3{font-size:19px}.studio p{line-height:1.7}button{font:inherit;background:transparent;color:inherit;border:0;border-bottom:1px solid var(--platform-control);padding:12px 16px;cursor:pointer;min-height:44px}button:hover{color:var(--platform-accent)}button:disabled{opacity:.4;cursor:default}label{display:flex;flex-direction:column;gap:8px;margin:16px 0}input,select,textarea{font:inherit;color:inherit;background:var(--platform-surface);border:0;border-bottom:1px solid var(--platform-control);padding:12px;min-width:0;max-width:100%;box-sizing:border-box}input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--platform-accent)}.check{flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px}input[type=file]{width:100%}.auth-panel{max-width:560px}.actions,.section-top{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.actions{justify-content:flex-start}.space-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:48px}.steps{display:flex;list-style:none;flex-wrap:wrap;gap:24px;padding:0 0 24px;font-size:13px;color:var(--platform-muted)}#photo-area{width:100%;border:0;padding:0;min-height:280px;background:var(--platform-surface);display:grid;place-items:center;text-align:center}#room-preview{width:100%;max-height:75vh;object-fit:contain}#photo-empty{padding:30px}.upload-plus{font-size:38px;color:var(--platform-accent)}.muted{color:var(--platform-muted);font-size:13px}.project-list{display:flex;gap:10px;overflow:auto;padding:4px 0 16px}.project-list button{white-space:nowrap}.project-list button[aria-pressed=true],.candidates button[aria-pressed=true]{border-color:var(--platform-accent);color:var(--platform-accent)}.candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.candidates button{display:flex;flex-direction:column;padding:0 0 16px;text-align:left;gap:12px;width:100%;height:100%}.candidates img{width:100%;aspect-ratio:1/1;object-fit:contain;background:var(--platform-surface)}.candidates span{display:block}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 24px}#selection{max-width:760px}#notice:empty{display:none}#notice{padding:16px 0;color:var(--platform-accent);overflow-wrap:anywhere}.error{color:var(--platform-danger)!important}.report-row{padding:12px 0;border-bottom:1px solid var(--platform-line)}.report-row strong{display:block;margin-bottom:8px;font-size:13px;color:var(--platform-muted)}.request-item{padding:20px 0;border-bottom:1px solid var(--platform-line)}.request-item p{margin:6px 0}.selected-check{color:var(--platform-accent)}#progress{color:var(--platform-accent)}#project-name{overflow-wrap:anywhere}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--platform-accent);outline-offset:4px}@media(max-width:720px){.studio{padding:32px 20px}.space-layout{grid-template-columns:1fr;gap:24px}.candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid{gap:0 16px}.site-header{padding:20px!important;gap:20px;flex-wrap:wrap}.site-header nav{flex-wrap:wrap;gap:14px}.studio h1{font-size:28px}.steps{gap:14px}#photo-area{width:100%;border:0;padding:0;min-height:220px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.space-layout>div{min-width:0}.form-grid input,.form-grid select{width:100%}

#photo-area:disabled{opacity:1;cursor:default}.analysis-status{margin-top:24px;padding:24px;background:var(--platform-surface);border:1px solid var(--platform-line);border-radius:12px;overflow:hidden}.analysis-status strong{font-size:19px}.analysis-status p{margin:8px 0}.analysis-visual{height:120px;position:relative;margin-bottom:20px;overflow:hidden;color:var(--platform-accent)}.analysis-visual svg{width:100%;height:100%;overflow:visible}.analysis-field{stroke:currentColor;stroke-width:1;opacity:.3}.analysis-signal{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-dasharray:12 88;animation:signal-flow 3s linear infinite;filter:drop-shadow(0 0 5px var(--platform-accent))}.signal-two{animation-delay:-1.5s;animation-direction:reverse}.analysis-scan{position:absolute;inset:0 auto 0 0;width:20%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--platform-accent) 12%,transparent),transparent);animation:scan-space 4s ease-in-out infinite}.analysis-status[data-state=done] .analysis-visual,.analysis-status[data-state=failed] .analysis-visual{display:none}.analysis-status[data-state=done]{border-color:var(--platform-success)}.analysis-status[data-state=failed]{border-color:var(--platform-danger)}#analysis-elapsed{font-size:13px;font-variant-numeric:tabular-nums}@keyframes signal-flow{to{stroke-dashoffset:-100}}@keyframes scan-space{50%,100%{transform:translateX(500%)}}@media(prefers-reduced-motion:reduce){.analysis-signal,.analysis-scan{animation:none}.analysis-signal{stroke-dasharray:none}.analysis-scan{display:none}}

#room-stage{position:relative}#wall-overlay{position:absolute;pointer-events:none;overflow:hidden}#wall-overlay.marking{pointer-events:auto;cursor:crosshair;touch-action:none}#wall-overlay>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#wall-boundary{fill:transparent;stroke:#fff;stroke-width:.35;stroke-dasharray:2 1;vector-effect:non-scaling-stroke}#wall-cursor{display:none;position:absolute;left:50%;top:50%;width:12px;height:12px;border:2px solid white;border-radius:50%;transform:translate(-50%,-50%)}#wall-overlay.marking:focus-visible #wall-cursor{display:block}#wall-art{position:absolute;left:0;top:0;width:100px;height:100px;transform-origin:0 0;box-shadow:0 1px 3px #0005;overflow:hidden;background:#eee8dc}#wall-art-image{display:block;width:100%;height:100%;object-fit:fill}#wall-art-image:not([src]){visibility:hidden}.paint-process{display:none;position:absolute;inset:0;background:#eee8dc;overflow:hidden}.painting .paint-process{display:block}.paint-process i{position:absolute;left:8%;top:16%;width:84%;height:9%;border-radius:40% 20% 50% 35%;background:#7b9b8a;opacity:0;transform-origin:left;animation:paint-stroke 16s ease-in-out infinite}.paint-process i:nth-child(2){top:29%;left:17%;width:73%;background:#b69b68;animation-delay:2s}.paint-process i:nth-child(3){top:44%;left:6%;background:#567d80;animation-delay:4s}.paint-process i:nth-child(4){top:59%;left:12%;width:76%;background:#b58e78;animation-delay:6s}.paint-process i:nth-child(5){top:72%;background:#6b7871;animation-delay:8s}.paint-process i:nth-child(6){top:36%;height:32%;width:50%;left:30%;background:#d7c6a4;animation-delay:10s;mix-blend-mode:multiply}#wall-controls{margin-top:24px;padding:var(--platform-panel-inset,24px);background:var(--platform-surface)}#wall-controls h3{margin-top:0}#wall-controls p{font-size:13px}#wall-controls input,#wall-controls select{background:transparent}#wall-controls input[type=range]{width:100%;min-height:44px;padding:0;accent-color:var(--platform-accent)}#wall-status{color:var(--platform-accent)}#wall-sizes{gap:8px;margin-top:12px}#wall-sizes button{font-size:13px}#wall-controls .form-grid{gap:0 16px}@keyframes paint-stroke{0%{opacity:0;transform:scaleX(.02)}18%,68%{opacity:.65;transform:scaleX(1)}95%,100%{opacity:0;transform:scaleX(1)}}@media(prefers-reduced-motion:reduce){.paint-process i{animation:none;opacity:.4;transform:none}}

.wall-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.wall-summary label{max-width:220px}#wall-adjust summary{cursor:pointer;min-height:44px;padding:12px 0}#wall-adjust[open]{margin-top:16px}#wall-size-label{font-size:19px;font-weight:500}
/* The scan accompanies the real request; focusing uses only returned wall coordinates. */
#room-scan-light{position:absolute;inset:-45%;pointer-events:none;opacity:0;background:linear-gradient(105deg,transparent 37%,color-mix(in srgb,var(--platform-accent,#b1eef0) 8%,transparent) 44%,rgba(255,255,240,.32) 50%,color-mix(in srgb,var(--platform-accent,#b1eef0) 12%,transparent) 56%,transparent 63%);transform:translateX(-55%)}
#wall-overlay.scanning{overflow:hidden}
#wall-overlay.scanning #room-scan-light{opacity:1;animation:room-observe 7s ease-in-out infinite alternate}
#wall-overlay .room-focus{position:absolute;inset:0;width:100%;height:100%;opacity:0;pointer-events:none}
#room-focus-area{fill:rgba(245,245,225,.06);stroke:var(--platform-accent,#b1eef0);stroke-width:1.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round}
#wall-overlay.focusing .room-focus,#wall-overlay.focused .room-focus{opacity:1;transition:opacity .24s}
#wall-overlay.focused #room-focus-area{fill:transparent;stroke-opacity:.65}
.analysis-status .analysis-visual{display:none}
@keyframes room-observe{from{transform:translateX(-40%)}to{transform:translateX(40%)}}
@media(prefers-reduced-motion:reduce){#wall-overlay.scanning #room-scan-light{animation:none;transform:none;opacity:.5}}

body.wall-editing{overflow:hidden}#wall-editor.editing{position:fixed;inset:0;z-index:1000;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:center;padding:64px 24px 24px;background:var(--platform-bg)}#wall-editor.editing #room-stage{min-width:0}#wall-editor.editing #photo-area{display:block;width:100%;padding:0;border:0}#wall-editor.editing #room-preview{width:100%;max-height:calc(100dvh - 96px);object-fit:contain}#wall-editor.editing #wall-controls{margin:0;max-height:calc(100dvh - 88px);overflow:auto;padding:20px}#close-wall-editor{position:absolute;right:20px;top:12px;width:44px;height:44px;font-size:28px;border:0}#wall-editor.editing #wall-controls h3,#wall-editor.editing #wall-note,#wall-editor.editing #wall-status{display:none}#wall-editor.editing #wall-adjust[open]{margin:0}#wall-editor.editing #wall-controls label{margin:12px 0}#wall-editor.editing input[type=range]{height:48px}#wall-editor.editing input[type=range]::-webkit-slider-thumb{width:24px;height:24px}#wall-editor.editing .wall-summary{gap:8px}#wall-editor.editing #wall-adjust>p{font-size:12px;line-height:1.5}
@media(max-width:760px){#wall-editor.editing{grid-template-columns:1fr;grid-template-rows:minmax(120px,42dvh) minmax(0,1fr);gap:12px;padding:52px 16px 16px;align-items:stretch}#wall-editor.editing #room-stage{align-self:center}#wall-editor.editing #room-preview{max-height:42dvh}#wall-editor.editing #wall-controls{max-height:none;min-height:0;padding:16px}#wall-editor.editing .wall-summary label{max-width:140px;margin:0}}

.quote-artwork{display:flex;gap:24px;align-items:center;margin-bottom:24px}.quote-artwork img{width:120px;height:120px;object-fit:contain;background:var(--platform-surface)}.quote-editor{max-width:760px}.quote-total{padding:16px 0;border-block:1px solid var(--platform-line);margin:16px 0}.quote-total strong{font-size:19px}.quote-editor form>button{margin-right:12px}@media(max-width:600px){.quote-artwork img{width:88px;height:88px}.quote-artwork{gap:16px}.quote-editor .form-grid{grid-template-columns:1fr}}

.quote-editor .quote-service{display:flex;flex-direction:row;align-items:center;flex-wrap:nowrap;gap:12px;min-height:44px}.quote-editor .quote-service input[type=checkbox]{width:20px;min-width:20px;max-width:20px;height:20px;min-height:20px;padding:0;margin:0;flex:0 0 20px}

/* A luminous observation pass, then a tangible canvas on the confirmed wall plane. */
#room-scan-light{background:linear-gradient(105deg,transparent 30%,rgba(85,226,234,.16) 43%,rgba(255,255,255,.78) 49.5%,rgba(58,213,224,.48) 50%,rgba(180,164,239,.16) 57%,transparent 70%)}
#room-scan-light::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(255,255,255,.18) 39px 40px);mask-image:linear-gradient(90deg,transparent 35%,#000 50%,transparent 65%)}
#wall-overlay.scanning #room-scan-light{animation-duration:5s}
#room-focus-area{stroke:#16becd;stroke-width:3px;fill:rgba(255,255,255,.16);filter:drop-shadow(0 0 3px rgba(255,255,255,.9))}
#wall-overlay.focused #room-focus-area{stroke-opacity:1}
#wall-art.blank-canvas{background:linear-gradient(125deg,#fff 0%,#fffefa 65%,#f0eee7 100%);box-shadow:0 .7px 0 #fff inset,0 0 0 .6px #bbb8af,1px 2px 2px #0005;animation:canvas-arrive 1.2s ease-out both}
@keyframes canvas-arrive{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){#wall-art.blank-canvas{animation:none}#wall-overlay.scanning #room-scan-light{animation:none;opacity:.8}}
/* Full-spectrum ambient breathing replaces directional scanning and outlines. */
#wall-overlay .room-focus{display:none!important}
#room-scan-light{inset:-12%;transform:none;background:radial-gradient(ellipse at 15% 25%,rgba(255,86,155,.68),transparent 65%),radial-gradient(ellipse at 80% 20%,rgba(113,108,255,.68),transparent 65%),radial-gradient(ellipse at 75% 80%,rgba(43,231,194,.62),transparent 65%),radial-gradient(ellipse at 25% 80%,rgba(255,190,74,.65),transparent 65%);mix-blend-mode:normal;filter:blur(16px);transition:opacity 1.8s ease}
#room-scan-light::after{display:none}
#wall-overlay.scanning #room-scan-light{animation:room-breathe 6s ease-in-out infinite;opacity:1}
#wall-overlay.focusing #room-scan-light{animation:none;opacity:.3;transform:scale(1.06)}
@keyframes room-breathe{0%,100%{opacity:.65;transform:scale(1) rotate(-3deg);filter:blur(16px) hue-rotate(0deg)}50%{opacity:1;transform:scale(1.12) rotate(3deg);filter:blur(22px) hue-rotate(35deg)}}
@media(prefers-reduced-motion:reduce){#wall-overlay.scanning #room-scan-light{animation:none;transform:none;opacity:.8;transition:none}}

#library-manager{margin:16px 0}#library-manager summary{cursor:pointer;padding:12px 0;min-height:44px}.library-row{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--platform-line)}.library-row span{flex:1;overflow-wrap:anywhere}.library-row img{width:72px;height:72px;object-fit:contain}.library-row button{flex:none}

.range-adjust{display:flex;align-items:center;gap:12px;min-width:0}.range-adjust input{flex:1;min-width:0}.range-adjust button{border:1px solid var(--platform-line);border-radius:50%;padding:0;width:44px;height:44px;flex:0 0 44px;font-size:23px}#wall-adjust label{position:relative;padding:8px 0}#wall-adjust output{position:absolute;right:0;top:8px;font-size:13px;font-variant-numeric:tabular-nums;color:var(--platform-muted)}#wall-controls input[type=range]{height:48px}#wall-adjust>label>span:first-child{padding-right:60px}
#candidates,#older-candidates{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:16px}.candidates button{font-size:12px;gap:6px}.candidates img{aspect-ratio:1;max-height:160px}.art-detail{position:fixed;box-sizing:border-box;width:min(1000px,94vw);max-height:92dvh;padding:48px 24px 24px;border:1px solid var(--platform-line);border-radius:12px;background:var(--platform-bg,#292727);color:var(--platform-text,#fff);overflow:auto}.art-detail::backdrop{background:#000b}.art-detail>img{display:block;width:100%;height:60dvh;object-fit:contain}.art-detail-close{position:absolute;right:12px;top:4px;font-size:28px;border:0}.art-detail h2{font-size:23px}.art-detail p{font-size:13px}.art-detail>div{padding-top:16px}@media(max-width:600px){.art-detail{padding:48px 16px 20px}.art-detail>img{height:48dvh}#candidates,#older-candidates{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.range-adjust{gap:8px}}
