@font-face{font-family:"Sofia Sans";src:url('./assets/sofia-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:"Sofia Sans";src:url('./assets/sofia-600.ttf') format('truetype');font-weight:600;font-display:swap}
@font-face{font-family:Fraunces;src:url('./assets/fraunces-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Fraunces;src:url('./assets/fraunces-600.ttf') format('truetype');font-weight:600;font-display:swap}
:root{--canvas:#f7f6f4;--paper:#fff;--ink:#1c1917;--secondary:#44403c;--muted:#78716c;--line:#e7e5e1;--gold:#79662e;--gold-light:#a08840;--soft:#f5f4f1;--radius:12px;color-scheme:light}
*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:"Sofia Sans",system-ui,sans-serif;font-size:16px;line-height:1.45}button,select{font:inherit}button,a,summary,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button:disabled{opacity:.42;cursor:wait}a{color:inherit;text-underline-offset:4px}::selection{background:#d9cda7;color:var(--ink)}:focus-visible{outline:3px solid var(--gold);outline-offset:4px}button{transition:background-color .16s,color .16s,border-color .16s}svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}[hidden]{display:none!important}
.masthead{height:79px;padding:0 34px;display:flex;align-items:center;gap:35px;background:var(--paper);border-bottom:1px solid var(--line)}.masthead a{display:flex;align-items:center;min-height:44px}.masthead img{width:158px;height:auto}.studio-name{padding-left:32px;border-left:1px solid var(--line);font-size:17px;color:var(--secondary)}.preview-label{margin-left:auto;font-size:14px;color:var(--secondary)}.studio{display:grid;grid-template-columns:minmax(0,1fr) 342px;max-width:1900px;margin:0 auto;min-height:calc(100svh - 79px)}
.room{position:relative;background:#eeeae2;min-height:700px;height:calc(100svh - 79px);position:sticky;top:0;overflow:hidden}.room-caption{position:absolute;top:27px;left:32px;z-index:2;pointer-events:none;display:flex;flex-direction:column;gap:3px}.room-caption span:first-child{font-family:Fraunces,Georgia,serif;font-size:22px}.room-caption span:last-child{font-size:14px;color:var(--secondary)}#viewport{position:absolute;inset:0;outline-offset:-5px}canvas{display:block;width:100%;height:100%;touch-action:none}.room-tools{position:absolute;bottom:58px;left:24px;right:24px;display:flex;align-items:center;gap:8px;justify-content:center}.room-tools button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 13px;font-size:14px;border:1px solid transparent;background:var(--paper);border-radius:8px}.room-tools button:hover{background:var(--soft)}.room-tools button[aria-pressed=true]{background:var(--ink);color:#fff}.view-switch{display:flex;padding:3px;background:var(--paper);border-radius:10px}.room-tools .tool{min-height:50px}.room-hint{position:absolute;bottom:14px;left:20px;right:20px;text-align:center;font-size:13px;color:var(--secondary);margin:0}.room-signature{position:absolute;right:26px;top:27px;font-family:Fraunces,Georgia,serif;font-size:19px;color:var(--secondary);text-align:right;pointer-events:none}.room-signature span{display:block;font-family:"Sofia Sans",sans-serif;font-size:12px}.dimension{position:absolute;padding:4px 8px;border-radius:5px;background:#ffffffeb;font-size:14px;color:var(--ink);pointer-events:none;transform:translate(-50%,-50%);font-variant-numeric:tabular-nums}
.choices{background:var(--paper);padding:32px 27px 24px;border-left:1px solid var(--line)}h1{font-family:Fraunces,Georgia,serif;font-size:31px;font-weight:400;line-height:1.18;letter-spacing:-.025em;margin:0 0 14px;text-wrap:balance}.intro{font-size:15px;line-height:1.5;color:var(--secondary);margin:0 0 27px}h2{font-size:17px;font-weight:600;margin:0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-heading>span{font-size:13px;color:var(--secondary)}.fabric-options{display:flex;flex-direction:column;gap:8px}.fabric{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:9px;display:flex;align-items:center;gap:12px;text-align:left;width:100%;min-height:74px}.fabric:hover{background:var(--soft);border-color:var(--gold-light)}.fabric[aria-pressed=true]{border-color:var(--gold);background:#f5f2e9}.fabric img{width:53px;height:53px;object-fit:cover;border-radius:7px}.fabric strong{display:block;font-weight:600;font-size:16px}.fabric small{font-size:13px;color:var(--secondary)}.fabric .check{margin-left:auto;margin-right:4px;color:var(--gold);visibility:hidden}.fabric[aria-pressed=true] .check{visibility:visible}.material-note{font-size:13px;color:var(--secondary);margin:11px 0 25px}.product-section{border-top:1px solid var(--line);padding-top:22px}.product-section h2{margin-bottom:16px}.product-line{display:flex;justify-content:space-between;gap:12px}.product-line strong{font-size:16px;font-weight:600}.product-line p{font-size:14px;color:var(--secondary);line-height:1.55;margin:4px 0 2px}.quantity{font-size:14px;color:var(--secondary)}.text-link{display:inline-flex;gap:14px;align-items:center;min-height:44px;font-size:14px;color:var(--gold);text-decoration:none;border-bottom:1px solid transparent}.text-link:hover{text-decoration:underline}.text-link span{font-size:18px}.chair-line{margin-top:11px}.layout-controls{border-top:1px solid var(--line);margin-top:18px;padding-top:9px}.layout-controls>summary{display:flex;align-items:center;justify-content:space-between;font-size:15px;min-height:48px;cursor:pointer;list-style:none}.layout-controls>summary::-webkit-details-marker{display:none}.layout-controls[open]>summary svg{transform:rotate(180deg)}label{display:block;font-size:14px;color:var(--secondary);margin:10px 0 6px}select{width:100%;height:46px;border:1px solid var(--line);background:var(--paper);padding:0 11px;border-radius:8px;color:var(--ink)}.move-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:10px}.move-pad button,.edit-actions button{background:var(--soft);border:1px solid var(--line);border-radius:8px;min-height:44px;display:flex;justify-content:center;align-items:center}.move-pad button:hover,.edit-actions button:hover{background:#ecebe7}.edit-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px;font-size:14px}.small,.fine-print,.about{font-size:13px;line-height:1.5;color:var(--secondary)}.fine-print{margin:20px 0 8px}.about>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.about pre{font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);padding:12px}.about p{margin:8px 0 14px}.loading,.error{position:absolute;inset:0;background:#eeeae2;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:4;text-align:center;padding:24px}.loading p{font-size:16px;color:var(--secondary)}.loading-mark{width:35px;height:35px;border:2px solid #d5ccba;border-top-color:var(--gold);border-radius:50%;animation:load 1s linear infinite}.error h2{font-family:Fraunces,serif;font-size:28px}.error p{max-width:35ch;color:var(--secondary)}.error button{border:0;background:var(--gold);color:#fff;padding:13px 20px;border-radius:8px;min-height:44px}.no-js{padding:24px;background:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-thumb{background:#c8c1b6;border:2px solid var(--canvas);border-radius:8px}::-webkit-scrollbar-track{background:var(--canvas)}
@keyframes load{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media(min-width:1550px){.studio{grid-template-columns:minmax(0,1fr) 385px}.choices{padding:38px 33px}h1{font-size:36px}.room-caption{top:34px;left:37px}}
@media(max-width:1000px){.studio{grid-template-columns:minmax(0,1fr) 305px}.choices{padding:26px 20px}.masthead{padding:0 23px}.room-caption{left:21px;top:23px}.room-caption span:first-child{font-size:20px}.room-signature{display:none}.room-tools{left:12px;right:12px;gap:5px}.room-tools button{padding:10px;font-size:13px}.room-tools .tool span{display:none}h1{font-size:29px}}
@media(max-width:720px){.masthead{height:66px;padding:0 19px;gap:10px}.masthead img{width:132px}.studio-name{display:none}.preview-label{font-size:12px}.studio{display:block}.room{position:relative;top:auto;min-height:440px;height:58svh;max-height:610px}.room-caption{left:20px;top:20px}.room-caption span:first-child{font-size:19px}.room-caption span:last-child{font-size:12px}.room-tools{bottom:47px}.room-hint{font-size:12px;bottom:16px}.room-tools button{font-size:13px;gap:5px;padding:9px}.room-tools svg{width:18px;height:18px}.choices{padding:27px 24px 35px;border-left:0;border-top:1px solid var(--line)}h1{font-size:30px}h1 br{display:none}.intro{max-width:46ch;margin-bottom:23px}.fabric-options{flex-direction:row}.fabric{gap:9px;min-height:80px;padding:8px}.fabric img{width:42px;height:55px}.fabric .check{width:17px;margin-right:0}.fabric strong{font-size:15px}.fabric small{font-size:12px}.product-section{padding-top:20px}.loading p{font-size:14px}.material-note{margin-bottom:24px}.about{max-width:60ch}}
@media(max-width:360px){.choices{padding:24px 18px}.fabric .check{display:none}.room-tools button{padding:9px 7px}.room-tools{gap:4px}.preview-label{font-size:11px}}

.room-tools .tool{min-width:44px}.text-link svg{width:17px;height:17px}

/* Existing Mokana identity, extended for the test configurator. */
.studio{grid-template-columns:minmax(0,1fr) 385px}.choices{padding:28px 25px}.room{min-height:660px}.intro{margin-bottom:20px}.config-block{border-top:1px solid var(--line);margin-top:0;padding:0}.config-block>summary{display:flex;justify-content:space-between;gap:12px;align-items:center;min-height:58px;cursor:pointer;font-size:17px;font-weight:600;list-style:none}.config-block>summary::after{content:'+';font-size:22px;font-weight:400}.config-block[open]>summary::after{content:'-'} .config-block>summary span{font-size:13px;color:var(--secondary);font-weight:400;margin-left:auto}.config-block>summary::-webkit-details-marker{display:none}.config-fields{padding-bottom:20px}.config-fields>label:first-child{margin-top:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.field-pair:has(#body-field[hidden]){grid-template-columns:1fr}select{font-size:14px}.chosen-fabric{display:flex;align-items:center;gap:14px;margin-top:14px}.chosen-fabric img{width:62px;height:62px;object-fit:cover;border-radius:8px}.chosen-fabric p{margin:0;font-size:14px}.small{margin-bottom:0}.notice{padding:12px 14px;background:var(--soft);border:1px solid var(--line);border-radius:8px;font-size:14px;margin-bottom:16px}.notice.error-note{background:#fff2ed;color:#8b2b13;border-color:#dfb8a9}.plain-action{display:block;width:100%;min-height:44px;padding:9px 0;text-align:left;background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:var(--gold);font-size:14px}.save-section{border-top:1px solid var(--line);padding:16px 0 19px}.save-section .edit-actions button{padding:11px 8px;font-size:14px}.save-section .edit-actions button:first-child{background:var(--ink);color:white;border-color:var(--ink)}.product-row{padding:12px 0;border-bottom:1px solid var(--line)}.product-row strong{font-size:15px}.product-row p{font-size:13px;color:var(--secondary);margin:5px 0}.product-row a{font-size:14px;color:var(--gold);display:inline-block;min-height:44px;padding-top:10px}.busy #configuration{opacity:.6}.busy .choices select{cursor:wait}.room-caption{max-width:60%}#measurements{font-size:11px}.choices details.about{border-top:1px solid var(--line);padding-top:6px}.room-tools #fit{min-width:90px}.masthead .preview-label{color:var(--gold)}
@media(max-width:1000px){.studio{grid-template-columns:minmax(0,1fr) 330px}.choices{padding:25px 20px}.room-caption{max-width:80%}.room-tools button{font-size:12px;padding:9px 8px}}@media(max-width:720px){.studio{display:block}.room{min-height:420px;height:55svh;max-height:570px}.choices{padding:25px 22px}.room-caption{max-width:90%}.room-tools{left:12px;right:12px}.room-tools button{font-size:13px;padding:9px 10px}.room-tools #fit{min-width:90px}.config-block>summary{min-height:60px}h1{font-size:31px}.intro{max-width:42ch}.field-pair{gap:10px}}
/* Room planning shares the existing materials and controls. */
input{font:inherit;color:var(--ink);max-width:100%}.room-size-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.room-size-fields input{width:100%;min-height:46px;border:1px solid var(--line);border-radius:8px;padding:9px;background:white;font-variant-numeric:tabular-nums}.room-size-fields label{font-size:13px;white-space:nowrap}.room-apply{min-height:44px;width:100%;background:var(--soft);border:1px solid var(--line);border-radius:8px;margin-top:15px}.room-starters{display:flex;gap:7px;padding-bottom:20px}.room-starters button{min-height:44px;flex:1;background:white;border:1px solid var(--line);border-radius:8px}.room-starters button[aria-pressed=true]{border-color:var(--gold);background:#f5f2e9}.room-starters button:hover,.room-apply:hover{border-color:var(--gold)}.place-toggle{position:absolute;top:26px;right:25px;min-height:44px;padding:10px 15px;background:white;border:1px solid var(--line);border-radius:8px;font-size:14px}.place-toggle[aria-pressed=true]{background:var(--ink);color:white;border-color:var(--ink)}#viewport.placing canvas{cursor:grab}#viewport.dragging canvas{cursor:grabbing}#room-dimensions{font-size:13px;color:var(--gold);font-family:"Sofia Sans",sans-serif;margin-top:7px}.layout-status{font-size:13px;color:var(--secondary);border-top:1px solid var(--line);padding:13px 0}.layout-status.warning{color:#87421b}.layout-status p{margin:0}.layout-status ul{padding-left:18px;margin:6px 0 0}.room-caption{max-width:calc(100% - 220px)}.room-hint{max-width:560px;margin:0 auto}.room-tools{bottom:66px}#copy-link{width:100%;min-height:44px;margin-bottom:15px}#selected-size{font-variant-numeric:tabular-nums}.busy #room-settings{opacity:.6}
@media(max-width:1000px){.place-toggle{top:95px;right:20px}.room-caption{max-width:90%}}
@media(max-width:720px){.place-toggle{top:20px;right:15px;padding:9px 11px;max-width:148px;font-size:12px}.room-caption{max-width:calc(100% - 178px)}.room-caption span:first-child{font-size:17px}.room-caption span:nth-child(2){font-size:11px}#room-dimensions{font-size:12px}.room-tools{bottom:67px}.room-hint{bottom:15px;max-width:340px;line-height:1.45}.room-size-fields{gap:7px}}
#viewport{background-position:center;background-repeat:no-repeat;background-size:cover}#room-photo{width:100%;font-size:13px;min-height:44px;padding:7px 0}#room-photo::file-selector-button{font:inherit;min-height:36px;margin-right:8px;border:1px solid var(--line);border-radius:7px;padding:7px 10px;background:var(--soft);color:var(--ink)}#photo-options input[type=range]{width:100%;min-height:36px;accent-color:var(--gold)}#photo-options label{display:flex;align-items:center;gap:4px}#photo-options output{margin-left:auto;font-variant-numeric:tabular-nums}.photo-mode .room-caption{background:#fffffff5;padding:12px 15px;border-radius:8px;top:20px;left:20px}.photo-mode .room-hint{background:#fffffff5;border-radius:6px;padding:7px 10px;bottom:10px}.photo-mode .room-tools button:disabled{opacity:.6;cursor:not-allowed}.photo-mode #viewport canvas{cursor:default}.photo-mode #viewport.placing canvas{cursor:grab}.photo-mode #viewport.dragging canvas{cursor:grabbing}#photo-block .room-apply{margin-top:0;background:var(--ink);border-color:var(--ink);color:white}#photo-origin a{color:var(--gold);text-underline-offset:3px}
@media(max-width:720px){.photo-mode .room-caption{top:15px;left:12px;padding:8px 10px;max-width:calc(100% - 175px)}.photo-mode .room-caption span:first-child{font-size:15px}.photo-mode .room-caption span:nth-child(2){font-size:11px}.photo-mode .room-caption #room-dimensions{font-size:11px}}
/* Photo tools stay outside the furniture image; mobile keeps feedback in view. */
.photo-mode #viewport{bottom:44px}.photo-mode .room-tools{display:none}.photo-mode .room-hint{bottom:0;left:0;right:0;min-height:44px;max-width:none;border-radius:0;display:flex;justify-content:center;align-items:center;background:var(--paper);padding:7px 14px;margin:0;font-size:12px}#photo-options input[type=range]{min-height:44px;scroll-margin-top:350px}
@media(max-width:720px){.room.photo-mode{position:sticky;top:0;z-index:5;min-height:300px;height:36svh;max-height:340px}.photo-mode .room-caption{max-width:calc(100% - 175px)}.photo-mode #room-dimensions{margin-top:3px}.photo-mode .room-caption span:first-child{font-size:14px}.photo-mode .room-hint{font-size:11px;padding:5px 12px}#photo-options label{scroll-margin-top:350px}}
/* The complete photograph and 3D camera share one image-shaped viewport. */
.room.photo-mode{background:#f0eee9;min-height:440px}.photo-mode #viewport{background-size:100% 100%;background-repeat:no-repeat}.photo-mode .room-caption{top:10px;left:20px;padding:0;background:none;gap:0}.photo-mode .room-caption span:first-child{font-size:18px}.photo-mode .room-caption span:nth-child(2){font-size:12px}.photo-mode #room-dimensions{font-size:12px;margin-top:0}.photo-mode #place-mode{top:16px}.photo-mode .room-hint{background:#f0eee9}
@media(max-width:720px){.room.photo-mode{min-height:355px;height:44svh;max-height:390px}.photo-mode .room-caption{left:12px;max-width:calc(100% - 160px)}.photo-mode .room-caption span:first-child{font-size:14px}.photo-mode #place-mode{font-size:12px;padding:8px 10px;right:12px;min-height:44px}.photo-mode #room-dimensions,.photo-mode .room-caption span:nth-child(2){font-size:11px}#photo-options label,#photo-options input[type=range]{scroll-margin-top:390px}}
/* Keep the complete measured floor clear of the caption and camera controls. */
.room:not(.photo-mode) #viewport{top:100px;bottom:110px}
@media(max-width:720px){.room:not(.photo-mode) #viewport{top:94px;bottom:108px}}
/* A photo uses its full available width without a fixed-height miniature. */
.room.photo-mode{min-height:0;max-height:none}.photo-mode .photo-fit{position:absolute;bottom:48px;left:20px;right:20px;min-height:44px;border:1px solid var(--gold);border-radius:8px;background:var(--paper);font-size:14px}.photo-mode .room-hint{min-height:44px}.photo-mode .room-caption{max-width:calc(100% - 195px)}#photo-room-height{display:block;width:100%;min-height:46px;padding:9px;border:1px solid var(--line);border-radius:8px;background:var(--paper)}#sample-reference .room-apply{margin-top:10px}#sample-reference .photo-grid-control{margin-top:20px}#photo-camera-controls[hidden]{display:none}
@media(max-width:1000px){.room.photo-mode{position:relative;top:auto}.photo-mode .room-caption{max-width:calc(100% - 175px)}.photo-mode #place-mode{max-width:160px}.photo-mode .photo-fit{left:12px;right:12px;font-size:13px}}
@media(max-width:720px){.room:not(.photo-mode){min-height:550px;height:66svh;max-height:660px}}

.extra-preview{display:block;width:96px;height:96px;object-fit:contain;margin-top:16px;border-radius:8px;background:#f4f1eb}.extra-preview[hidden]{display:none}
