/* The rounded panel that opens a full case study. */

.veil{position:fixed;inset:0;z-index:40;background:var(--veil);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease} /* taste-skill-ignore: dims the page behind an open case */
.veil.on{opacity:1}
.panel{position:fixed;z-index:41;left:50%;top:calc(env(safe-area-inset-top,0px) + 24px);bottom:calc(env(safe-area-inset-bottom,0px) + var(--rail-h) + 16px);width:min(1120px,calc(100% - 32px));transform:translate(-50%,28px) scale(.98);opacity:0;background:var(--paper);border-radius:24px;overflow:hidden;transition:transform .42s var(--ease-out),opacity .22s ease;box-shadow:0 30px 80px rgba(0,0,0,.25); /* taste-skill-ignore: a dialog floats */
  display:flex;flex-direction:column}
.panel.on{transform:translate(-50%,0) scale(1);opacity:1}
.panel-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 18px 14px clamp(20px,4vw,48px);flex:none}
.panel-bar .mark{font-size:var(--fs-1)}
.panel-bar .yr{font-weight:700;font-size:var(--fs-1);font-variant-numeric:tabular-nums;margin-left:auto}
.x{width:44px;height:44px;border-radius:50%;border:0;background:var(--card);cursor:pointer;display:grid;place-items:center;color:var(--ink);flex:none;transition:background-color .2s ease,color .2s ease,transform var(--press) var(--ease-out)}
.x:hover{background:var(--ink);color:var(--paper)}
.panel-scroll{overflow-y:auto;overscroll-behavior:contain;flex:1;-webkit-overflow-scrolling:touch}

/* case content: problem → what we built → result, joined by a line, then the images */
.pc{padding:clamp(32px,5vw,56px) clamp(20px,4vw,48px) 0}
.pc .label{margin:0 0 22px}
.c-head{display:flex;align-items:center;gap:12px;--logo-h:20px;color:var(--ink)}
.c-head b{font-weight:700}
.c-head .brand{transition:color .2s ease}
.c-head .brand:hover{color:var(--blue)}
.c-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.c-node{display:flex;flex-direction:column;gap:12px;min-width:0;padding:22px;border-radius:18px;background:var(--tile-bg)}
.c-step{font-size:var(--fs-1);font-weight:700;color:var(--ink-soft)}
.c-main{margin:0;font-size:var(--fs-3);line-height:1.25;letter-spacing:0;text-wrap:pretty}
.c-main i{font-style:normal}
.c-sub{margin:auto 0 0;padding-top:10px;font-size:var(--fs-1);line-height:1.5;color:var(--ink-soft)}
.c-res{background:var(--blue);color:var(--on-blue)}
.c-res .c-step{color:var(--on-blue)}
.c-res .c-main{font-weight:800;letter-spacing:0}
.c-soon-line{margin:0;font-size:var(--fs-3);color:var(--ink-soft)}

/* the line between steps, a dot at each end; draws on as the case opens */

/* image strip: scroll it sideways (trackpad, swipe, drag, or the arrows) */
.strip{position:relative;margin-top:clamp(24px,3vw,36px)}
.strip-track{display:flex;gap:10px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:clamp(20px,4vw,48px);padding-inline:clamp(20px,4vw,48px);scrollbar-width:none;cursor:grab}
.strip-track::-webkit-scrollbar{display:none}
.strip-track.dragging{cursor:grabbing;scroll-snap-type:none}
.strip-track.dragging *{pointer-events:none}
.strip figure{margin:0;flex:none;height:clamp(240px,38vw,500px);position:relative;border-radius:12px;overflow:hidden;scroll-snap-align:start}
.strip img,.strip video{height:100%;width:auto;max-width:none;object-fit:cover;display:block;user-select:none;-webkit-user-drag:none}
.strip-nav{position:absolute;top:50%;width:48px;height:48px;margin-top:-24px;border-radius:50%;border:0;background:var(--paper);color:var(--ink);display:grid;place-items:center;cursor:pointer;
  box-shadow:0 6px 24px rgba(0,0,0,.18); /* taste-skill-ignore: floats over photos */
  transition:opacity .2s ease,transform var(--press) var(--ease-out)}
.strip-nav:active{transform:scale(.94)}
.strip-nav.prev{left:clamp(10px,2vw,24px)}
.strip-nav.next{right:clamp(10px,2vw,24px)}
.strip-nav[disabled]{opacity:0;pointer-events:none}
@media (hover:none){.strip-nav{display:none}}
.strip figcaption{position:absolute;left:12px;bottom:10px;color:#fff;font-size:var(--fs-1);font-weight:600;text-shadow:0 1px 8px rgba(0,0,0,.5)} /* taste-skill-ignore: keeps captions legible on photos */

/* stand-in for cases without images yet */
.soon{margin:clamp(36px,5vw,60px) clamp(20px,4vw,48px) 0;aspect-ratio:16/8;border-radius:16px;background:var(--ph);display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(20px,3vw,36px);color:#fff}
.soon strong{font-weight:800;text-transform:uppercase;font-size:var(--fs-5);line-height:.9;letter-spacing:0}
.soon span{margin-top:14px;font-size:var(--fs-2)}

/* previous / next */
/* the next step, right where a reader recognises their problem */
.case-start{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:clamp(36px,5vw,56px) clamp(20px,4vw,48px) 0}
.case-start p{margin:0;font-size:var(--fs-2);color:var(--ink-soft)}
.case-start .btn:active{transform:scale(.97)}
.panel-foot{display:flex;justify-content:space-between;gap:12px;padding:clamp(40px,5vw,64px) clamp(20px,4vw,48px) 32px}
.nav-btn{background:none;border:0;cursor:pointer;text-align:left;color:var(--ink);padding:0;max-width:48%;transition:transform var(--press) var(--ease-out)}
.nav-btn.next{text-align:right;margin-left:auto}
.nav-btn small{display:block;font-size:var(--fs-1);color:var(--ink-soft);font-weight:700;margin-bottom:6px}
.nav-btn span{font-weight:800;text-transform:uppercase;font-size:var(--fs-4);letter-spacing:0;line-height:1}
.nav-btn:hover span{color:var(--blue)}

@media (max-width:760px){
  .c-flow{grid-template-columns:minmax(0,1fr)}
  .c-node{padding:18px}
  .panel{top:calc(env(safe-area-inset-top,0px) + 12px);width:calc(100% - 20px);border-radius:20px}
}
