*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}body.canvas{--canvas-color:#e3dbcc;--canvas-ink:#373a32;--weave-opacity:.2;--weave-size:4px;--relief-shade:rgb(88 69 42 / .42);background-image:radial-gradient(ellipse at 10% 0%,#fff9e838,transparent 65%)}body.canvas::after{position:absolute;z-index:-1}a{color:inherit;text-decoration:none}button,input{font:inherit}button{color:inherit}a,button{-webkit-tap-highlight-color:transparent}::selection{background:#525b45;color:#fff9ef}.skip{position:fixed;top:8px;left:8px;z-index:10;padding:12px;background:#fff9ef;transform:translateY(-150%)}.skip:focus{transform:none}:focus-visible{outline:2px solid var(--focus);outline-offset:6px}.wrap{width:min(1320px,100%);margin:auto;padding-inline:6vw}.site-header{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:104px;border-bottom:1px solid var(--rule)}.brand{font-family:Georgia,serif;font-size:22px;line-height:1.05;letter-spacing:-.8px}.brand span{display:block}nav{display:flex;gap:34px;font-size:12px}nav a{padding:9px 0;position:relative}nav a[aria-current=page]::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:currentColor}.eyebrow{text-transform:uppercase;font-size:10px;letter-spacing:.18em;font-weight:400}.intro{padding-block:44px 60px}.intro-top{display:flex;justify-content:space-between;gap:20px}.display{font-family:Georgia,'Times New Roman',serif;font-size:clamp(64px,9vw,132px);font-weight:700;line-height:.95;letter-spacing:-.065em;margin:46px 0 28px}.display em{font-weight:400}.intro-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px}.intro-bottom p{max-width:320px;line-height:1.7;margin:0}.text-link{display:inline-flex;align-items:center;gap:25px;border-bottom:1px solid var(--rule-strong);padding-block:7px;font-size:12px}.gallery-head{border-top:1px solid var(--rule);padding-block:22px;display:flex;justify-content:space-between;align-items:center}.gallery-head h2{margin:0}.gallery-head p{margin:0;font-size:11px;color:var(--muted)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:70px 8vw;padding:28px 0 80px;align-items:start}.work{margin:0}.work:nth-child(even){transform:translateY(110px)}.work-open{display:block;width:100%;background:none;border:0;padding:0;cursor:zoom-in}.work img{width:100%;height:auto;display:block;box-shadow:2px 4px 7px #382f2026;transition:box-shadow .2s}.work-open:hover img{box-shadow:3px 7px 14px #382f2038}.work figcaption{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-top:17px}.work h3{font-size:12px;font-weight:400;margin:0}.work .details{font-size:10px;line-height:1.6;text-align:right}.work-number{font-size:10px;letter-spacing:.07em;margin-bottom:15px;display:block;color:var(--muted)}.gallery-end{margin-top:100px;padding-block:28px 55px;border-top:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center;gap:24px}.gallery-end p{font:italic 27px Georgia,serif;margin:0}.site-footer{display:flex;justify-content:space-between;gap:20px;padding-block:24px;border-top:1px solid var(--rule);font-size:10px;color:var(--muted)}.site-footer a{text-decoration:underline;text-underline-offset:4px}.inner-intro{padding-block:46px 45px}.inner-intro .display{margin-bottom:0}.about-grid{display:grid;grid-template-columns:.9fr 1fr;gap:9vw;padding-block:25px 90px;align-items:start}.about-image{margin:0}.about-image img{width:100%;height:auto;display:block;box-shadow:2px 4px 7px #382f2026}.about-image figcaption{font-size:10px;margin-top:15px;color:var(--muted)}.about-copy{padding-top:25px}.about-copy h2{font:34px/1.15 Georgia,serif;letter-spacing:-1px;margin:0 0 27px}.about-copy p{line-height:1.85;margin:0 0 22px}.facts{margin-block:40px;border-top:1px solid var(--rule)}.facts div{display:grid;grid-template-columns:105px 1fr;gap:20px;padding:15px 0;border-bottom:1px solid var(--rule)}.facts dt{font-size:10px;text-transform:uppercase;letter-spacing:.1em}.facts dd{font-size:12px;margin:0}.source-note{font-size:10px!important;color:var(--muted)}.source-note a{text-decoration:underline;text-underline-offset:3px}.contact-layout{padding-block:20px 100px;display:grid;grid-template-columns:1fr 1fr;gap:9vw}.contact-lead{font:32px/1.35 Georgia,serif;letter-spacing:-.8px;max-width:400px;margin:0 0 25px}.contact-copy{font-size:14px;line-height:1.8;max-width:340px}.contact-links{border-top:1px solid var(--rule-strong)}.contact-row{padding:28px 0;border-bottom:1px solid var(--rule-strong);display:flex;justify-content:space-between;gap:12px}.contact-row small{display:block;text-transform:uppercase;font-size:9px;letter-spacing:.15em;margin-bottom:12px}.contact-row span{font-size:clamp(12px,1.5vw,18px);overflow-wrap:anywhere}.contact-row b{font-size:20px;font-weight:400}.contact-after{font:italic 28px Georgia,serif;text-align:center;border-top:1px solid var(--rule);margin:0;padding-block:55px 80px}.viewer{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;border:0;margin:0;padding:24px 4vw;background:var(--canvas-color);color:var(--canvas-ink)}.viewer::backdrop{background:#25271fdd}.viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:18px}.viewer-top,.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px}.viewer button{border:1px solid var(--rule-strong);background:transparent;padding:10px 14px;cursor:pointer;min-height:44px}.viewer button:hover{background:var(--hover)}.viewer figure{min-height:0;margin:0;display:flex;justify-content:center;align-items:center}.viewer img{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.viewer-bottom p{font-size:12px;margin:0;line-height:1.6}.viewer-bottom a{font-size:10px;text-decoration:underline;text-underline-offset:4px}.viewer-arrows{display:flex;gap:9px}.viewer-count{font-size:11px;letter-spacing:.1em}.no-scroll{overflow:hidden}@media(min-width:1450px){.wrap{padding-inline:86px}}@media(max-width:700px){.wrap{padding-inline:6vw}.site-header{min-height:94px;gap:16px}.brand{font-size:19px}nav{gap:20px;font-size:11px}.intro{padding-block:30px 40px}.intro-top .eyebrow:last-child{display:none}.display{font-size:clamp(55px,12.5vw,86px);margin-top:40px}.intro-bottom{align-items:start;flex-direction:column;gap:22px}.gallery-grid{gap:45px;grid-template-columns:1fr;padding-top:15px;padding-bottom:40px}.work:nth-child(even){transform:none}.work figcaption{margin-top:14px}.gallery-end{margin-top:15px;align-items:start;flex-direction:column}.gallery-end p{font-size:24px}.inner-intro{padding-block:30px}.about-grid{grid-template-columns:1fr;gap:20px;padding-bottom:55px}.about-image{max-width:440px}.about-copy{padding-top:10px}.contact-layout{grid-template-columns:1fr;gap:40px;padding-bottom:55px}.contact-lead{font-size:30px}.contact-row span{font-size:15px}.contact-after{padding-block:40px;font-size:24px}.viewer{padding:16px;gap:14px}.viewer-bottom{flex-wrap:wrap}.viewer-bottom p{font-size:11px}.viewer-bottom a{display:block;margin-top:5px}.viewer-arrows{margin-left:auto}.site-footer{font-size:9px}.gallery-head p{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work img{transition:none}}

/* Material palettes: both use the same artwork and upper-left light. */
:root {
  --rule: #4a46372b;
  --rule-strong: #4a463777;
  --muted: #5b5d50;
  --focus: #414c36;
  --hover: #fff9eb60;
  color-scheme: light;
}
[data-theme="dark"] { color-scheme: dark; }
[data-theme="dark"] body.canvas {
  --canvas-color: #242625;
  --canvas-ink: #e4e1d8;
  --relief-light: rgb(184 190 183 / .32);
  --relief-shade: rgb(0 0 0 / .95);
  --weave-opacity: .18;
  --rule: #e1e4d82b;
  --rule-strong: #e1e4d855;
  --muted: #b3b8ae;
  --focus: #dedfc7;
  --hover: #ffffff12;
  background-image: radial-gradient(ellipse at 10% 0%, #b2bbaa0b, transparent 65%);
}
[data-theme="dark"] body.canvas::after { mix-blend-mode: soft-light; }
[data-theme="dark"] .canvas-raised {
  text-shadow: calc(-1 * var(--relief-x)) calc(-1 * var(--relief-y)) 1px var(--relief-light),
    var(--relief-x) var(--relief-y) 1px var(--relief-shade),
    3px 4px 5px rgb(0 0 0 / .6);
}
.theme-toggle {
  display: inline-flex;
  gap: 8px;
  align-items: center;
  background: transparent;
  color: var(--canvas-ink);
  border: 1px solid var(--rule-strong);
  border-radius: 20px;
  padding: 8px 12px;
  min-height: 44px;
  cursor: pointer;
  font-size: 11px;
}
.theme-toggle:hover { background: var(--hover); }
.theme-dot { width: 9px; height: 9px; border-radius: 50%; border: 1px solid currentColor; }
.theme-toggle[aria-pressed="true"] .theme-dot { background: currentColor; }
.site-footer { align-items: center; flex-wrap: wrap; }
@media (forced-colors: active) {
  [data-theme="dark"] .canvas-raised { color: CanvasText; text-shadow: none; }
  .theme-toggle { border-color: ButtonText; }
}

/* Room visualizer: artwork is composited in HTML canvas in cm units. */
.work h3 .room-open { display:flex; align-items:center; gap:12px; margin-top:12px; padding:7px 0; border:0; border-bottom:1px solid var(--rule-strong); background:none; color:var(--canvas-ink); font-size:11px; cursor:pointer; min-height:36px; }
.viewer [hidden] { display:none!important; }
.view-switch { display:flex; gap:0; }
.view-switch button { font-size:12px; }
.view-switch button + button { border-left:0; }
.view-switch button[aria-pressed="true"] { background:var(--hover); box-shadow:inset 0 -2px currentColor; }
.viewer-stage { overflow:hidden; }
.room-panel { width:100%; height:100%; overflow:auto; display:flex; align-items:center; }
.room-panel canvas { display:block; flex:none; width:100%; min-width:840px; height:auto; }
.viewer[data-view="room"] .viewer-stage { align-items:stretch; }
.room-notes { font-size:10px!important; color:var(--muted); margin-top:5px!important; }
.room-mobile-note { display:none; }
.room-error { color:var(--canvas-ink); margin-top:8px!important; }
@media(min-width:1000px) { .room-panel canvas { width:auto; min-width:0; height:100%; max-width:100%; margin:auto; object-fit:contain; aspect-ratio:3/2; } }
@media(max-width:700px) {
  .viewer-top { flex-wrap:wrap; gap:10px; }
  .view-switch { order:3; width:100%; }
  .view-switch button { flex:1; }
  .room-mobile-note { display:inline; }
  .room-notes { max-width:250px; }
}

/* Compact language dropdown shares the navigation row. */
.header-controls { display:flex; flex-direction:row; align-items:center; gap:24px; }
.header-controls nav { white-space:nowrap; }
.language-picker { position:relative; z-index:5; flex:none; }
.language-picker summary { display:flex; align-items:center; justify-content:center; gap:6px; min-height:40px; padding:8px 2px; cursor:pointer; list-style:none; }
.language-picker summary::-webkit-details-marker { display:none; }
.globe-icon { width:20px; height:20px; }
.language-chevron { width:8px; height:5px; }
.language-picker[open] .language-chevron { transform:rotate(180deg); }
.language-menu { position:absolute; right:0; top:calc(100% + 6px); width:174px; padding:6px; background:var(--canvas-color); border:1px solid var(--rule-strong); box-shadow:0 8px 24px #0003; }
.language-menu button { display:flex; align-items:center; gap:15px; width:100%; min-height:44px; padding:10px 12px; background:none; color:var(--canvas-ink); border:0; text-align:left; font-size:12px; cursor:pointer; }
.language-menu button span { color:var(--muted); font-size:10px; letter-spacing:.08em; }
.language-menu button:hover, .language-menu button[aria-pressed="true"] { background:var(--hover); }
:lang(de) .display { font-size:clamp(54px,8vw,116px); }
@media(max-width:700px) {
  .header-controls { flex-direction:row; align-items:center; gap:14px; }
  .header-controls nav { gap:16px; }
  .site-header { gap:12px; }
  :lang(de) .display { font-size:clamp(36px,10.6vw,65px); }
}
@media(max-width:700px) {
  :lang(de) .gallery-head { flex-direction:column; align-items:flex-start; gap:10px; }
}

@media(max-width:360px) {
  .site-header .brand { font-size:16px; }
  .site-header { gap:8px; }
  .header-controls { gap:9px; }
  .header-controls nav { gap:12px; font-size:10px; }
  .language-picker summary { gap:4px; }
  .globe-icon { width:18px; height:18px; }
}
