*{box-sizing:border-box}body{margin:0;background:var(--color-background);color:var(--color-text);font:1rem/1.6 var(--font-body)}a{color:inherit;text-underline-offset:.3em}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--color-border);padding:.7rem 1rem;background:transparent;border-radius:0}button:hover{background:var(--color-surface)}button[aria-pressed=true]{background:var(--color-text);color:var(--color-background);border-color:var(--color-text)}button:disabled{opacity:.5;cursor:default}:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}[hidden]{display:none!important}.skip{position:absolute;top:0;left:1rem;transform:translateY(-150%);z-index:20;background:var(--color-text);color:var(--color-background);padding:1rem}.skip:focus{transform:none}.wrap{width:min(94%,var(--layout-content-max-width));margin:auto}.mast{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 0;border-bottom:1px solid var(--color-border)}.brand{font:700 2.5rem/.85 var(--font-display);letter-spacing:-.08em;text-decoration:none}.brand span{display:block;font:400 .55rem/1.5 var(--font-body);letter-spacing:.02em;margin-top:.7rem}.mast nav{display:flex;gap:2rem;font-size:.85rem}.caption,.eyebrow{font: .65rem/1.6 'Courier New',monospace;text-transform:uppercase;letter-spacing:.08em}.eyebrow{font-weight:700}.small{font-size:.8rem;line-height:1.6}h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:.98;letter-spacing:-.055em;margin:1rem 0 1.5rem}h1{font-size:clamp(4rem,7vw,7rem)}h2{font-size:clamp(2.5rem,4vw,4.5rem)}h3{font-size:1.7rem}p{max-width:60ch}.catalogue{display:grid;grid-template-columns:.55fr 2fr .6fr;align-items:stretch;padding-top:3rem;gap:1.5rem}.collection-title h1{writing-mode:vertical-rl;transform:rotate(180deg);font-size:6.5rem;line-height:.85;margin:2rem 0 0}.lamp-study{margin:0;min-width:0}.scene{height:570px;position:relative;overflow:hidden;background:var(--color-background)}.scene canvas,.scene>svg{width:100%;height:100%;display:block}.lamp-study figcaption{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--color-border);padding-top:1rem;font: .6rem/1.6 'Courier New',monospace}.runtime-note{font-size:.65rem}.scene-actions{display:flex;flex-wrap:wrap;gap:.5rem}.scene-actions button{font-size:.75rem}.lamp-study>.caption{font-size:.6rem;max-width:none}.invitation{background:var(--color-accent);padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;min-width:0}.edition{font:400 5rem/.9 var(--font-display);letter-spacing:-.08em}.invitation p{font-size:.85rem}.invitation a{font-size:1.8rem;line-height:1.05;letter-spacing:-.04em}.invitation a span{display:block;font-size:3rem;margin-top:1rem}.invitation .small{font-size:.65rem}.principle{display:grid;grid-template-columns:.85fr 1.2fr 1fr;gap:2rem;padding:4rem 0;margin-top:4rem;border-top:1px solid var(--color-border);align-items:center}.principle>.eyebrow{grid-column:1/-1}.principle>svg{width:100%;height:320px}.principle>div p{max-width:36ch}.principle h3{font-size:2rem}.light{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:4rem 0;border-top:1px solid var(--color-border)}.purpose-options,.shade-options{display:flex;flex-wrap:wrap;gap:.5rem}.purpose-options button,.shade-options button{font-size:.8rem}.light h3{margin-top:2rem}.light>div>p{max-width:48ch}.care{display:grid;grid-template-columns:1fr 1fr;gap:1rem 5rem;padding:3rem;background:var(--color-sage);margin:1rem 0 4rem}.care>.eyebrow{grid-column:1/-1}.care h2{font-size:3rem}.care details{border-top:1px solid var(--color-text);padding:1rem 0}.care summary{cursor:pointer;font-weight:700}.care p{font-size:.9rem}.builder{background:var(--color-text);color:var(--color-background);padding:3rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem 3rem;min-width:0}.builder h2{font-size:4rem;grid-column:1}.builder>.eyebrow{grid-column:1/-1}.builder fieldset{border:0;padding:1rem 0;margin:0;min-width:0;border-top:1px solid var(--color-border)}.builder fieldset:nth-of-type(1){grid-column:1;grid-row:3/5}.builder fieldset:nth-of-type(2){grid-column:2;grid-row:2}.builder fieldset:nth-of-type(3){grid-column:2;grid-row:3}.builder button{border-color:var(--color-background);color:var(--color-background);font-size:.75rem}.builder button:hover{background:var(--color-text);outline:1px solid var(--color-background)}.builder button[aria-pressed=true]{background:var(--color-accent);color:var(--color-text);border-color:var(--color-accent)}.builder legend{font-size:.75rem;padding:0 0 .7rem}.counter{display:flex;align-items:center;gap:1.25rem}.counter output{font-size:4rem;line-height:1.2;min-width:1.3ch;text-align:center}.counter button{font-size:1.3rem;padding:.35rem .9rem}.builder :focus-visible{outline-color:var(--color-accent)}.edit-actions,.export-actions{display:flex;flex-wrap:wrap;gap:.5rem;grid-column:1/-1}.builder>label,.builder>textarea,.builder>p:not(.eyebrow){grid-column:1/-1}.builder>label{font-size:.8rem;margin-top:1rem}.builder>textarea{width:100%;min-height:190px;background:transparent;border:1px solid var(--color-border);padding:1rem;font:.75rem/1.7 'Courier New',monospace;resize:vertical}.export-actions button{background:var(--color-accent);color:var(--color-text);border-color:var(--color-accent)}#export-status{font-size:.75rem;min-height:1.4rem;margin:0}.enquiry{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:4rem 0}.enquiry p{max-width:43ch}.enquiry label{display:block;font-size:.8rem;margin-bottom:1rem}.enquiry input,.enquiry textarea{display:block;width:100%;background:transparent;border:1px solid var(--color-border);margin-top:.5rem;padding:.75rem;resize:vertical}.enquiry form>button{font-size:.8rem;background:var(--color-text);color:var(--color-background)}.enquiry form>p{font-size:.8rem;min-height:1.4rem}footer{border-top:1px solid var(--color-border);padding:1.5rem 0;display:flex;gap:2rem;justify-content:space-between;font-size:.65rem;align-items:center}.bench-intro{padding:3rem 0 1rem}.bench-intro h1{font-size:6rem}.bench-intro>p:last-child{max-width:65ch}.workbench{display:grid;grid-template-columns:.45fr 1.45fr 1fr;gap:2rem;padding:2rem 0 4rem;align-items:start}.parts{border-top:1px solid var(--color-border);padding-top:1rem;min-width:0}.parts ol{list-style:none;padding:0;margin:1.5rem 0}.parts li{display:flex;gap:.7rem;border-bottom:1px solid var(--color-border);padding:1rem 0;font-size:.7rem}.parts li span{font:1.2rem/1 'Courier New',monospace}.parts>a{font-size:.7rem}.workbench .scene{height:650px}.workbench .builder{display:block;padding:1.5rem}.workbench .builder h2{font-size:3rem;margin-bottom:2rem}.workbench .builder fieldset{margin:1rem 0}.workbench .builder textarea{margin:.5rem 0 1rem;min-height:220px}.workbench .edit-actions{margin:1rem 0}.workbench .counter output{font-size:3rem}.workbench .builder>.small{font-size:.7rem}.record{display:grid;grid-template-columns:1fr 1fr;gap:5rem;padding:4rem 0;border-top:1px solid var(--color-border)}.record dl{margin:0}.record dl>div{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--color-border);padding:1rem 0;font-size:.85rem}.record dd{margin:0;text-align:right;font-family:'Courier New',monospace}.record>div>p{max-width:45ch}.markers{position:absolute;inset:0;pointer-events:none}.markers span{position:absolute;transform:translate(-50%,-50%);background:var(--color-text);color:var(--color-background);border:1px solid var(--color-background);width:1.6rem;height:1.6rem;text-align:center;font:.7rem/1.5rem 'Courier New',monospace;border-radius:50%}@media(max-width:1100px){.catalogue{grid-template-columns:.5fr 1.7fr .6fr;gap:1rem}.collection-title h1{font-size:5rem}.invitation{padding:1rem}.scene{height:480px}.workbench{grid-template-columns:.4fr 1.2fr;gap:1.5rem}.workbench .builder{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;padding:2rem;gap:1rem 2rem}.workbench .scene{height:550px}.workbench .builder textarea{grid-column:1/-1}.mast>.caption{display:none}}@media(max-width:800px){.catalogue{grid-template-columns:1fr 3fr}.collection-title{grid-column:1/-1}.collection-title h1{writing-mode:horizontal-tb;transform:none;font-size:4.5rem}.catalogue>.lamp-study{grid-column:1/-1}.invitation{grid-column:1/-1;display:grid;grid-template-columns:.6fr 1fr 1fr;align-items:center;padding:1.5rem}.invitation .small{display:none}.invitation a span{display:inline-block;font-size:2rem;margin:0}.principle{grid-template-columns:1fr 1fr;gap:2rem}.principle>div{grid-column:1/-1}.principle>svg{height:300px}.light,.record{gap:2rem}.care{gap:1rem 2rem;padding:2rem}.builder{padding:2rem;gap:1rem 2rem}.enquiry{gap:3rem}}@media(max-width:550px){.wrap{width:90%}.mast{gap:1rem;padding:1rem 0}.brand{font-size:2.2rem}.brand span{font-size:.45rem;max-width:130px}.mast nav{gap:.6rem;font-size:.7rem}.catalogue{display:flex;flex-direction:column;padding-top:1.5rem}.collection-title h1{font-size:4rem;margin:1rem 0}.scene,.workbench .scene{height:390px}.lamp-study figcaption{font-size:.5rem;gap:.6rem}.invitation{grid-template-columns:.5fr 1fr;gap:1rem;padding:1.5rem}.edition{font-size:4rem}.invitation>a{grid-column:2;font-size:1.5rem}.invitation>p{font-size:.75rem}.principle{display:block;margin-top:2rem;padding:2rem 0}.principle h2{font-size:3.7rem}.principle>svg{height:230px}.principle>div{padding-top:1rem}.light,.record{grid-template-columns:1fr;gap:1rem;padding:2rem 0}.light h2,.record h2{font-size:3rem}.care{display:block;margin:1rem 0 2rem;padding:1.5rem}.care h2{font-size:2.6rem}.care>div{margin-top:2rem}.builder,.workbench .builder{display:block;padding:1.5rem}.builder h2{font-size:3.5rem}.builder fieldset{margin:1.5rem 0!important}.builder textarea{margin:.5rem 0 1rem}.builder>label{display:block}.edit-actions{margin:1.5rem 0}.enquiry{grid-template-columns:1fr;gap:1.5rem;padding:2.5rem 0}.enquiry h2{font-size:3rem}.bench-intro{padding:2rem 0 0}.bench-intro h1{font-size:4rem}.workbench{display:flex;flex-direction:column;gap:2rem;padding-bottom:2rem}.workbench>*{width:100%}.parts ol{display:grid;grid-template-columns:repeat(2,1fr);gap:0 1rem}.parts p.small{max-width:100%}.workbench .lamp-study{order:-1}.parts li{font-size:.7rem}.record dl>div{font-size:.75rem}footer{flex-direction:column;align-items:flex-start;gap:1rem}footer p{margin:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.scene-purposes{margin-top:1rem}.scene-purposes button{font-size:.7rem;padding:.5rem .8rem}.preview-choice{grid-column:1/-1;font-size:.75rem;margin-bottom:.5rem}
