.gen{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro""preview""form";align-items:start;gap:24px;display:grid}.gen-intro{grid-area:intro}.gen-preview{grid-area:preview;min-width:0}.gen-form{grid-area:form;min-width:0}.gen-intro h1{max-width:14ch;font-size:clamp(2.2rem,2.6vw + 1.2rem,3.4rem)}.gen-intro .lede{margin:0}.gen-intro:empty{display:none}@media (width>=980px){.gen{grid-template:"intro preview""form preview"1fr/minmax(0,1fr) minmax(0,1.02fr);gap:32px 48px}.gen-preview{position:sticky;top:16px}.gen-intro{padding-top:12px}}.view-tabs{background:var(--sage-deep);border-radius:999px;gap:2px;margin-bottom:12px;padding:3px;display:inline-flex}.view-tabs button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:40px;padding:7px 16px;font-size:.95rem;font-weight:600}.view-tabs button[aria-selected=true]{background:var(--paper);box-shadow:0 1px 2px #0e474433}.preview-panel{aspect-ratio:1;border-radius:var(--radius-lg);background:#d8d0c2;position:relative;overflow:hidden}@media (width>=641px){.preview-panel{aspect-ratio:4/5}}.preview-panel.view-flat,.preview-panel.view-sheet{background:var(--sage-deep)}.stage{position:absolute;inset:0;overflow:hidden}.stage-photo{max-width:none;left:var(--x-square);top:var(--y-square);width:var(--w-square);height:var(--h-square);position:absolute}@media (width>=641px){.stage-photo{left:var(--x-tall);top:var(--y-tall);width:var(--w-tall);height:var(--h-tall)}}.stage-plane{transform-origin:0 0;width:1536px;height:1024px;animation:.24s ease-out plane-in;position:absolute;top:0;left:0}@keyframes plane-in{0%{opacity:0}}.stage-sign{transform-origin:0 0;mix-blend-mode:multiply;position:absolute;top:0;left:0}.stage-sign svg,.flat-card svg,.sheet-svg svg{width:100%;height:100%;display:block}.stage-occluders{pointer-events:none;max-width:none;position:absolute;top:0;left:0}.flat{place-items:center;padding:7%;display:grid;position:absolute;inset:0}.flat-card{max-width:100%;height:100%;max-height:100%;box-shadow:var(--shadow-paper), 0 2px 6px #0e47441f;background:#fff}.flat-card:has(svg[viewBox$=" 144"]){width:100%;height:auto}.sheet{flex-direction:column;justify-content:center;align-items:center;gap:12px;margin:0;padding:5% 7% 4%;display:flex;position:absolute;inset:0}.sheet-paper{max-width:100%;height:calc(100% - 64px);box-shadow:var(--shadow-paper);background:#fff;position:relative}.sheet-svg{position:absolute;inset:0}.sheet-cut{pointer-events:none;outline:1px dashed #0e47448c;position:absolute}.sheet-fold{border-top:2px dashed var(--rose);pointer-events:none;height:0;position:absolute}.sheet figcaption{text-align:center;color:var(--muted);max-width:36ch;font-size:.9rem;line-height:1.4}.sheet figcaption strong{color:var(--ink);display:block}.sample-tag{background:var(--paper);color:var(--ink);border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:700;position:absolute;top:12px;left:12px;box-shadow:0 1px 3px #0e474440}.rooms{margin-top:12px}.rooms-label{color:var(--muted);margin-bottom:6px;font-size:.9rem;display:block}.room-chips{scrollbar-width:thin;gap:6px;padding:2px 2px 6px;display:flex;overflow-x:auto}.room-note{color:var(--muted);margin:4px 0 0;font-size:.88rem}.scan{border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);align-items:flex-start;gap:12px;margin-top:14px;padding:12px 14px;font-size:.93rem;line-height:1.45;display:flex}.scan p{margin:0}.scan strong{color:var(--ink)}.scan-icon{border:2px solid var(--line);border-radius:50%;flex:none;width:22px;height:22px;margin-top:1px;position:relative}.scan-good{background:#f2faf5;border-color:#9cc7b0}.scan-good .scan-icon{background:var(--ink);border-color:var(--ink)}.scan-good .scan-icon:after{content:"";border:solid var(--butter);border-width:0 2.5px 2.5px 0;width:5px;height:10px;position:absolute;top:2.5px;left:6px;transform:rotate(45deg)}.scan-bad{border-color:var(--rose);background:var(--rose-soft)}.scan-bad .scan-icon{background:var(--rose-ink);border-color:var(--rose-ink)}.scan-bad .scan-icon:after{content:"!";color:#fff;text-align:center;font-size:13px;font-weight:800;line-height:18px;position:absolute;inset:0}.scan-busy .scan-icon{border-color:var(--line);border-top-color:var(--ink);animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gen-form{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-paper);padding:8px 20px}@media (width>=720px){.gen-form{padding:12px 32px}}.step{border:0;min-width:0;margin:0;padding:24px 0 28px}.step+.step{border-top:2px dashed var(--line)}.step legend{float:left;width:100%;font-family:var(--serif);color:var(--ink);align-items:center;gap:12px;margin-bottom:6px;font-size:1.5rem;line-height:1.2;display:flex}.step legend+*{clear:both}.step-n{background:var(--butter);width:32px;height:32px;font-family:var(--sans);border-radius:50%;place-items:center;font-size:1rem;font-weight:800;display:inline-grid}.step-hint{color:var(--muted);margin:0 0 14px;font-size:.95rem}.field{margin-bottom:16px}.field label,.paper label{color:var(--ink);margin-bottom:5px;font-size:.95rem;font-weight:650;display:block}input[type=text],input[type=password],select{width:100%;min-height:48px;font:inherit;color:var(--text);background:#fff;border:1.5px solid #a9bdb2;border-radius:10px;padding:10px 12px;font-size:1rem}#ssid,#password{font-family:var(--mono);font-size:1.02rem}input:focus-visible,select:focus-visible{outline:3px solid var(--butter);outline-offset:0;border-color:var(--ink)}input[aria-invalid=true]{border-color:var(--rose-ink)}.input-with-button{gap:8px;display:flex}.reveal{min-width:74px;font:inherit;color:var(--ink);border:1.5px solid var(--ink);cursor:pointer;background:0 0;border-radius:10px;flex:none;font-weight:700}.reveal[aria-pressed=true]{background:var(--butter-soft)}.hint{color:var(--muted);margin:6px 0 0;font-size:.9rem}.hint-warn{color:var(--rose-ink)}.issues{margin:6px 0 0;padding:0;font-size:.9rem;list-style:none}.issue{margin-bottom:4px;padding-left:18px;position:relative}.issue:before{content:"";border-radius:50%;width:8px;height:8px;position:absolute;top:.5em;left:2px}.issue-error{color:var(--rose-ink)}.issue-error:before{background:var(--rose-ink)}.issue-warning{color:#6d4a00}.issue-warning:before{background:#d29b1d}.issue-info{color:var(--muted)}.issue-info:before{background:var(--line)}.layout-issues{margin-top:12px}.check{cursor:pointer;color:var(--ink);align-items:flex-start;gap:12px;margin:4px 0 12px;font-weight:600;display:flex}.check input{width:20px;height:20px;accent-color:var(--ink);flex:none;margin:3px 0 0}.check small{color:var(--muted);margin-top:2px;font-size:.88rem;font-weight:400;line-height:1.45;display:block}.remember{background:var(--sage);border-radius:var(--radius);margin-top:18px;padding:14px 16px 6px}.link-button{font:inherit;color:var(--ink);text-underline-offset:.18em;cursor:pointer;text-align:left;background:0 0;border:0;padding:4px 0;font-size:.93rem;font-weight:600;text-decoration:underline}.link-button:disabled{color:var(--muted);cursor:not-allowed}.remember .link-button{margin:0 0 10px 32px}.designs{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;display:grid}.design{border-radius:var(--radius);cursor:pointer;text-align:center;color:var(--ink);border:1.5px solid #0000;flex-direction:column;align-items:center;gap:6px;padding:8px 6px;font-size:.85rem;font-weight:600;line-height:1.2;display:flex;position:relative}.design input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.design img{aspect-ratio:2/3;object-fit:contain;filter:drop-shadow(0 4px 8px #0e47442e);width:100%;height:auto;transition:transform .16s}.design:hover img{transform:translateY(-2px)}.design:has(input:checked){background:var(--butter-soft);border-color:var(--ink)}.design:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:2px}.design-blurb{margin-top:12px}.words{margin-top:6px}.words summary{cursor:pointer;color:var(--ink);padding:6px 0 12px;font-weight:700}.words-grid{gap:0 16px;display:grid}@media (width>=560px){.words-grid{grid-template-columns:1fr 1fr}}.print-password{border-radius:var(--radius);background:var(--butter-soft);margin-top:16px;padding:14px 16px 2px}.disclosure{color:var(--text);margin:-4px 0 12px 32px;font-size:.9rem}.sizes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.size{border:1.5px solid var(--line);border-radius:var(--radius);cursor:pointer;background:#fff;align-items:center;gap:12px;padding:10px 12px;display:flex;position:relative}.size input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.size-shape{border:2px solid var(--ink);background:var(--paper);border-radius:3px;flex:none;width:24px;max-height:34px}.size-text{flex-direction:column;line-height:1.25;display:flex}.size-text strong{color:var(--ink);font-size:.92rem}.size-text small{color:var(--muted);font-size:.8rem}.size:has(input:checked){border-color:var(--ink);background:var(--butter-soft);box-shadow:inset 0 0 0 1px var(--ink)}.size:has(input:focus-visible){outline:3px solid var(--ink);outline-offset:2px}.paper{margin-top:16px}.actions{gap:10px;margin-top:20px;display:grid}.actions button{font:inherit;cursor:pointer}.primary{border-radius:var(--radius);background:var(--ink);min-height:56px;color:var(--paper);border:0;font-size:1.08rem!important;font-weight:800!important}.primary:hover:not(:disabled){background:#0a3634}.primary:focus-visible{outline:3px solid var(--rose)}.secondary-actions{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.secondary-actions button{border:1.5px solid var(--ink);min-height:46px;color:var(--ink);border-radius:var(--radius);background:#fff;font-weight:700}.secondary-actions button:hover:not(:disabled){background:var(--butter-soft)}.actions button:disabled{opacity:.45;cursor:not-allowed}.print-rule{margin:2px 0 0;font-size:.92rem}.blocker{color:var(--rose-ink);margin:0;font-size:.92rem}.done{color:var(--ink);margin:0;font-size:.95rem;font-weight:600}.export-status:empty{display:none}.promo{border-radius:var(--radius);border:1px dashed var(--ink);margin-top:18px;padding:14px 16px;font-size:.95rem;animation:.24s ease-out plane-in}.promo p{margin:0}
