/* Castle reference: a stable heading above alternating, rising full-width panels. */
#focus.fm-castle{position:relative;height:var(--fm-scroll-height,auto);padding:clamp(64px,7vw,108px) 0 64px;background:var(--paper,#F3EDE2)}
#focus.fm-castle>.wrap{height:100%;position:relative}
#focus.fm-castle #fa{display:none!important}
#focus.fm-castle .fm-sticky{position:sticky;top:96px;height:calc(100svh - 116px);display:flex;flex-direction:column;gap:26px}
#focus.fm-castle .sec-head{display:grid;justify-items:center!important;text-align:center!important;max-width:780px;margin:0 auto!important;gap:12px!important;flex:0 0 auto}
#focus.fm-castle .sec-head h2{font-size:clamp(38px,4.2vw,58px)!important;line-height:1.06!important}
#focus.fm-castle .sec-head p{font-size:17px;line-height:1.35;max-width:67ch;margin:0}
#focus.fm-castle .zs.fm-stage{display:block;position:relative;flex:1;min-height:0;width:100%;overflow:hidden;border-radius:24px;background:var(--paper,#F3EDE2)}
#focus.fm-castle .fm-panel{position:absolute;inset:0;top:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;gap:clamp(26px,4.3vw,64px);padding:14px!important;margin:0;background:var(--night,#15120D);border-radius:24px!important;border:0;box-shadow:none;transform:translate3d(0,100%,0);will-change:transform;overflow:hidden;transform-origin:center}
#focus.fm-castle .fm-panel:first-child{transform:none}
#focus.fm-castle .fm-panel::after{display:none}
#focus.fm-castle .fm-panel:nth-child(even) .zc-fig{grid-column:2;grid-row:1}
#focus.fm-castle .fm-panel:nth-child(even) .zc-b{grid-column:1;grid-row:1}
#focus.fm-castle .zc-fig{align-self:stretch;height:100%;min-height:0;aspect-ratio:auto!important;border-radius:18px!important;background:var(--night,#15120D);overflow:hidden}
#focus.fm-castle .zc-fig canvas{border-radius:18px}
#focus.fm-castle .zc-fig .area-q{font-size:clamp(20px,2.15vw,29px);line-height:1.24;max-width:25ch;left:26px;right:26px;bottom:26px}
#focus.fm-castle .zc-b{align-self:center;min-width:0;padding:16px clamp(14px,2.2vw,32px) 16px 0}
#focus.fm-castle .fm-panel:nth-child(even) .zc-b{padding:16px 0 16px clamp(14px,2.2vw,32px)}
#focus.fm-castle .zc-b h3{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(30px,3vw,43px);line-height:1.06;letter-spacing:-.026em;color:var(--night-text,#EDE5D4);margin:0 0 20px}
#focus.fm-castle .zc-b h3 svg{display:none}
#focus.fm-castle .zc-b p{font-size:clamp(16px,1.5vw,18px);line-height:1.44;color:rgba(237,229,212,.8);margin:0 0 10px;max-width:44ch}
#focus.fm-castle .zc-del{list-style:none;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin:24px 0 0;padding:0;border:0}
#focus.fm-castle .zc-del li{display:flex!important;align-items:center;min-width:0;font-size:14px!important;line-height:1.3;padding:11px 13px;border:0;border-radius:9px;background:rgba(237,229,212,.065);color:#EDE5D4;transform:translate(var(--fm-tile-x,0px),var(--fm-tile-y,0px));transition:transform .6s cubic-bezier(.18,1.3,.35,1),background-color .2s ease}
#focus.fm-castle .zc-del .fm-tile-label{cursor:text;user-select:text;-webkit-user-select:text}
#focus.fm-castle .zc-del .fm-tile-dragging{transition:background-color .2s ease;z-index:1}
@media(hover:hover) and (pointer:fine){
  #focus.fm-castle .zc-del .fm-tile{cursor:grab}
  #focus.fm-castle .zc-del .fm-tile:hover{background:rgba(237,229,212,.11)}
  #focus.fm-castle .zc-del .fm-tile-dragging{cursor:grabbing}
}
#focus.fm-castle .zc-del canvas{display:none}
/* Word entry is subtle and runs once. Text and whitespace keep their native order. */
.fm-word{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.12em;margin-bottom:-.12em}
.fm-word>span{display:inline-block;transform:translateY(102%);opacity:0;transition:transform .7s cubic-bezier(.22,.7,.2,1) var(--fm-delay,0ms),opacity .5s ease var(--fm-delay,0ms)}
.fm-revealed .fm-word>span{transform:none;opacity:1}
@media(max-width:1000px) and (min-width:701px){
  #focus.fm-castle .fm-panel{gap:24px}
  #focus.fm-castle .zc-b h3{font-size:32px;margin-bottom:15px}
  #focus.fm-castle .zc-b p{font-size:16px}
  #focus.fm-castle .zc-del{margin-top:16px}
  #focus.fm-castle .zc-del li{font-size:13px!important;padding:10px 11px}
}
@media(max-width:700px){
  #focus.fm-castle{padding-top:56px;padding-bottom:40px}
  #focus.fm-castle .fm-sticky{top:82px;height:calc(100svh - 100px);gap:20px}
  #focus.fm-castle .sec-head{gap:10px!important}
  #focus.fm-castle .sec-head h2{font-size:38px!important}
  #focus.fm-castle .sec-head p{font-size:15px;line-height:1.32;max-width:42ch}
  #focus.fm-castle .zs.fm-stage{border-radius:22px}
  #focus.fm-castle .fm-panel{display:flex;align-items:flex-end;gap:0;padding:0!important;border:0;border-radius:22px!important;background:var(--night,#15120D)}
  #focus.fm-castle .fm-panel .zc-fig{position:absolute;inset:0;border-radius:22px!important}
  #focus.fm-castle .zc-fig::after{background:linear-gradient(180deg,rgba(21,18,13,.12),rgba(21,18,13,.76) 35%,rgba(21,18,13,.95) 100%)}
  #focus.fm-castle .zc-fig .area-q{display:none}
  #focus.fm-castle .fm-panel .zc-b{position:relative;z-index:2;align-self:flex-end;padding:30px 24px!important;width:100%}
  #focus.fm-castle .zc-b h3{font-size:32px;line-height:1.06;color:#F3EDE2;margin-bottom:18px}
  #focus.fm-castle .zc-b p{font-size:16px;line-height:1.4;color:#E9E1D1}
  #focus.fm-castle .zc-del{border:0;margin-top:20px;gap:8px}
  #focus.fm-castle .zc-del li{border:0;font-size:13px!important;line-height:1.3;color:#EDE5D4;padding:10px 11px}
}
/* Respect reduced motion, browser zoom and short viewports with the same panels. */
#focus.fm-castle.fm-natural{height:auto!important}
#focus.fm-castle.fm-natural>.wrap{height:auto}
#focus.fm-castle.fm-natural .fm-sticky{position:relative;top:0;height:auto;gap:36px}
#focus.fm-castle.fm-natural .zs.fm-stage{overflow:visible;display:grid;gap:28px;flex:none}
#focus.fm-castle.fm-natural .fm-panel{position:relative;inset:auto;min-height:440px;transform:none!important;will-change:auto}
#focus.fm-castle.fm-natural .zc-fig{min-height:410px}
@media(max-width:700px){
  #focus.fm-castle.fm-natural .fm-panel{min-height:560px}
  #focus.fm-castle.fm-natural .zc-fig{min-height:0}
}
@media(prefers-reduced-motion:reduce){
  .fm-word>span{transform:none!important;opacity:1!important;transition:none!important}
  #focus.fm-castle .fm-panel{will-change:auto}
  #focus.fm-castle .zc-del .fm-tile{transform:none!important;transition:none;cursor:default}
}

