/* SoulCraft v9.1 — Chanson de rayon detail page only */
.archive-work-link {
  display: inline-flex;
  align-items: baseline;
  gap: 9px;
  color: inherit;
  text-decoration: none;
  transition: opacity 220ms ease;
}

.archive-work-link:hover,
.archive-work-link:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.archive-work-list:hover .archive-work-link:not(:hover) {
  opacity: .42;
}

.archive-detail-page {
  min-height: 100vh;
  margin: 0;
  background: #fff;
  color: #000;
  font-family: ui-monospace,"SFMono-Regular","SF Mono",Menlo,Monaco,Consolas,monospace;
}

.archive-detail-shell {
  box-sizing: border-box;
  min-height: 100vh;
  padding: 13vh 18vw 11vh;
}

.archive-detail-header {
  margin: 0 0 9vh;
}

.archive-detail-site,
.archive-detail-back {
  color: inherit;
  font-size: 9px;
  line-height: 1;
  letter-spacing: .04em;
  text-decoration: none;
}

.archive-detail-site:hover,
.archive-detail-site:focus-visible,
.archive-detail-back:hover,
.archive-detail-back:focus-visible {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.archive-detail-content {
  width: min(520px, 100%);
}

.archive-detail-kicker {
  margin: 0 0 15px;
  font-size: 7px;
  line-height: 1;
  letter-spacing: .02em;
}

.archive-detail-title {
  margin: 0 0 52px;
  font-size: clamp(17px, 2vw, 27px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: .02em;
}

.archive-detail-meta {
  margin: 0;
}

.archive-detail-row {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 22px;
  padding: 0 0 28px;
}

.archive-detail-row dt,
.archive-detail-row dd {
  margin: 0;
  font-size: 8px;
  line-height: 1.85;
  letter-spacing: .03em;
}

.archive-detail-row dt {
  opacity: .48;
}

.archive-detail-composition span {
  display: block;
}

.archive-detail-footer {
  margin-top: 38px;
}

@media (max-width: 760px) {
  .archive-detail-shell {
    padding: 11vh 9vw 9vh;
  }

  .archive-detail-row {
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 14px;
  }
}


/* Archive r7.2 — shared detail experience */
.archive-detail-page{opacity:0;animation:archivePageIn .72s ease forwards}
.archive-detail-page.is-leaving{animation:archivePageOut .34s ease forwards;pointer-events:none}
@keyframes archivePageIn{from{opacity:0}to{opacity:1}}
@keyframes archivePageOut{from{opacity:1}to{opacity:0}}
.archive-detail-nav{display:flex;align-items:center;gap:18px;margin-top:34px;font-size:8px;letter-spacing:.05em}
.archive-detail-nav a,.archive-detail-nav span{color:inherit;text-decoration:none;white-space:nowrap}
.archive-detail-nav a:hover,.archive-detail-nav a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.archive-detail-nav .is-current{opacity:.42}
.archive-detail-nav .is-disabled{opacity:.2;cursor:default;user-select:none}
.archive-detail-nav .archive-coming{font-size:7px;letter-spacing:.08em}
.archive-player{margin:0 0 46px}
.archive-player-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:13px}
.archive-player-toggle{display:none;border:0;background:transparent;padding:0;color:inherit;font:inherit;font-size:8px;letter-spacing:.06em;cursor:pointer}
.archive-player-toggle:disabled{opacity:.25;cursor:default}
.archive-player-track{font-size:7px;letter-spacing:.05em;opacity:.42;text-align:right}
.archive-player-blocks{display:grid;grid-template-columns:repeat(18,1fr);gap:4px;cursor:pointer}
.archive-player-blocks span{height:7px;background:rgba(0,0,0,.10);transition:background .12s ease}
.archive-player-blocks span.is-active{background:#000}
.archive-player-time{display:flex;justify-content:space-between;margin-top:8px;font-size:7px;letter-spacing:.04em;opacity:.42}
.archive-fullscreen-exit{position:absolute;z-index:30;right:18px;top:18px;border:1px solid rgba(0,0,0,.28);background:rgba(255,255,255,.78);backdrop-filter:blur(8px);padding:9px 12px;font:inherit;font-size:8px;letter-spacing:.07em;cursor:pointer;display:none}
.archive-equilibrium-frame:fullscreen .archive-fullscreen-exit{display:block}
.archive-equilibrium-frame:-webkit-full-screen .archive-fullscreen-exit{display:block}

/* Archive r7.3 — common lower player actions */
.archive-equilibrium-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:8px 0 34px;
}
.archive-action{
  border:1px solid rgba(0,0,0,.28);
  background:transparent;
  padding:10px 14px;
  color:inherit;
  font:inherit;
  font-size:8px;
  letter-spacing:.09em;
  cursor:pointer;
  transition:background .2s,color .2s;
}
.archive-action:hover,
.archive-action:focus-visible{
  background:#000;
  color:#fff;
}
.archive-visual-stage:fullscreen,
.archive-visual-stage:-webkit-full-screen{
  width:100vw;
  height:100vh;
  background:#fff;
}
.archive-visual-stage:fullscreen .archive-fullscreen-exit,
.archive-visual-stage:-webkit-full-screen .archive-fullscreen-exit{
  display:block;
}


/* Archive r7.4 — Lab 003 style work navigation */
.archive-lab-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:100%;margin-top:34px;font-size:8px;letter-spacing:.08em}
.archive-lab-nav a,.archive-lab-nav span{color:inherit;text-decoration:none;white-space:nowrap}
.archive-lab-nav a:hover,.archive-lab-nav a:focus-visible{text-decoration:underline;text-underline-offset:5px}
.archive-lab-nav .archive-lab-top{justify-self:center}
.archive-lab-nav .archive-lab-next{justify-self:end}
.archive-lab-nav .is-disabled{opacity:.22;cursor:default;user-select:none}
@media(max-width:760px){.archive-lab-nav{font-size:7px;gap:12px}}

