/* Journey cards (year page + logbook) */
.jcards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.jc a{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:236px;padding:16px 18px 14px;border-radius:20px;overflow:hidden;isolation:isolate;
  color:#FFF8EC;text-decoration:none;background:linear-gradient(160deg,hsl(var(--h) 45% 16%),#1F1352 60%,#2A1660);box-shadow:0 10px 30px rgba(14,10,43,.18);transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.jc a:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(14,10,43,.28)}
.jc a:focus-visible{outline:3px solid #F5B544;outline-offset:3px}
.jc-bg{position:absolute;inset:0;z-index:-2;background-size:cover;transform:scale(1.02);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.jc a:hover .jc-bg{transform:scale(1.09)}
.jc-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,10,43,.05) 0%,rgba(14,10,43,.35) 40%,rgba(14,10,43,.92) 100%)}
.jc-bg.plain{background:radial-gradient(120% 80% at 85% 0%,hsl(var(--h) 70% 55% / .35),transparent 60%),repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 14px)}
.jc-bg.plain::after{background:none}
.jc-ai{position:absolute;left:12px;top:12px;z-index:1;font:700 10.5px/1 Inter,system-ui,sans-serif;letter-spacing:.02em;padding:5px 8px;border-radius:999px;background:rgba(14,10,43,.62);color:#FFF8EC}
/* postage stamp: perforated edge = dotted pattern around a solid paper panel */
.jc-stamp{position:absolute;right:14px;top:12px;z-index:1;padding:4px;transform:rotate(6deg);transition:transform .45s cubic-bezier(.3,1.6,.5,1);
  background:radial-gradient(circle at 4px 4px,transparent 2.6px,#F7EFDD 3px) -4px -4px/8px 8px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
.jc-stamp .in{display:flex;flex-direction:column;align-items:center;gap:1px;width:66px;padding:6px 4px 5px;background:#F7EFDD;color:hsl(var(--h) 55% 28%);
  box-shadow:inset 0 0 0 1.5px hsl(var(--h) 55% 40% / .5)}
.jc a:hover .jc-stamp{transform:rotate(-3deg) scale(1.06)}
.jc-stamp .cc{font:800 8px/1.1 Inter,system-ui,sans-serif;letter-spacing:.08em;text-align:center;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jc-stamp b{font:800 19px/1.05 Inter,system-ui,sans-serif;letter-spacing:.04em}
.jc-stamp .d{font:700 8.5px/1 Inter,system-ui,sans-serif;letter-spacing:.1em;opacity:.8}
.jc-body{display:flex;flex-direction:column;gap:3px;position:relative}
.jc-t{font:700 36px/.95 Caveat,"Segoe Print","Bradley Hand",cursive;text-shadow:0 2px 12px rgba(0,0,0,.5);max-width:calc(100% - 10px);transform:rotate(-1.5deg);transform-origin:left}
.jc-v{color:#F5B544;font:700 22px/1 Caveat,"Segoe Print",cursive;transform:rotate(-1.5deg);transform-origin:left}
.jc-m{color:rgba(255,248,236,.82);font-size:13px;margin-top:2px}
.jc-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-top:8px}
.jc-route{width:132px;height:44px;flex:none}
.jc-route .arcs path{fill:none;stroke:#F5B544;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:240;stroke-dashoffset:0;filter:drop-shadow(0 0 3px rgba(224,138,30,.8))}
.jc-route circle.d{fill:#F7EFDD;stroke:#F5B544;stroke-width:1.5}
.jc-route circle.c{fill:#1F1352;stroke:#F7EFDD;stroke-width:1.2}
.jc-route circle.s{fill:#B9A8F0}
.jc-conn{font:700 11px/1 Inter,system-ui,sans-serif;color:rgba(255,248,236,.7);padding:5px 8px;border-radius:999px;background:rgba(255,248,236,.1);white-space:nowrap}
.jc-stat{margin-top:8px;font-size:12px;font-weight:700;color:#FFD99A}
.jc.wip .jc-bg{filter:saturate(.55) brightness(.8)}
/* entrance: cards rise in one after another, the route draws itself */
.jcards:not(.shown) .jc{opacity:0;transform:translateY(14px)}
.jcards.shown .jc{animation:jcIn .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i) * 70ms)}
.jcards.shown .jc-route .arcs path{animation:jcDraw .9s ease-out both;animation-delay:calc(var(--i) * 70ms + .25s)}
@keyframes jcIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes jcDraw{from{stroke-dashoffset:240}to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.jc a,.jc-bg,.jc-stamp{transition:none}.jc a:hover{transform:none}.jc a:hover .jc-bg{transform:scale(1.02)}.jcards .jc,.jcards.shown .jc,.jcards.shown .jc-route .arcs path{animation:none;opacity:1;transform:none}}
@media (max-width:600px){.jcards{grid-template-columns:1fr}.jc a{min-height:210px}}
/* logbook: Flights / Journeys switch */
.logview{display:inline-flex}
.jlog{padding:16px}
.jlog .note{margin:12px 2px 0}
#flog[hidden],#jlog[hidden]{display:none}

/* your own cover photo, pinned on the destination artwork */
.jc-snap{position:absolute;right:102px;top:12px;z-index:1;width:54px;padding:4px 4px 9px;background:#F7EFDD;border-radius:4px;transform:rotate(-7deg);
  box-shadow:0 8px 18px rgba(10,6,30,.45);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.jc-snap img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:2px}
.jc-snap::before{content:"";position:absolute;left:50%;top:-7px;width:30px;height:12px;margin-left:-15px;background:rgba(255,248,220,.75);transform:rotate(4deg);box-shadow:0 1px 2px rgba(0,0,0,.15)}
.jc a:hover .jc-snap{transform:rotate(-2deg) scale(1.08)}