/* White-paper focus panels: keep the image dark, give the reading area air. */
#focus.fm-castle .fm-panel{background:#FBF8F2}
#focus.fm-castle .zc-b h3{color:#1B1712}
#focus.fm-castle .zc-b p{color:#5B5145}
#focus.fm-castle .zc-del li{background:#F0EADF;color:#1B1712}
@media(hover:hover) and (pointer:fine){#focus.fm-castle .zc-del .fm-tile:hover{background:#E9E1D1}}
@media(max-width:700px){
 #focus.fm-castle .fm-panel{display:flex;flex-direction:column;align-items:stretch;min-height:0!important;padding:10px!important;background:#FBF8F2}
 #focus.fm-castle .fm-panel .zc-fig{position:relative;inset:auto;flex:none;height:200px;min-height:0;border-radius:16px!important}
 #focus.fm-castle .zc-fig::after{background:linear-gradient(180deg,transparent,rgba(21,18,13,.3))}
 #focus.fm-castle .fm-panel .zc-b{align-self:stretch;padding:24px 14px 20px!important}
 #focus.fm-castle .zc-b h3{color:#1B1712}
 #focus.fm-castle .zc-b p{color:#5B5145}
 #focus.fm-castle .zc-del li{color:#1B1712}
}

/* Taller desktop copy keeps its stacking interaction without clipping text. */
#focus.fm-castle.fm-tall-stack{height:auto!important}
#focus.fm-castle.fm-tall-stack>.wrap{height:auto}
#focus.fm-castle.fm-tall-stack .fm-sticky{position:relative;top:0;height:auto;gap:36px}
#focus.fm-castle.fm-tall-stack .zs.fm-stage{overflow:visible;display:block;flex:none}
#focus.fm-castle.fm-tall-stack .fm-panel{position:sticky;inset:auto;top:var(--fm-card-top,108px);min-height:440px;margin-bottom:32px;transform:none!important;will-change:auto}
#focus.fm-castle.fm-tall-stack .fm-panel:last-child{margin-bottom:0}
#focus.fm-castle.fm-tall-stack .zc-fig{min-height:410px}

/* Phone cards read in normal flow, then pin while the next card covers them. */
@media(max-width:700px){
 #focus.fm-castle.fm-tall-stack .fm-panel{display:flex;min-height:0;margin-bottom:28px}
 #focus.fm-castle.fm-tall-stack .fm-panel .zc-fig{height:200px;min-height:0}
 #focus.fm-castle.fm-tall-stack .zs.fm-stage{border-radius:0}
}