/* r7.7 native fullscreen: the document enters fullscreen and the artwork fills it. */
body.archive-native-fullscreen{overflow:hidden;background:#f3f4f3}
body.archive-native-fullscreen .archive-detail-shell,
body.archive-native-fullscreen .archive-equilibrium-shell{padding:0!important;display:block!important;min-height:100vh}
body.archive-native-fullscreen .archive-detail-content,
body.archive-native-fullscreen .archive-equilibrium-info{display:none!important}
body.archive-native-fullscreen .archive-visual,
body.archive-native-fullscreen .archive-equilibrium-visual{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;margin:0!important;z-index:9998!important;display:block!important}
body.archive-native-fullscreen .archive-visual-stage,
body.archive-native-fullscreen .archive-equilibrium-frame{width:100vw!important;height:100vh!important;aspect-ratio:auto!important;border:0!important;background:#f3f4f3!important}
body.archive-native-fullscreen .archive-equilibrium-frame iframe{width:100%!important;height:100%!important}
body.archive-native-fullscreen .archive-frame-label{display:none!important}
body.archive-native-fullscreen .archive-fullscreen-exit{display:block;position:fixed;right:24px;top:20px;z-index:10000}

/* r7.8: reliable fullscreen fallback for local-file browser previews */
.archive-visual.is-fallback-fullscreen,
.archive-equilibrium-frame.is-fallback-fullscreen{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  z-index:999999!important;
  background:#f3f4f3!important;
  border:0!important;
}
.archive-equilibrium-frame.is-fallback-fullscreen iframe{width:100%!important;height:100%!important}
body.archive-native-fullscreen{overflow:hidden!important}


/* r7.10 — deterministic gallery fullscreen and iframe layering */
html.archive-fullscreen-open,html.archive-fullscreen-open body{overflow:hidden!important}
.archive-equilibrium-frame{isolation:isolate}
.archive-equilibrium-frame iframe{position:relative;z-index:1}
.archive-equilibrium-frame .archive-fullscreen-exit{
  position:fixed!important;right:24px!important;top:20px!important;z-index:2147483647!important;
  pointer-events:auto!important;display:none;background:rgba(255,255,255,.92)!important;
}
.archive-equilibrium-frame.is-fallback-fullscreen .archive-fullscreen-exit{display:block!important}
.archive-equilibrium-frame.is-fallback-fullscreen{display:block!important}
.archive-equilibrium-frame.is-fallback-fullscreen iframe{position:absolute!important;inset:0!important;z-index:1!important}


/* r7.11 — 001 fullscreen exit must remain clickable above the canvas */
.archive-visual.is-fallback-fullscreen .archive-visual-stage{position:fixed!important;inset:0!important;z-index:2147483000!important}
.archive-visual.is-fallback-fullscreen canvas{position:absolute!important;inset:0!important;z-index:1!important;pointer-events:none!important}
.archive-visual.is-fallback-fullscreen .archive-fullscreen-exit{
  display:block!important;position:fixed!important;right:24px!important;top:20px!important;
  z-index:2147483647!important;pointer-events:auto!important;touch-action:manipulation!important;
}


/* v14 — Archive001 footer baseline correction */
.archive-detail-footer .archive-lab-nav{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  align-items:center;
}
.archive-detail-footer .archive-lab-nav > *{
  display:flex;
  align-items:center;
  min-height:16px;
  line-height:16px;
  margin:0;
  padding:0;
  box-sizing:border-box;
}
.archive-detail-footer .archive-lab-prev{
  justify-content:flex-start;
  text-align:left;
}
.archive-detail-footer .archive-lab-top{
  justify-content:center;
  text-align:center;
}
.archive-detail-footer .archive-lab-next{
  justify-content:flex-end;
  text-align:right;
}
.archive-detail-footer .archive-lab-prev.is-disabled{
  opacity:.22;
  pointer-events:none;
}
