.app-main{position:relative}
.app-view{
  display:flex;position:absolute;inset:0;height:auto;
  visibility:hidden;z-index:1;background-color:var(--paper);
}
.app-view.is-active{visibility:visible;z-index:2}
.app-view.pt-under{visibility:visible;z-index:2}
.app-view.pt-page{visibility:visible;z-index:3;pointer-events:none}

#workshop,#blueprint-archive{
  --paper:#F2EEE5;
  --paper-dark:#E8DFCF;
  --ink:#252A31;
  --ink-muted:#5C6672;
  --accent:#1D4E89;
  --accent-light:#2F69AA;
  --blueprint:#7893AC;
  --blueprint-light:#AEB8C4;
  --border:#CFC5B3;
  --border-light:#DFD6C6;
  --pt-flap-crease:rgba(37,42,49,.30);
  --pt-flap-hl:rgba(255,255,255,.62);
  --pt-flap-mid:rgba(255,255,255,.14);
  --pt-flap-edge:rgba(37,42,49,.12);
  color:var(--ink);
  background-image:
    linear-gradient(90deg,rgba(7,17,31,.06),transparent 26px),
    linear-gradient(rgba(29,78,137,.05) 1px,transparent 1px);
  background-size:100% 100%,100% 24px;
}
[data-theme="dark"] #workshop,[data-theme="dark"] #blueprint-archive{
  --paper:#0F1B2C;
  --paper-dark:#0B1524;
  --ink:#E8DFCF;
  --ink-muted:#9DADBF;
  --accent:#8FB3DA;
  --accent-light:#B7CDE6;
  --blueprint:#2A3F5C;
  --blueprint-light:#3B5476;
  --border:#22344D;
  --border-light:#192940;
  --pt-flap-crease:rgba(0,0,0,.5);
  --pt-flap-hl:rgba(174,184,196,.16);
  --pt-flap-mid:rgba(174,184,196,.05);
  --pt-flap-edge:rgba(0,0,0,.25);
  background-image:
    linear-gradient(90deg,rgba(0,0,0,.25),transparent 26px),
    linear-gradient(rgba(143,179,218,.05) 1px,transparent 1px);
}
#workshop .view-title,#blueprint-archive .view-title{font-family:var(--font-serif);font-weight:500;letter-spacing:-.015em;line-height:1.05}
#workshop .view-title em,#blueprint-archive .view-title em{font-style:italic;font-weight:400;color:var(--accent)}
#workshop .view-rule,#blueprint-archive .view-rule{background:linear-gradient(90deg,var(--accent),transparent);opacity:.5}

@media (prefers-reduced-motion:reduce){
  .app-view.pt-page{clip-path:none!important}
}

.app-bottomnav{display:none!important}
.m-pager{
  position:fixed;left:0;right:0;bottom:0;z-index:950;display:flex;align-items:center;gap:10px;
  height:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px));
  padding:6px max(12px,env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 10px) max(12px,env(safe-area-inset-left,0px));
  background:rgba(239,237,232,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:2px solid var(--border);
}
[data-theme="dark"] .m-pager{background:rgba(16,16,18,.97)}
.m-pager button{-webkit-tap-highlight-color:transparent;cursor:pointer}
.m-pager svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
.m-pager__prev{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--border);border-radius:50%;background:transparent;color:var(--ink)}
.m-pager__prev:disabled{opacity:.3;cursor:default}
.m-pager__where{
  flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:.5rem;padding:0 .4rem;
  border:0;background:none;color:var(--ink-muted);text-align:left;
  font:500 .62rem var(--font-mono);letter-spacing:.1em;text-transform:uppercase;
}
.m-pager__where b{color:var(--ink);font-weight:700;letter-spacing:.06em;white-space:nowrap}
.m-pager__where span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.m-pager__where svg{width:14px;height:14px;margin-left:-.1rem;transition:transform .2s ease}
.m-pager__where[aria-expanded="true"] svg{transform:rotate(180deg)}
.m-pager__next{
  flex:none;min-height:44px;display:inline-flex;align-items:center;gap:.45rem;padding:0 1rem 0 1.1rem;
  border:0;border-radius:999px;background:var(--ink);color:var(--paper);
  font:600 .82rem var(--font-body);box-shadow:0 6px 14px -8px rgba(0,0,0,.55);
}
.m-pager__shut{display:none}
.m-pager__next.is-close .m-pager__go{display:none}
.m-pager__next.is-close .m-pager__shut{display:block}
.m-pager button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.m-toc{
  position:fixed;z-index:951;left:max(12px,env(safe-area-inset-left,0px));right:max(12px,env(safe-area-inset-right,0px));
  bottom:calc(var(--bottomnav-h) + env(safe-area-inset-bottom,0px) + 8px);
  display:block;padding:.5rem;border:1px solid var(--border);border-radius:14px;background:var(--paper);color:var(--ink);
  box-shadow:0 18px 40px -12px rgba(0,0,0,.45);transform-origin:50% 100%;animation:m-toc-in .22s ease;
}
.m-toc[hidden]{display:none}
.m-toc__head{padding:.35rem .6rem .45rem;font:600 .58rem var(--font-mono);letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.m-toc button{
  display:grid;grid-template-columns:2.2rem 1fr;align-items:center;width:100%;min-height:52px;padding:.45rem .6rem;
  border:0;border-radius:10px;background:none;color:var(--ink);text-align:left;cursor:pointer;
}
.m-toc button b{font:600 .66rem var(--font-mono);color:var(--accent)}
.m-toc button span{display:flex;flex-direction:column;font:600 .95rem var(--font-body)}
.m-toc button small{font:italic 400 .76rem var(--font-body);color:var(--ink-muted)}
.m-toc button.is-active{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.m-toc button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@keyframes m-toc-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

.m-closebook{
  position:fixed;z-index:9999;display:grid;place-items:center;padding:0;
  border:1px solid var(--border);background:var(--paper);color:var(--ink);cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.m-closebook svg{width:15px;height:15px;fill:none;stroke:var(--ink);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.m-closebook:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
html.dossier-closed .m-closebook,html.cv-open .m-closebook{display:none}
@media (prefers-reduced-motion:reduce){.m-toc{animation:none}}
