:root{--paper:#f8f7f1;--ink:#173f3a;--muted:#788780;--line:#e2e4d9;--orange:#e59a65;--mint:#edf0e5;--water:#c9e2dc;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100dvh;display:flex;flex-direction:column}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:4px}svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.site-header{height:94px;padding:0 38px;display:flex;align-items:center;gap:30px;border-bottom:1px solid var(--line);flex-shrink:0}.brand{display:flex;align-items:center;gap:13px;font-family:Georgia,'Times New Roman',serif;font-size:26px;letter-spacing:-1px}.brand-note{display:block;font:8px Arial,Helvetica,sans-serif;letter-spacing:2px;color:var(--muted);margin-top:5px}.brand-mark{display:block;position:relative;width:37px;height:34px;background:var(--ink);clip-path:polygon(50% 8%,100% 34%,100% 69%,50% 94%,0 69%,0 34%)}.brand-mark:before{content:'';position:absolute;left:6px;right:6px;top:7px;height:13px;background:var(--orange);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}.brand-mark i{position:absolute;left:16px;top:17px;width:1px;height:11px;background:var(--paper);opacity:.5}.header-meta{display:flex;align-items:center;gap:20px;margin:auto}.edition{font-size:10px;letter-spacing:2px;color:var(--muted)}.prototype-badge{font-size:10px;display:flex;align-items:center;gap:7px;padding:7px 10px;border:1px solid var(--line);border-radius:30px}.prototype-badge i{width:5px;height:5px;background:#84a384;border-radius:50%}.header-actions{display:flex;align-items:center;gap:13px}.icon-button{width:34px;height:34px;border:1px solid #cbd5c9;border-radius:50%;background:transparent;font-size:15px}.snapshot-button{display:flex;align-items:center;gap:9px;padding:11px 16px;border:1px solid #bacbc0;border-radius:7px;background:transparent;font-size:12px}.snapshot-button:hover{background:#e8eee3}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 330px;flex:1;min-height:680px}.stage{position:relative;min-height:680px;overflow:hidden;background:var(--water);isolation:isolate}#scene{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none}.scene-heading{position:absolute;left:38px;top:35px;pointer-events:none}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:600}.scene-heading .eyebrow{color:#5a7e73}h1,h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-1.3px}h1{font-size:46px;line-height:1.07;margin:15px 0 18px}.scene-heading p{font-size:11px;color:#50796d;display:flex;align-items:center;gap:8px}.plot-dot{width:5px;height:5px;background:#668e7d;border-radius:50%}.separator{opacity:.5;padding:0 2px}.stage-top-note{position:absolute;top:38px;right:30px;font-size:8px;letter-spacing:1.5px;color:#6a8b7e;display:flex;gap:8px;align-items:center;pointer-events:none}.stage-top-note span{font-size:18px}.stage-bottom{position:absolute;bottom:26px;left:28px;right:28px;display:flex;align-items:center;justify-content:space-between;gap:10px;pointer-events:none}.stage-bottom>*{pointer-events:auto}.scene-instruction{font-size:10px;color:#557b70;display:flex;align-items:center;gap:8px;line-height:1.8}.scene-instruction svg{width:16px;height:16px}.scene-instruction b{font-weight:400;margin:0 5px}.camera-tools{display:flex;align-items:center;background:#f8f7f1ec;padding:6px;border:1px solid #ffffff75;border-radius:12px;box-shadow:0 5px 20px #1f574515;gap:1px}.camera-button{width:34px;height:34px;border:0;border-radius:7px;background:transparent;display:grid;place-items:center}.camera-button svg{width:17px;height:17px}.camera-button:hover{background:#e2eadd}.tool-divider{width:1px;height:16px;background:#d4dfd5;margin:0 3px}.reset-button{display:flex;align-items:center;gap:6px;border:0;background:transparent;font-size:10px;padding:8px 0;color:#476e62}.reset-button svg{width:14px;height:14px}.reset-button:hover{text-decoration:underline}.loading{position:absolute;left:50%;top:54%;transform:translate(-50%,-50%);background:#f8f7f1e8;border:1px solid #ffffff90;box-shadow:0 8px 30px #194e3e12;border-radius:12px;padding:17px 22px;display:flex;align-items:center;gap:12px;font-size:12px;white-space:nowrap}.loading[hidden]{display:none}.loader{width:17px;height:17px;border:2px solid #b7cbbd;border-top-color:var(--ink);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.inspector{padding:33px 27px 19px;display:flex;flex-direction:column;background:var(--paper);border-left:1px solid #d6e0d3}.inspector-heading .eyebrow{color:#9b997f}.inspector h2{font-size:31px;margin:10px 0 9px}.inspector-heading p{color:var(--muted);font-size:12px;line-height:1.55;margin:0 0 27px}.control-section{border-top:1px solid var(--line);padding-top:21px;margin-bottom:24px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.section-heading h3{font-size:9px;font-weight:400;color:#9ca893;letter-spacing:.4px;margin:0}.section-heading h3 span{font-size:11px;letter-spacing:0;color:var(--ink);margin-left:8px}.section-detail{font-size:9px;color:#9da491}.palette-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.palette-button{padding:5px;border:1px solid transparent;border-radius:7px;background:transparent;text-align:left;transition:background .15s,border-color .15s}.palette-button:hover{background:#edeee5}.palette-button.active,.palette-button[aria-pressed=true]{border-color:#68866f;background:#eef0e5}.swatch{display:flex;height:29px;border-radius:3px;overflow:hidden}.swatch i:first-child{width:52%}.swatch i:nth-child(2){width:30%}.swatch i:nth-child(3){width:18%}.swatch-sand i:nth-child(1){background:#e6ce9c}.swatch-sand i:nth-child(2){background:#f9eed8}.swatch-sand i:nth-child(3){background:#8d7560}.swatch-clay i:nth-child(1){background:#c57c63}.swatch-clay i:nth-child(2){background:#efd2b4}.swatch-clay i:nth-child(3){background:#6a6858}.swatch-sage i:nth-child(1){background:#99aa80}.swatch-sage i:nth-child(2){background:#e7e4cc}.swatch-sage i:nth-child(3){background:#5c6f59}.swatch-slate i:nth-child(1){background:#819da8}.swatch-slate i:nth-child(2){background:#d8e1d6}.swatch-slate i:nth-child(3){background:#526c74}.palette-label{display:flex;justify-content:space-between;align-items:center;font-size:9px;margin-top:6px;padding:0 1px}.selection-check{font-size:10px;visibility:hidden}.palette-button.active .selection-check,.palette-button[aria-pressed=true] .selection-check{visibility:visible}.roof-options{display:grid;gap:6px}.roof-button{display:flex;align-items:center;gap:12px;border:1px solid #e4e6dc;padding:7px 10px;border-radius:6px;background:transparent;font-size:10px;text-align:left;min-height:42px}.roof-button svg{width:34px;height:26px;stroke:#93a492;stroke-width:1.7}.roof-button i{margin-left:auto;width:12px;height:12px;border:1px solid #c2cbb9;border-radius:50%;position:relative}.roof-button.active,.roof-button[aria-pressed=true]{border-color:#8ba186;background:#eef0e5}.roof-button.active i,.roof-button[aria-pressed=true] i{border-color:#54745a}.roof-button.active i:after,.roof-button[aria-pressed=true] i:after{content:'';position:absolute;inset:2px;background:#54745a;border-radius:50%}.roof-button:hover{background:#ecefe4}.details-section{margin-bottom:18px}.toggle-row{display:flex;align-items:center;gap:10px;font-size:11px;cursor:pointer;position:relative;margin-top:17px}.toggle-row small{display:block;font-size:9px;color:#8b9688;margin-top:5px}.toggle-row input{position:absolute;right:0;opacity:0;width:34px;height:22px;margin:0}.toggle-switch{margin-left:auto;display:block;width:31px;height:18px;border-radius:20px;background:#d9ded2;position:relative;transition:background .2s}.toggle-switch:after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:#fafaf4;border-radius:50%;transition:transform .2s}.toggle-row input:checked+.toggle-switch{background:#5f8066}.toggle-row input:checked+.toggle-switch:after{transform:translateX(13px)}.toggle-row input:focus-visible+.toggle-switch{outline:3px solid var(--orange);outline-offset:4px}.inspector-bottom{margin-top:auto;padding-top:6px}.surprise-button{width:100%;border:0;border-radius:7px;padding:13px 9px;background:var(--ink);color:var(--paper);font-size:11px;display:flex;align-items:center;justify-content:center;gap:9px}.surprise-button svg{width:16px;height:16px;stroke:#dfb88e}.surprise-button:hover{background:#27584e}.local-note{text-align:center;color:#98a08e;font-size:9px;margin:13px 0 0}.local-note span{margin-right:3px;font-size:12px}.status{text-align:center;font-size:9px;color:#82927e;margin:10px 0 0;min-height:11px;line-height:1.4}.site-footer{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 38px;border-top:1px solid var(--line);color:#8c998b;font-size:8px;letter-spacing:1.1px}.footer-separator{margin:0 10px;color:#b4bcae}.site-footer a{font-size:9px;letter-spacing:0}.site-footer a span{color:#9da994}.site-footer a:hover{text-decoration:underline}dialog{max-width:440px;width:calc(100% - 32px);border:1px solid #e3e7dc;border-radius:15px;padding:34px;background:var(--paper);color:var(--ink);box-shadow:0 18px 80px #173f3a35}dialog::backdrop{background:#173f3a55;backdrop-filter:blur(4px)}dialog h2{font-size:31px;margin:13px 0 22px}dialog p{font-size:13px;line-height:1.7;color:#60776a}.dialog-close{position:absolute;right:12px;top:10px;background:transparent;border:0;font-size:26px;color:#708575}.prototype-note{background:#e9eddf;padding:14px;border-radius:7px;font-size:11px;line-height:1.6;margin-top:20px;color:#64806a}
@media(min-width:1450px){.workspace{grid-template-columns:minmax(0,1fr) 360px;min-height:calc(100dvh - 137px)}.inspector{padding:37px 34px 26px}.scene-heading{left:48px;top:41px}h1{font-size:54px}.inspector h2{font-size:35px}.stage{min-height:730px}.control-section{margin-bottom:28px}.swatch{height:34px}}
@media(max-width:1100px){.site-header{padding:0 25px;height:82px}.header-meta{margin-left:auto;margin-right:0}.edition{display:none}.workspace{grid-template-columns:minmax(0,1fr) 305px}.inspector{padding:27px 23px 18px}.scene-heading{left:28px;top:30px}h1{font-size:40px}.stage-top-note{display:none}.stage-bottom{left:22px;right:22px;flex-wrap:wrap;justify-content:center;bottom:22px}.scene-instruction{position:absolute;bottom:52px;left:0;right:0;justify-content:center}.reset-button{position:absolute;right:0;bottom:55px}.scene-instruction{justify-content:flex-start;font-size:9px}.camera-tools{margin:0 auto}.site-footer{padding-left:25px;padding-right:25px}}
@media(max-width:760px){.site-header{height:75px;padding:0 19px;gap:10px}.brand{font-size:22px;gap:9px}.brand-note{font-size:6px;letter-spacing:1.8px}.brand-mark{width:29px;height:29px}.brand-mark i{left:13px;height:8px}.header-meta{display:none}.header-actions{margin-left:auto;gap:9px}.snapshot-button{padding:9px 10px;font-size:10px;gap:6px}.snapshot-button svg{width:16px;height:16px}.help-button{width:29px;height:29px;font-size:13px}.workspace{display:flex;flex-direction:column;min-height:0}.stage{min-height:530px;height:68svh;max-height:660px}.scene-heading{top:25px;left:25px}.scene-heading .eyebrow{font-size:8px}h1{font-size:36px;margin:12px 0}.scene-heading p{font-size:10px}.stage-bottom{bottom:19px;left:20px;right:20px}.scene-instruction{left:0;bottom:48px}.reset-button{bottom:51px}.inspector{border-left:0;border-top:1px solid #d6e0d3;padding:28px 25px 23px;display:grid;grid-template-columns:1fr 1fr;gap:0 24px}.inspector-heading{grid-column:1/-1}.inspector-heading h2{font-size:32px;margin-top:8px}.inspector-heading p br{display:none}.inspector-heading p{margin-bottom:23px}.control-section{padding-top:18px;margin-bottom:22px}.palette-section{grid-column:1}.roof-section{grid-column:2}.roof-options{gap:7px}.roof-button{min-height:40px;padding:6px 8px;gap:7px}.roof-button svg{width:30px}.palette-grid{gap:5px}.swatch{height:35px}.palette-label{font-size:9px}.details-section{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:24px}.details-section .section-heading{grid-column:1/-1;margin-bottom:0}.inspector-bottom{grid-column:1/-1;padding-top:0}.surprise-button{font-size:12px;padding:15px}.local-note{font-size:10px}.status{font-size:10px}.site-footer{padding:15px 25px;flex-direction:column;align-items:flex-start;gap:9px;font-size:7px}.site-footer a{font-size:9px}}
@media(max-width:420px){.snapshot-button span{display:none}.snapshot-button{width:34px;height:32px;justify-content:center;padding:0}.brand{font-size:21px}.stage{min-height:500px;height:65svh}.scene-heading{left:22px;top:24px}h1{font-size:35px}.inspector{padding:26px 21px 23px;gap:0 16px}.palette-grid{grid-template-columns:1fr 1fr}.palette-label{font-size:8px}.roof-button{font-size:9px;gap:5px}.roof-button svg{width:25px}.roof-button i{width:10px;height:10px}.section-heading h3 span{font-size:10px;margin-left:5px}.section-detail{display:none}.scene-instruction{font-size:8px}.reset-button{font-size:9px}.details-section{column-gap:20px}.toggle-row{font-size:10px}.toggle-row small{font-size:8px}.site-footer{padding-left:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.loader{animation:none}}

/* Keep the heading out of the small-screen canvas and the preview visible while choosing. */
.workspace{position:relative}.scene-heading{z-index:2}.touch-zoom-hint{display:none}
@media(max-width:760px){
  .workspace{display:block}
  .scene-heading{position:relative;inset:auto;padding:18px 22px 14px;background:var(--paper)}
  .scene-heading .eyebrow{font-size:8px}h1{font-size:28px;margin:8px 0}.scene-heading h1 br{display:none}
  .scene-heading p{margin:8px 0 0}
  .stage{position:sticky;top:0;z-index:3;height:clamp(230px,42svh,360px);min-height:0;max-height:none;border-bottom:1px solid #d6e0d3;box-shadow:0 4px 12px #173f3a0a}
  .stage-bottom{bottom:8px;left:14px;right:14px;gap:0}
  .camera-tools{padding:3px}.camera-button{width:36px;height:36px}
  .scene-instruction{position:absolute;top:auto;bottom:42px;left:0;right:auto;margin:0;font-size:9px;pointer-events:none}
  .scene-instruction svg{display:none}.scene-instruction b{margin:0 3px}
  .reset-button{bottom:43px;right:0;font-size:10px}
  .desktop-zoom-hint{display:none}.touch-zoom-hint{display:inline}
  .inspector{position:relative;padding-top:20px;scroll-margin-top:45svh}
  .inspector-heading h2{font-size:28px}.inspector-heading p{font-size:12px}
  .palette-label{font-size:10px}.roof-button{font-size:11px;min-height:44px}.roof-button svg{width:24px}
  .roof-button{scroll-margin-top:48svh}.palette-button{scroll-margin-top:48svh}
  .toggle-row{min-height:36px;font-size:12px}.toggle-row small{font-size:10px}
}
@media(max-width:360px){.inspector{padding-left:15px;padding-right:15px;column-gap:12px}.roof-button{gap:5px;font-size:10px}.roof-button svg{width:20px}.scene-heading{padding-left:18px}.scene-heading h1{font-size:26px}}

.header-text-button{border:0;background:transparent;border-radius:6px;font-size:12px;padding:11px 10px;white-space:nowrap}.header-text-button:hover{background:#e8eee3}.header-share{background:var(--ink);color:var(--paper);padding:11px 17px}.header-share:hover{background:#27584e}.shared-intro{display:none}.link-notice{margin:0;padding:15px 25px;background:#fff1d5;color:#674b23;font-size:13px}.shared-view .shared-intro{display:block}.shared-view .inspector-heading,.shared-view .control-section,.shared-view #surprise,.shared-view .local-note,.shared-view #reset{display:none}.shared-intro h2{overflow-wrap:anywhere;font-size:36px;line-height:1.14;margin:17px 0}.shared-intro p{font-size:13px;line-height:1.65;color:#64796d}.shared-intro .solid-button{margin-top:16px;width:100%}.shared-intro .shared-note{font-size:10px;text-align:center;margin-top:13px}.shared-view .stage-top-note{display:none}
.place-dialog{max-width:500px;max-height:88dvh;overflow-y:auto}.place-dialog h2{margin-bottom:20px}.place-dialog input{width:100%;border:1px solid #bcccbc;border-radius:7px;padding:12px;background:#fffef9;font:14px Arial;color:var(--ink)}.place-dialog input:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.field-label{display:block;font-size:12px;margin:12px 0 9px;color:#48695b}.solid-button,.quiet-button{font-size:12px;border-radius:7px;padding:11px 14px;min-height:40px}.solid-button{background:var(--ink);color:var(--paper);border:1px solid var(--ink)}.solid-button:hover{background:#27584e}.quiet-button{background:transparent;border:1px solid #ccd5c5}.quiet-button:hover{background:#e8eee3}.dialog-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 5px}.place-dialog [role=status]{min-height:18px;font-size:12px;color:#3e6851}.place-dialog .dialog-close{min-width:36px;min-height:36px}.places-dialog{max-width:820px}.places-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.place-card{border:1px solid #d9e0d2;border-radius:11px;overflow:hidden;background:#fffef8}.place-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;background:var(--water)}.place-info{padding:14px}.place-info h3{font:21px Georgia;margin:0;overflow-wrap:anywhere}.place-info p{font-size:11px;margin:8px 0 14px}.place-actions{display:flex;gap:6px;flex-wrap:wrap}.place-actions button{font-size:11px;padding:8px 12px}.empty-places{grid-column:1/-1;text-align:center;padding:38px 14px;background:#edf0e6;border-radius:12px}.empty-places h3{font:24px Georgia}.empty-star{color:#87a38a;font-size:30px}.share-preview{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:9px;background:var(--water)}#shareLink{font-size:11px}#undoRemove{margin-top:18px}.header-actions{gap:6px}
@media(max-width:1100px){.header-meta{display:none}.header-actions{margin-left:auto}}
@media(max-width:760px){.site-header{height:auto;min-height:75px;flex-wrap:wrap;padding:13px 18px;gap:10px}.brand{margin-right:auto}.header-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;margin:0;gap:4px}.header-text-button{font-size:11px;padding:10px 8px}.header-share{padding:10px 12px}.snapshot-button{width:34px;height:34px;justify-content:center;padding:0}.snapshot-button span{display:none}.help-button{display:none}.shared-intro{grid-column:1/-1}.shared-intro h2{font-size:30px}.place-dialog{padding:28px 21px}.place-dialog h2{font-size:28px}.places-grid{grid-template-columns:1fr}.dialog-actions{gap:7px}.dialog-actions button{flex:1}.shared-view .stage{position:relative}}
@media(max-width:520px){.site-header .brand{width:100%}.header-actions{width:100%;justify-content:flex-start}.header-actions .snapshot-button{margin-left:auto}}

@media(min-width:761px){.shared-view .stage-bottom{justify-content:center}.shared-view .scene-instruction{position:absolute;left:0}}

.prompt-section{padding:19px 0 22px;border-top:1px solid var(--line);margin-bottom:12px}.prompt-section h3{font:23px/1.2 Georgia;margin:10px 0 16px;letter-spacing:-.4px}.prompt-section textarea{display:block;width:100%;resize:vertical;min-height:100px;max-height:240px;padding:12px;font:13px/1.5 Arial;color:var(--ink);background:#fffef9;border:1px solid #bcccbc;border-radius:8px}.prompt-section textarea:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.prompt-section p{font-size:11px;line-height:1.55;color:#64796d}.prompt-section #generateHouse{width:100%;margin-top:12px;display:flex;justify-content:space-between;align-items:center}.prompt-examples{display:flex;gap:6px;flex-wrap:wrap}.prompt-examples button{font-size:10px;padding:8px;border-radius:20px;background:transparent;border:1px solid #ccd5c5}.prompt-examples button:hover{background:#e8eee3}#promptStatus{min-height:34px}#cancelGeneration{margin-top:8px}#generateHouse:disabled{cursor:not-allowed}.shared-view .prompt-section{display:none}@media(max-width:760px){.prompt-section{grid-column:1/-1}.prompt-section textarea{font-size:16px;scroll-margin-top:45svh}.prompt-examples button{font-size:12px;min-height:40px}.prompt-section h3{font-size:25px}}
@media(min-width:761px){.workspace{height:calc(100dvh - 136px);flex:0 0 auto;min-height:680px}.inspector{overflow-y:auto;min-height:0}.stage{min-height:0}}
