/* An architectural showroom: warm stone, bronze edges and native controls. */
.project-stage[hidden],
.spatial-deck[hidden],
.stage-view-toggle[hidden]{display:none!important}

.project-stage{
  position:relative;
  margin-top:30px;
  overflow:hidden;
  border:1px solid #f1efdf66;
  border-radius:7px;
  background:#e5e2d5;
  box-shadow:0 1px 0 #fff8 inset,0 28px 70px -46px #080d08b3;
  isolation:isolate;
}
.project-stage::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  background:radial-gradient(ellipse at 48% 20%,#fffdf4,transparent 68%);
  pointer-events:none;
}
.project-stage>canvas{
  display:block;
  width:100%;
  height:clamp(390px,43vw,590px);
  cursor:grab;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.project-stage>canvas[data-dragging=true]{cursor:grabbing}
.stage-navigation{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 52px;
  align-items:center;
  gap:24px;
  width:min(660px,calc(100% - 72px));
  margin:-8px auto 0;
  padding:0 0 30px;
}
.stage-navigation>button{
  display:grid;
  place-items:center;
  width:52px;
  height:52px;
  padding:0;
  border:1px solid #34452d;
  border-radius:50%;
  color:#f5f4e9;
  background:#303d2a;
  font:inherit;
  font-size:25px;
  line-height:1;
  cursor:pointer;
  box-shadow:0 2px 0 #182016,0 8px 15px #10180c1a;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.stage-navigation>button:hover{background:#49563d;transform:translateY(-2px);box-shadow:0 4px 0 #182016,0 10px 17px #10180c26}
.stage-navigation>button:active{transform:translateY(2px);box-shadow:0 0 0 #182016,0 3px 8px #10180c26}
.stage-navigation>button:focus-visible,
.stage-selector>button:focus-visible,
.stage-caption a:focus-visible,
.stage-view-toggle:focus-visible{outline:2px solid #67774d;outline-offset:5px}
.stage-navigation .stage-caption{position:static;inset:auto;display:block;gap:0;width:auto;padding:0;transform:none;text-align:center;min-width:0;color:#26311f}
.stage-caption>[data-stage-count]{display:block;margin-bottom:10px;font-size:10px;line-height:1.2;letter-spacing:2px;font-variant-numeric:tabular-nums;color:#727a62}
.stage-caption h3{margin:0 0 9px;font-size:clamp(25px,3vw,36px);line-height:1.13;letter-spacing:-1px;color:#26311f}
.stage-caption p{max-width:49ch;min-height:2.9em;margin:0 auto 12px;font-size:13px;line-height:1.65;color:#5f6b53;text-wrap:balance}
.stage-caption a{display:inline-flex;align-items:center;gap:12px;min-height:36px;border-bottom:1px solid #75826980;color:#34472b;text-decoration:none;font-size:12px;font-weight:600;transition:color .2s ease,border-color .2s ease}
.stage-caption a:hover{color:#182311;border-color:#34472b}
.stage-selector{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;border-top:1px solid #727d5f38;padding:18px 24px 21px;background:#dcdccd70}
.stage-selector>button{
  min-height:40px;
  padding:9px 19px;
  border:1px solid #8792786e;
  border-radius:100px;
  background:transparent;
  color:#57644a;
  font:inherit;
  font-size:11px;
  line-height:1.3;
  letter-spacing:.6px;
  cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.stage-selector>button:hover{border-color:#647354;color:#283a21}
.stage-selector>button[aria-pressed=true]{border-color:#303d2a;background:#303d2a;color:#f1f1e4}
.stage-view-toggle{
  display:block;
  width:fit-content;
  margin:20px auto 0;
  padding:10px 3px;
  border:0;
  border-bottom:1px solid #c9d2ac61;
  color:#d2dcbc;
  background:transparent;
  font:inherit;
  font-size:12px;
  line-height:1.5;
  cursor:pointer;
}
.stage-view-toggle:hover{color:#f4f4e3;border-color:#dce2c0}

@media(max-width:640px){
  .project-stage{margin-top:25px;border-radius:6px}
  .project-stage>canvas{height:355px}
  .stage-navigation{grid-template-columns:40px minmax(0,1fr) 40px;width:calc(100% - 28px);gap:9px;margin-top:-15px;padding-bottom:20px}
  .stage-navigation>button{width:40px;height:44px;font-size:22px}
  .stage-caption>[data-stage-count]{font-size:9px;margin-bottom:9px;letter-spacing:1.7px}
  .stage-caption h3{font-size:25px;letter-spacing:-.7px}
  .stage-caption p{font-size:11px;line-height:1.6;min-height:4.8em;margin-bottom:6px}
  .stage-caption a{font-size:11px;min-height:36px}
  .stage-selector{padding:15px 9px 17px;gap:5px;flex-wrap:nowrap}
  .stage-selector>button{min-height:42px;padding:8px 11px;font-size:9px;letter-spacing:.3px}
  .stage-view-toggle{margin-top:14px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){
  .project-stage,.stage-view-toggle{display:none!important}
  .spatial-deck[hidden]{display:block!important}
  .stage-navigation>button,.stage-selector>button{transition:none}
}
@media print{
  .project-stage,.stage-view-toggle{display:none!important}
  .spatial-deck[hidden]{display:block!important}
}
