.panorama{position:relative}.panorama__viewport{position:relative;height:clamp(380px,min(72vh,52vw),820px);overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;background:var(--charred)}.panorama__viewport.is-dragging{cursor:grabbing}.panorama__track{position:absolute;top:0;left:0;will-change:transform}.panorama__track picture,.panorama__track img{width:100%;height:100%}.panorama__track img{object-fit:cover;pointer-events:none;transition:filter 1.4s var(--ease-in-out)}:root[data-time=dusk] .panorama__track img{filter:brightness(.64) saturate(.88) contrast(1.06)}.panorama__evening{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity 1.4s var(--ease-in-out)}:root[data-time=dusk] .panorama__evening{opacity:1}.panorama__evening:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffd9b3,#ffe2c2 45%,#e9bf98);mix-blend-mode:multiply}.panorama__evening:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 80% at 52% 42%,transparent 40%,rgb(20 12 6 / .55) 100%)}.spot{position:absolute;z-index:1;left:var(--x);top:14%;width:9%;height:46%;transform:translate(-50%);mix-blend-mode:screen}.spot:before{content:"";position:absolute;top:0;left:50%;width:9%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#fffaf0 0 20%,rgb(255 222 175 / .45) 42%,transparent 72%);filter:blur(.5px)}.spot:after{content:"";position:absolute;inset:4% 0 0;background:radial-gradient(ellipse 48% 62% at 50% 0%,rgb(255 214 160 / .2),rgb(255 205 150 / .07) 55%,transparent 100%);filter:blur(10px)}.hotspot{position:absolute;left:var(--x);top:var(--y);width:44px;height:44px;margin:-22px 0 0 -22px;border:0;border-radius:50%;background:transparent;display:grid;place-items:center}.hotspot:before,.hotspot:after{content:"";position:absolute;border-radius:50%}.hotspot:before{width:16px;height:16px;background:var(--linen);box-shadow:0 0 0 4px #a0643a8c,0 4px 14px #00000059;transition:transform var(--duration-normal) var(--ease-out-expo)}.hotspot:after{inset:6px;border:1.5px solid var(--linen);animation:hotspot-pulse 2.4s var(--ease-out-expo) infinite}.hotspot:hover:before,.hotspot[aria-expanded=true]:before{transform:scale(1.35);background:var(--cedar)}@keyframes hotspot-pulse{0%{transform:scale(.6);opacity:1}to{transform:scale(1.6);opacity:0}}.panorama__ui{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-sm)}.panorama__hint{display:inline-flex;align-items:center;gap:.6em;font-size:var(--text-sm);font-weight:600;color:var(--color-text-muted)}.panorama__hand{width:28px;height:1px;background:currentColor;position:relative;animation:hand-nudge 2.2s var(--ease-in-out) infinite}.panorama__hand:before,.panorama__hand:after{content:"";position:absolute;top:-3px;width:7px;height:7px;border-top:1px solid currentColor}.panorama__hand:before{left:0;border-left:1px solid currentColor;transform:rotate(-45deg)}.panorama__hand:after{right:0;border-right:1px solid currentColor;transform:rotate(45deg)}@keyframes hand-nudge{50%{transform:translate(6px)}}.panorama__progress{flex:0 1 220px;height:2px;background:var(--color-line);overflow:hidden}.panorama__progress span{display:block;height:100%;background:var(--color-accent);transform-origin:left;transform:scaleX(0)}.hotspot-card{position:absolute;left:var(--gutter);bottom:calc(var(--space-sm) + 3.2rem);max-width:min(340px,calc(100% - 2 * var(--gutter)));padding:var(--space-sm) var(--space-md);background:color-mix(in srgb,var(--color-surface-raised) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--radius-md);box-shadow:var(--shadow-lift);animation:panel-in .42s var(--ease-out-expo)}.hotspot-card__title{font-family:var(--font-display);font-size:var(--text-lg)}.hotspot-card__detail{font-size:var(--text-sm);color:var(--color-text-muted)}.fit-tool{display:grid;gap:var(--space-lg);align-items:start}@media(min-width:1000px){.fit-tool{grid-template-columns:minmax(300px,4fr) minmax(0,7fr)}}.fit-tool__controls{display:grid;gap:var(--space-md);order:2}@media(min-width:1000px){.fit-tool__controls{order:0}}.fit-field{margin:0;padding:0;border:0;display:grid;gap:.5rem}.fit-field legend,.fit-field label{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:var(--text-xs);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--color-text-muted)}.fit-field output{font-family:var(--font-display);font-size:var(--text-lg);font-weight:400;letter-spacing:0;text-transform:none;color:var(--color-text);font-variant-numeric:tabular-nums}.fit-field input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;cursor:pointer}.fit-field input[type=range]::-webkit-slider-runnable-track{height:2px;background:linear-gradient(90deg,var(--color-text) 0 0) left / 100% 100% no-repeat,var(--color-line)}.fit-field input[type=range]::-moz-range-track{height:2px;background:var(--color-line-strong)}.fit-field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-11px;border-radius:50%;background:var(--color-surface-raised);border:2px solid var(--color-accent);box-shadow:var(--shadow-soft);transition:transform var(--duration-fast) var(--ease-out-expo)}.fit-field input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--color-surface-raised);border:2px solid var(--color-accent)}.fit-field input[type=range]:active::-webkit-slider-thumb{transform:scale(1.2)}.fit-tool__buttons{display:flex;flex-wrap:wrap;gap:.5rem}.fit-verdict{--state: var(--color-ok);display:flex;gap:.9rem;align-items:flex-start;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:color-mix(in srgb,var(--state) 12%,var(--color-surface));border:1px solid color-mix(in srgb,var(--state) 40%,transparent);transition:background-color var(--duration-normal),border-color var(--duration-normal)}.fit-verdict[data-state=tight]{--state: var(--color-warn)}.fit-verdict[data-state=no-fit]{--state: var(--color-bad)}.fit-verdict__dot{flex:none;width:12px;height:12px;margin-top:.45em;border-radius:50%;background:var(--state);box-shadow:0 0 0 5px color-mix(in srgb,var(--state) 22%,transparent)}.fit-verdict__title{font-family:var(--font-display);font-size:var(--text-lg)}.fit-verdict__detail{font-size:var(--text-sm);color:var(--color-text-muted)}.fit-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin:0}.fit-stats dt{font-size:var(--text-xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted)}.fit-stats dd{margin:0;font-family:var(--font-display);font-size:var(--text-lg);font-variant-numeric:tabular-nums}.fit-tool__controls>.btn{justify-self:start}.fit-note{font-size:var(--text-xs);color:var(--color-text-muted)}.fit-tool__canvas{position:relative;padding:clamp(.5rem,2vw,1.25rem);border-radius:var(--radius-lg);background:var(--plan-bg);border:1px solid var(--color-line);box-shadow:var(--shadow-soft);transition:background-color var(--duration-slow) var(--ease-in-out)}@media(min-width:1000px){.fit-tool__canvas{position:sticky;top:96px}}.fit-tool__canvas svg{width:100%;height:auto;max-height:74vh;touch-action:pan-y;overflow:visible;--mm-per-px: 30}.fit-tool__hint{margin-top:.5rem;text-align:center;font-size:var(--text-xs);color:var(--color-text-muted)}.fit-garden{fill:url(#lawn);stroke:var(--color-text);stroke-width:2;stroke-dasharray:10 6;vector-effect:non-scaling-stroke}.fit-lawn-bg{fill:#dfe3cc}.fit-lawn-line{stroke:#4f5b3a24;stroke-width:120}:root[data-time=dusk] .fit-lawn-bg{fill:#253024}:root[data-time=dusk] .fit-lawn-line{stroke:#a8b88414}.fit-house{--house: var(--color-ok);fill:color-mix(in srgb,var(--house) 30%,var(--plan-bg));stroke:var(--house);stroke-width:2.5;vector-effect:non-scaling-stroke;cursor:grab;touch-action:none;outline:none;transition:fill var(--duration-normal),stroke var(--duration-normal)}.fit-house[data-state=tight]{--house: var(--color-warn)}.fit-house[data-state=no-fit]{--house: var(--color-bad)}.fit-house.is-dragging{cursor:grabbing;fill:color-mix(in srgb,var(--house) 45%,var(--plan-bg))}.fit-house:focus-visible{stroke-width:5}.fit-house-label{pointer-events:none;font-family:var(--font-display);font-size:calc(var(--mm-per-px) * 14px);fill:var(--color-text)}.fit-boundary-label{font-size:calc(var(--mm-per-px) * 10.5px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;fill:var(--color-text-muted)}.fit-gap path,.fit-scale path{fill:none;stroke-width:1.3;vector-effect:non-scaling-stroke}.fit-gap text,.fit-scale text{font-size:calc(var(--mm-per-px) * 11.5px);font-weight:700;font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--plan-bg);stroke-width:calc(var(--mm-per-px) * 4px);stroke-linejoin:round}.fit-gap--ok path{stroke:var(--color-text)}.fit-gap--ok text{fill:var(--color-text)}.fit-gap--warn path{stroke:var(--color-warn)}.fit-gap--warn text{fill:var(--color-warn)}.fit-gap--bad path{stroke:var(--color-bad)}.fit-gap--bad text{fill:var(--color-bad)}.fit-scale path{stroke:var(--color-text-muted)}.fit-scale text{fill:var(--color-text-muted)}
