@import url("https://fonts.googleapis.com/css2?family=Caveat:wght@600&family=Fredoka:wght@400;500;600&display=swap");

/* Full-browser stage: keep the approved square artwork as a coordinate plane. */
/* The status panel is only rendered on the normal WebP Dishes page. */
.fd-status{position:absolute;z-index:5;right:2vw;top:37%;width:clamp(260px,25vw,360px);padding:14px;border:1px solid #c4aa6b66;border-radius:7px;background:rgba(7,29,35,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 8px 30px #0003;color:#f7ebcf}
.fd-status h2{margin:0 0 10px;padding:0 2px;color:#d8c393;text-align:center;font:600 10px/1.3 Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}
.fd-status-list{display:grid;gap:6px}
.fd-status-row{display:grid;grid-template-columns:30px 60px minmax(0,1fr);align-items:center;gap:5px;width:100%;min-height:68px;margin:0;padding:7px 6px;border:1px solid transparent;border-radius:4px;background:rgba(255,255,255,.035);color:#eee3ca;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}
.fd-status-row img{width:60px;height:52px;object-fit:contain;filter:drop-shadow(0 3px 4px #0005)}
.fd-status-number{font:15px/1 Georgia,serif;color:#c8b383}
.fd-status-name{font:12px/1.35 Arial,sans-serif;overflow-wrap:break-word}
.fd-status-name small{display:block;margin-top:4px;color:#f0cc80;font:8px/1.2 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.fd-status-row.is-current{border-color:#d5b66fa6;background:rgba(209,173,99,.2)}
.fd-status-row.is-current .fd-status-number{color:#ffdf98}
.fd-status-row:hover{background:rgba(209,173,99,.14);border-color:#d5b66f77}
.fd-status-row:focus-visible{outline:2px solid #f0cc80;outline-offset:2px}
.fd-status-row:disabled{cursor:wait}
@media(min-width:651px) and (max-width:1100px){
  .fd-status{padding:9px;right:12px}
  .fd-status-row{grid-template-columns:25px 44px minmax(0,1fr);gap:3px;padding:5px 3px}
  .fd-status-row img{width:44px;height:48px}
  .fd-status-name{font-size:11px}
}
@media(max-width:650px){
  .fd-scene.fd-has-status{min-height:calc(100vw + 500px)!important}
  .fd-status{top:calc(100vw + 250px);right:4vw;width:250px;max-width:92vw;padding:10px}
  .fd-status h2{margin-bottom:7px;font-size:9px}
  .fd-status-list{gap:4px}
  .fd-status-row{grid-template-columns:30px 52px minmax(0,1fr);min-height:48px;padding:3px 6px}
  .fd-status-row img{width:52px;height:42px}
  .fd-status-name{font-size:11px}
  .fd-status-name small{margin-top:2px}
}

/* First-visit introduction: theatrical teal curtains with warm gold trim. */
.fd-intro-overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;overflow:hidden;padding:clamp(18px,4vw,58px);background:rgba(2,17,22,.58);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.fd-curtain{position:absolute;z-index:0;top:0;bottom:0;width:52%;background:repeating-linear-gradient(90deg,#063d46 0,#0b5660 8%,#073f49 17%,#0d626a 27%,#073f49 36%,#0b5660 45%,#063d46 54%);box-shadow:inset 0 0 70px #001519aa,0 0 35px #001519cc;transition:transform .7s cubic-bezier(.65,0,.35,1)}
.fd-curtain:after{content:"";position:absolute;top:0;bottom:0;width:10px;background:linear-gradient(90deg,#785521,#f1ce78 45%,#9c702d);box-shadow:0 0 12px #f1ce7866}
.fd-curtain-left{left:0;border-right:1px solid #dfbc6c}.fd-curtain-left:after{right:0}
.fd-curtain-right{right:0;border-left:1px solid #dfbc6c}.fd-curtain-right:after{left:0}
.fd-intro-card{position:relative;z-index:2;width:min(760px,90vw);max-height:min(86dvh,780px);overflow:auto;padding:clamp(30px,5vw,64px) clamp(24px,6vw,76px) clamp(28px,4vw,48px);border:1px solid #d8b565;border-radius:4px;background:linear-gradient(145deg,rgba(4,44,51,.97),rgba(3,28,35,.98));box-shadow:0 24px 80px #000b,inset 0 0 0 5px #0c596144,inset 0 0 70px #001a20;color:#f7e9c7;text-align:center;transition:opacity .32s ease,transform .55s ease}
.fd-intro-card:before,.fd-intro-card:after{content:"";position:absolute;left:22px;right:22px;height:1px;background:linear-gradient(90deg,transparent,#d8b565,transparent)}.fd-intro-card:before{top:18px}.fd-intro-card:after{bottom:18px}
.fd-intro-close{position:absolute;z-index:1;top:15px;right:18px;width:38px;height:38px;border:0;background:transparent;color:#e6cb8d;font:30px/1 Georgia,serif;cursor:pointer}
.fd-intro-kicker{margin:0 0 13px;color:#d8b565;font:700 11px/1.2 Arial,sans-serif;letter-spacing:.28em;text-transform:uppercase}
.fd-intro-card h1{margin:0;color:#ffe9b4;font:normal clamp(34px,5vw,64px)/.94 Georgia,serif;letter-spacing:-.035em;text-wrap:balance;text-shadow:0 2px 18px #d8a94b35}
.fd-intro-copy{width:min(590px,100%);margin:25px auto 20px;color:#e8dfca;font:clamp(13px,1.25vw,16px)/1.55 Arial,sans-serif}
.fd-intro-copy p{margin:0 0 14px}.fd-intro-question{color:#f5d996;font-family:Georgia,serif!important;font-size:1.08em;font-style:italic}
.fd-intro-methodology{display:block;margin:0 0 22px;color:#adbea9;font:10px/1.3 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
.fd-intro-open{min-width:min(290px,80vw);padding:15px 25px;border:1px solid #f0cf7d;border-radius:2px;background:linear-gradient(180deg,#e4c16e,#b78637);box-shadow:0 5px 18px #0007,inset 0 1px #fff5;color:#17353a;font:700 12px/1 Arial,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
.fd-intro-open:hover{filter:brightness(1.08)}.fd-intro-open:focus-visible,.fd-intro-close:focus-visible{outline:3px solid #fff0bd;outline-offset:3px}
.fd-intro-overlay.is-opening{pointer-events:none;background:rgba(2,17,22,0);transition:background .55s ease .1s}
.fd-intro-overlay.is-opening .fd-curtain-left{transform:translateX(-101%)}.fd-intro-overlay.is-opening .fd-curtain-right{transform:translateX(101%)}
.fd-intro-overlay.is-opening .fd-intro-card{opacity:0;transform:scale(.97);transition-duration:.2s}
@media(max-width:650px){
  .fd-intro-overlay{padding:16px}
  .fd-intro-card{width:94vw;max-height:90dvh;padding:40px 22px 31px}
  .fd-intro-card h1{font-size:clamp(31px,10vw,45px)}
  .fd-intro-copy{margin-top:20px;font-size:12px;line-height:1.46}
  .fd-intro-copy p{margin-bottom:11px}
  .fd-intro-methodology{margin-bottom:17px}
}
@media(prefers-reduced-motion:reduce){
  .fd-curtain{transition:none}.fd-intro-overlay.is-opening .fd-curtain{opacity:0}.fd-intro-card{transition:opacity .01ms}
}

/* Editorial glass introduction: keep the night market as the main visual. */
.fd-intro-overlay{padding:clamp(18px,4vw,52px);background:rgba(1,15,19,.2);backdrop-filter:none;-webkit-backdrop-filter:none}
.fd-intro-card{width:min(680px,72vw);max-height:86dvh;padding:clamp(28px,4vw,48px) clamp(28px,5vw,64px) clamp(26px,3.5vw,42px);background:linear-gradient(145deg,rgba(4,44,51,.86),rgba(3,28,35,.9));box-shadow:0 20px 64px #0009,inset 0 0 0 4px #0c596133,inset 0 0 54px #001a2077;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.fd-intro-card h1{font-size:clamp(34px,4.2vw,56px)}
.fd-intro-copy{margin-top:21px;font-size:clamp(13px,1.05vw,15px);line-height:1.48}
.fd-intro-overlay.is-opening{background:rgba(1,15,19,0);transition:background .3s ease}
.fd-intro-overlay.is-opening .fd-intro-card{opacity:0;transform:translateY(8px) scale(.985);transition-duration:.28s}
@media(max-width:650px){
  .fd-intro-overlay{padding:14px;background:rgba(1,15,19,.15)}
  .fd-intro-card{width:94vw;max-height:88dvh;padding:38px 22px 28px}
  .fd-intro-card h1{font-size:clamp(30px,9.5vw,42px)}
}

/* Compact casual note: preserve the French Toast title, dish, and market as the focus. */
.fd-intro-overlay{align-items:start;padding:20px 18px 18px;background:rgba(1,15,19,.08)}
.fd-intro-card{width:min(510px,58vw);max-height:78dvh;padding:25px 38px 23px;background:linear-gradient(145deg,rgba(4,44,51,.97),rgba(3,28,35,.98));box-shadow:0 14px 42px #0008,inset 0 0 0 3px #0c596128,inset 0 0 35px #001a2055;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.fd-intro-card:before{top:12px}.fd-intro-card:after{bottom:12px}
.fd-intro-close{top:9px;right:11px;width:32px;height:32px;font-size:25px}
.fd-intro-kicker{margin-bottom:8px;font-size:9px;letter-spacing:.22em}
.fd-intro-card h1{font-size:clamp(27px,3.25vw,43px);line-height:.98}
.fd-intro-scale{display:none}
.fd-intro-summary strong{color:#ffe2a0;font-weight:700}
.fd-intro-copy{width:100%;margin:16px auto 17px;font-size:12px;line-height:1.42}
.fd-intro-copy p{margin-bottom:10px}
.fd-intro-question{font-size:1em}
.fd-intro-open{min-width:min(210px,72vw);padding:12px 20px;font-size:12px}
@media(max-width:650px){
  .fd-intro-overlay{padding:16vh 12px 12px;background:rgba(1,15,19,.06)}
  .fd-intro-card{width:90vw;max-height:76dvh;padding:26px 21px 22px;background:linear-gradient(145deg,rgba(4,44,51,.97),rgba(3,28,35,.98))}
  .fd-intro-card h1{font-size:clamp(27px,8.3vw,36px)}
  .fd-intro-copy{margin:14px auto 15px;font-size:11px;line-height:1.4}
}

/* Four-second #1 celebration after the introduction clears. */
.fd-confetti{position:fixed;z-index:24;inset:0;overflow:hidden;pointer-events:none}
.fd-confetti i{position:absolute;top:-18px;left:var(--left);width:var(--width);height:var(--height);border-radius:var(--radius);background:var(--color);box-shadow:0 1px 2px #0004;animation:fd-confetti-fall 3s linear var(--delay) both}
@keyframes fd-confetti-fall{
  0%{transform:translate3d(0,-5vh,0) rotate(0);opacity:0}
  8%{opacity:1}
  100%{transform:translate3d(var(--drift),108vh,0) rotate(var(--turn));opacity:.92}
}
@media(prefers-reduced-motion:reduce){
  .fd-confetti i{top:8%;animation:fd-confetti-gentle .7s ease-out both}
  @keyframes fd-confetti-gentle{from{opacity:0;transform:translateY(-8px)}to{opacity:.8;transform:translateY(20px)}}
}

/* Stack equal-sized page controls at the upper right. */
.fd-tools button[data-action="map"],.fd-tools label{position:absolute;right:0;left:auto;width:128px;height:40px;display:flex;align-items:center;justify-content:center;padding:0 10px}
.fd-tools button[data-action="map"]{top:0}
.fd-tools label{top:48px;white-space:nowrap}
.fd-tools select{width:auto;max-width:65px;padding:0}
@media(max-width:650px){
  .fd-tools button[data-action="map"],.fd-tools label{right:16px!important;left:auto!important;width:112px!important;height:36px!important;padding:0 7px!important}
  .fd-tools button[data-action="map"]{top:10px!important}
  .fd-tools label{top:54px!important}
}

@media(max-width:650px){
  .fd-intro-kicker,.fd-intro-summary{display:none!important}
  .fd-intro-copy{
    font-size:16.5px!important;
    line-height:1.35!important;
  }
  .fd-intro-open{font-size:15px!important}
}

/* A friendlier type treatment reserved for the opening note. */
.fd-intro-card h1{font-family:Fredoka,"Trebuchet MS",sans-serif;font-weight:600;line-height:1.06;letter-spacing:-.02em}
.fd-intro-byline{margin:9px 0 0;font:600 clamp(22px,2.2vw,28px)/1.15 Caveat,cursive}
.fd-intro-byline a{color:#f6d491;text-decoration:underline;text-decoration-color:#f6d49188;text-decoration-thickness:1px;text-underline-offset:4px}
.fd-intro-byline a:hover{color:#fff1c7;text-decoration-color:currentColor}
.fd-intro-byline a:focus-visible{outline:3px solid #fff0bd;outline-offset:5px}
.fd-intro-kicker,.fd-intro-copy,.fd-intro-open{font-family:Fredoka,"Trebuchet MS",sans-serif}
.fd-intro-copy{font-weight:400;letter-spacing:.01em}
.fd-intro-summary{font-size:14px;line-height:1.45}
.fd-intro-question{font-family:Fredoka,"Trebuchet MS",sans-serif!important;font-size:clamp(18px,1.5vw,21px)!important;line-height:1.18;font-weight:600;font-style:normal}
.fd-intro-question em{font-style:italic}
.fd-intro-open{font-weight:600;letter-spacing:.08em}
.fd-intro-copy{margin:16px auto 0;padding:0;border:0;color:#d3cfbf}
.fd-intro-copy p{margin:0}
.fd-intro-copy .fd-intro-scale{display:none;width:max-content;max-width:100%;padding:7px 12px;border:1px solid #deb97877;border-radius:4px;background:#ad81442b;color:#ffe2aa;font:600 11px/1.3 Fredoka,"Trebuchet MS",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.fd-intro-copy .fd-intro-summary{margin:0}
.fd-intro-action{margin-top:16px}
.fd-intro-action .fd-intro-question{position:relative;width:fit-content;max-width:82%;margin:0 auto 26px;padding:9px 16px 10px;border:1px solid #d4b77b77;border-radius:15px 15px 15px 4px;background:#23444a;color:#ffe2a0}
.fd-intro-action .fd-intro-question:after{content:"";position:absolute;left:24px;bottom:-7px;width:12px;height:12px;transform:rotate(45deg);border-right:1px solid #d4b77b77;border-bottom:1px solid #d4b77b77;background:#23444a}
@media(max-width:650px){
  .fd-intro-byline{margin-top:8px;font-size:25px}
  .fd-intro-copy{margin-top:15px}
  .fd-intro-copy .fd-intro-scale{display:inline-block;font-size:12px}
  .fd-intro-action{margin-top:16px}
  .fd-intro-action .fd-intro-question{max-width:100%;padding:11px 15px 12px}
  .fd-intro-question{font-size:clamp(17px,4.8vw,19px)!important}
  .fd-intro-open{min-width:min(245px,76vw)}
}

/* Expanded desktop copy area, ready for the next On the Counter rewrite. */
@media(min-width:651px){
  .fd-intro{
    top:24%!important;
    min-height:54dvh!important;
  }
}

/* Rank #1 uses the painted scene on desktop and the standard food cutout on mobile. */
.fd-food-rank1{display:none}
.fd-art-mobile{display:none}
@media(max-width:650px){
  .fd-food-rank1{
    display:block!important;
    top:27vw!important;
    left:13vw!important;
    width:74vw!important;
    height:38vw!important;
  }
  .fd-art-desktop{display:none!important}
  .fd-art-mobile{display:block!important}
}

/* Approved title treatment: white calligraphy directly over the market scene. */
.fd-awning{
  top:2.5%!important;
  left:1.5%!important;
  width:auto!important;
  max-width:48%!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:none!important;
  box-shadow:none!important;
  white-space:normal!important;
  transform:rotate(-1deg);
}
.fd-awning span{
  display:block!important;
  padding:0!important;
  background:none!important;
  color:#fff!important;
  font:600 clamp(20px,2.7vw,34px)/.9 Caveat,cursive!important;
  letter-spacing:.01em!important;
  text-shadow:0 2px 3px #001018,0 0 12px #001018cc!important;
}
@media(max-width:650px){
  .fd-awning{
    top:1%!important;
    left:3%!important;
    max-width:60%!important;
  }
  .fd-awning span{font-size:clamp(20px,7vw,34px)!important}
}
html,body{overflow-x:hidden;background:#183c45}
.fd-scene{--stage-size:min(100vw,100dvh);width:100vw;height:100dvh;min-height:100dvh;margin:0;background:#183c45}
.fd-scene:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,48,54,.9),rgba(36,67,64,.35) 24%,rgba(17,43,49,.12) 50%,rgba(36,67,64,.35) 76%,rgba(14,48,54,.9)),url("stall-counter-clean-blank-sign.png") center/cover;filter:saturate(.7);opacity:.9}
.fd-world{inset:0}
.fd-stall{top:50%;left:50%;inset:auto;width:var(--stage-size);height:var(--stage-size);transform:translate(-50%,-50%)}
.fd-stall.incoming{transform:translate(calc(-50% + var(--stage-size)),-50%)}
.fd-art{object-fit:contain}
@keyframes fd-left{to{transform:translate(calc(-50% - var(--stage-size)),-50%)}}
@keyframes fd-in-left{to{transform:translate(-50%,-50%)}}
@keyframes fd-right{to{transform:translate(calc(-50% + var(--stage-size)),-50%)}}
@keyframes fd-in-right{to{transform:translate(-50%,-50%)}}
.fd-world.travel-left .current{animation:fd-left .64s cubic-bezier(.22,.72,.2,1) forwards}
.fd-world.travel-left .incoming{animation:fd-in-left .64s cubic-bezier(.22,.72,.2,1) forwards}
.fd-world.travel-right .current{animation:fd-right .64s cubic-bezier(.22,.72,.2,1) forwards}
.fd-world.travel-right .incoming{animation:fd-in-right .64s cubic-bezier(.22,.72,.2,1) forwards}
@media(max-width:650px){.fd-scene{--stage-size:100vw}.fd-stall{top:44%;left:0;transform:none}.fd-stall.incoming{transform:translateX(100%)}.fd-tools{top:10px}.fd-nav{bottom:4.5%}}
@media(max-width:650px){.fd-scene:before{background-image:none!important;background-color:#102b35;opacity:1}}
@media(max-width:650px){@keyframes fd-left{to{transform:translateX(-100%)}}@keyframes fd-in-left{to{transform:translateX(0)}}@keyframes fd-right{to{transform:translateX(100%)}}@keyframes fd-in-right{to{transform:translateX(0)}}}
@media(max-width:650px){.fd-world .fd-stall{width:100vw!important;max-width:100vw!important;left:0!important;right:auto!important;transform:none!important}.fd-world .fd-stall.incoming{transform:translateX(100%)}}
@media(max-width:650px){.fd-scene:before{background:linear-gradient(180deg,#173844 0%,#102b35 52%,#193e43 100%);opacity:1}}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#061b25;color:#f8eed5;font-family:Georgia,serif}.fd-scene{position:relative;width:min(100vw,100dvh,1024px);aspect-ratio:1;margin:0 auto;overflow:hidden}.fd-world{position:absolute;inset:0;z-index:1;pointer-events:none}.fd-stall{position:absolute;inset:0;overflow:hidden;pointer-events:auto}.fd-stall.incoming{transform:translateX(100%)}.fd-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.fd-wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,19,29,.18),transparent 40%,rgba(2,12,17,.38))}.fd-tools{position:absolute;z-index:4;top:23px;left:3.5%;right:3.5%;display:flex;justify-content:space-between}.fd-tools label,.fd-tools button{padding:10px 14px;border:1px solid #80704b;border-radius:8px;background:#092631e8;color:#f5e7c7;text-transform:uppercase;font:12px Arial,sans-serif}.fd-tools select{border:0;background:transparent;color:inherit;text-transform:uppercase}.fd-awning{position:absolute;z-index:3;top:4.5%;left:3%;max-width:28%;padding:7px 9px;border:1px solid #a38352;border-radius:5px;background:rgba(6,24,31,.85);color:#f2ddb1;font:9px Arial,sans-serif;line-height:1.1;letter-spacing:.04em}.fd-sign{position:absolute;z-index:2;top:15.7%;left:25%;width:50%;height:15%;display:grid;place-items:center;padding:5px;border:5px solid #57432a;border-radius:5px;background:linear-gradient(155deg,#665035,#142c2d 55%,#493623);box-shadow:0 4px #091c22,inset 0 0 0 2px #88704b;text-align:center}.fd-sign span{max-width:100%;color:#ffe4a9;font:bold clamp(14px,3.5vw,44px)/.93 Impact,sans-serif;text-align:center;text-transform:uppercase;text-wrap:balance;overflow-wrap:anywhere;text-shadow:0 2px #5d361c,0 0 11px #f3a550}.fd-rank{position:absolute;z-index:3;top:36.8%;left:73.8%;width:7.8%;aspect-ratio:1;display:grid;place-items:center;border:3px double #b78c50;border-radius:6px;background:#102a36;color:#ddb76b;font-size:clamp(18px,3.4vw,35px);transform:rotate(-4deg)}.fd-intro{position:absolute;z-index:3;top:46%;left:8%;width:23%;padding:1%;border:1px solid #b69864;border-radius:3px;background:rgba(11,33,39,.82);color:#f4e6c2;font:clamp(8px,1.15vw,12px)/1.25 Arial,sans-serif}.fd-intro strong{font-size:.84em;text-transform:uppercase;color:#ddbe7a}.fd-intro p{margin:6px 0}.fd-intro button{padding:4px 6px;border:1px solid #b69864;background:#f0dfb5;color:#33291e;font:bold 8px Arial,sans-serif}.fd-food{position:absolute;z-index:2;top:51%;left:34%;width:36%;height:19%;object-fit:contain;filter:drop-shadow(0 12px 7px #0008)}.fd-cloche{position:absolute;z-index:2;top:51%;left:35%;width:31%;height:16%;display:grid;place-items:center;border:4px solid #a7793c;border-radius:50% 50% 43% 43%;background:linear-gradient(135deg,#ba8a48,#513b28 52%,#8b6031);box-shadow:0 12px 9px #0b0a07,inset 0 3px 7px #e2bf73}.fd-cloche:before{content:"";position:absolute;inset:12% 7%;border:2px solid #d3a95f;border-radius:50%}.fd-cloche span{z-index:1;color:#f9e1a4;font:bold 10px Arial,sans-serif;letter-spacing:.12em}.fd-cloche i{position:absolute;top:-18%;width:18%;height:18%;border-radius:50%;background:#c99a50}.fd-signal{position:absolute;z-index:2;left:25%;bottom:15%;width:50%;padding:10px 13px;border:4px double #8b6341;border-radius:14px;background:#07141c;color:#f1deb1;text-align:left}.fd-meter{display:flex;height:11px;padding:2px;gap:2px;border:2px solid #b8884c;border-radius:3px;background:#13212c}.fd-meter i{height:100%;background:#4db4dc}.fd-meter em{height:100%;background:#df8b80}.fd-signal b{float:right;margin-top:6px;padding:3px 12px;background:#cda75f;color:#13202a;border-radius:3px}.fd-signal small{display:block;margin-top:8px;font:10px Arial,sans-serif}.fd-nav{position:absolute;z-index:4;bottom:4.5%;left:25%;width:50%;display:flex;justify-content:space-between;align-items:center;padding:3px 10px;border:1px solid #907144;border-radius:18px;background:#092a35f2;color:#fae7c2;font:12px Arial,sans-serif;text-transform:uppercase}.fd-nav button{border:0;background:none;color:inherit;padding:7px}.fd-nav button:disabled{opacity:.3}.fd-nav em{margin-left:12px;font-style:normal}.fd-scene footer{position:absolute;z-index:4;bottom:1%;left:3%;right:3%;display:flex;justify-content:space-between;color:#d8cba8;font:10px Arial,sans-serif;text-transform:uppercase}.fd-scene footer button{border:0;background:none;color:inherit;font:inherit;text-transform:uppercase}.fd-overlay{position:fixed;z-index:10;inset:0;display:grid;place-items:center;padding:18px;background:#010c12c2;backdrop-filter:blur(3px)}.fd-book,.fd-map{position:relative;width:min(830px,94vw);background:#f2dfb6;color:#3c3429;border:12px solid #ead4a4;outline:1px solid #b69d71;box-shadow:0 17px 60px #000}.fd-book{display:block;max-height:calc(100dvh - 36px);overflow:hidden}.fd-book-scroll{display:grid;grid-template-columns:1fr 1fr;max-height:calc(100dvh - 60px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.fd-leaf{padding:45px 35px 30px}.fd-leaf:first-child{background:#eddbaf;border-right:7px solid #d7c498}.fd-close{position:absolute;z-index:2;top:12px;right:14px;border:0;background:none;color:#594c3d;text-transform:uppercase}.fd-eyebrow,.fd-book h2{font:11px Arial,sans-serif;text-transform:uppercase;color:#735e43}.fd-book h1{font-size:30px;font-weight:normal}.fd-book blockquote{margin:0 0 18px;font-size:16px;line-height:1.35}.fd-book blockquote cite{display:block;margin-top:8px;font:10px Arial,sans-serif;font-style:normal}.fd-book a{color:#453729}.fd-place{display:block;margin:0 0 12px;font-size:16px;text-decoration:none}.fd-count{font:17px/1.6 Arial,sans-serif}.fd-note{font:13px/1.35 Arial,sans-serif;color:#6d604e}.fd-map{padding:44px 30px 24px}.fd-map h1{margin:0 0 8px}.fd-map p{font:13px Arial,sans-serif}.fd-map input{width:100%;padding:10px;border:1px solid #b59b6d;background:#fbebc6}.fd-map-list{display:grid;gap:8px;max-height:350px;overflow:auto;margin-top:12px}.fd-map-list button{display:grid;grid-template-columns:40px 1fr auto;gap:9px;padding:9px;text-align:left;border:1px solid #b59b6d;background:#f5e5bf;color:#3f3528}.fd-map-list small{font:11px Arial,sans-serif}@keyframes fd-left{to{transform:translateX(-100%)}}@keyframes fd-in-left{to{transform:translateX(0)}}@keyframes fd-right{to{transform:translateX(100%)}}@keyframes fd-in-right{to{transform:translateX(0)}}.fd-world.travel-left .current{animation:fd-left .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-left .incoming{animation:fd-in-left .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-right .current{animation:fd-right .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-right .incoming{animation:fd-in-right .64s cubic-bezier(.22,.72,.2,1) forwards}
@media(max-width:650px){.fd-sign{height:17%;}.fd-sign span{font-size:clamp(13px,3.4vw,25px)}.fd-intro{top:47%;left:7%;width:25%;font-size:7px;padding:1%}.fd-signal{left:8%;width:84%;bottom:15%}.fd-nav{left:6%;width:88%}.fd-nav em{display:none}.fd-book{max-height:88dvh}.fd-book-scroll{display:block;max-height:calc(88dvh - 24px)}.fd-leaf{padding:38px 25px 20px}.fd-leaf:first-child{border-right:0;border-bottom:4px solid #d7c498}}@media(prefers-reduced-motion:reduce){.fd-world .current,.fd-world .incoming{animation-duration:.01ms}}
.fd-tools{justify-content:flex-end}.fd-tools label{position:absolute;top:38px;left:0}.fd-awning{top:2.5%;left:3%;width:max-content;max-width:47%;padding:4px 6px;border:1px solid #d5ac65;border-radius:0;background:repeating-linear-gradient(90deg,#9a3e2d 0 19px,#e2b66e 19px 39px);box-shadow:0 3px 8px rgba(0,0,0,.35);font:700 clamp(9px,1.1vw,13px)/1 Georgia,serif;white-space:nowrap}.fd-awning span{display:block;padding:2px 5px;background:rgba(57,27,18,.85);color:#fff0c5}.fd-sign{top:15.7%;left:17%;width:62%;height:19%}.fd-intro{top:39.5%;left:3.2%;width:29%}.fd-scene footer{justify-content:flex-end}
.fd-map-list button[hidden]{display:none}
@media(max-width:650px){.fd-tools{top:1.5%;left:2%;right:2%}.fd-tools label{top:35px;padding:7px 9px;font-size:9px}.fd-tools button{padding:7px 9px;font-size:9px}.fd-awning{top:1%;left:2%;max-width:58%;padding:3px 4px;font-size:clamp(7px,2.5vw,10px)}.fd-awning span{padding:2px 4px}.fd-sign{top:17%;left:14%;width:68%;height:17%}.fd-intro{top:39.5%;left:2%;width:37%}}
/* Full-browser stage: keep the approved square artwork as a coordinate plane. */
html,body{overflow-x:hidden;background:#183c45}
.fd-scene{--stage-size:min(100vw,100dvh);width:100vw;height:100dvh;min-height:100dvh;margin:0;background:#183c45}
.fd-scene:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,48,54,.9),rgba(36,67,64,.35) 24%,rgba(17,43,49,.12) 50%,rgba(36,67,64,.35) 76%,rgba(14,48,54,.9)),url("stall-counter-clean-blank-sign.png") center/cover;filter:saturate(.7);opacity:.9}
.fd-world{inset:0}.fd-stall{top:50%;left:50%;inset:auto;width:var(--stage-size);height:var(--stage-size);transform:translate(-50%,-50%)}.fd-stall.incoming{transform:translate(calc(-50% + var(--stage-size)),-50%)}.fd-art{object-fit:contain}
@keyframes fd-left{to{transform:translate(calc(-50% - var(--stage-size)),-50%)}}@keyframes fd-in-left{to{transform:translate(-50%,-50%)}}@keyframes fd-right{to{transform:translate(calc(-50% + var(--stage-size)),-50%)}}@keyframes fd-in-right{to{transform:translate(-50%,-50%)}}
.fd-world.travel-left .current{animation:fd-left .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-left .incoming{animation:fd-in-left .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-right .current{animation:fd-right .64s cubic-bezier(.22,.72,.2,1) forwards}.fd-world.travel-right .incoming{animation:fd-in-right .64s cubic-bezier(.22,.72,.2,1) forwards}
@media(max-width:650px){.fd-scene{--stage-size:100vw}.fd-stall{top:44%}.fd-tools{top:10px}.fd-nav{bottom:4.5%}}
/* Final viewport composition: one undistorted scene, with intentional browser-width side rails. */
.fd-scene{isolation:isolate;background:linear-gradient(90deg,#08222c 0,#12343d calc(50% - var(--stage-size)/2),#12343d calc(50% + var(--stage-size)/2),#08222c 100%)}
.fd-scene:before{background:linear-gradient(90deg,rgba(4,22,29,.96),rgba(18,52,61,.82) 18%,rgba(18,52,61,.82) 82%,rgba(4,22,29,.96));filter:none;opacity:1}
.fd-world{z-index:1}
.fd-stall{inset:auto;top:50%;left:50%}
.fd-tools,.fd-nav,.fd-scene footer{z-index:4}
@media(max-width:650px){
  .fd-scene{height:100dvh;min-height:100dvh;background:#08252f}
  .fd-scene:before{display:none}
  .fd-stall{inset:auto;top:76px;left:50%;transform:translateX(-50%)}
  .fd-stall.incoming{transform:translateX(calc(-50% + 100vw))}
  .fd-tools{top:8px}
  .fd-nav{top:calc(76px + 100vw + 10px);bottom:auto}
  .fd-scene footer{top:calc(76px + 100vw + 58px);bottom:auto}
  @keyframes fd-mobile-left{to{transform:translateX(calc(-50% - 100vw))}}
  @keyframes fd-mobile-in-left{to{transform:translateX(-50%)}}
  @keyframes fd-mobile-right{to{transform:translateX(calc(-50% + 100vw))}}
  @keyframes fd-mobile-in-right{to{transform:translateX(-50%)}}
  .fd-world.travel-left .current{animation-name:fd-mobile-left}
  .fd-world.travel-left .incoming{animation-name:fd-mobile-in-left}
  .fd-world.travel-right .current{animation-name:fd-mobile-right}
  .fd-world.travel-right .incoming{animation-name:fd-mobile-in-right}
}
.fd-french-toast-lift{display:none}
@media(min-width:651px){
  .fd-french-toast-lift{display:block;position:absolute;inset:0;pointer-events:none;background-repeat:no-repeat;background-size:cover;background-position:center calc(35% + min(-64px,calc(51dvh - max(32.5vw,32.5dvh) - 96px)))}
  .fd-scene{--stage-size:100vw;background:#08222c}
  .fd-scene:before{display:none}
  .fd-stall{inset:0;top:0;left:0;width:100vw;height:100dvh;transform:none}
  .fd-stall.incoming{transform:translateX(100vw)}
  .fd-art{object-fit:cover;object-position:center 35%}
  .fd-awning{top:2.5%;left:2%}
  .fd-sign{top:4%;left:27%;width:46%;height:18%}
  .fd-rank{top:37.5%;left:28%;width:7.5%}
  .fd-intro{top:36%;left:3.5%;width:23%}
  .fd-food{top:49%;left:38%;width:24%;height:20%}
  .fd-cloche{top:49%;left:39%;width:22%;height:17%}
  .fd-signal{left:32%;bottom:14%;width:36%}
  .fd-nav{left:32%;bottom:4.5%;width:36%}
  @keyframes fd-wide-left{to{transform:translateX(-100vw)}}
  @keyframes fd-wide-in-left{to{transform:translateX(0)}}
  @keyframes fd-wide-right{to{transform:translateX(100vw)}}
  @keyframes fd-wide-in-right{to{transform:translateX(0)}}
  .fd-world.travel-left .current{animation-name:fd-wide-left}
  .fd-world.travel-left .incoming{animation-name:fd-wide-in-left}
  .fd-world.travel-right .current{animation-name:fd-wide-right}
  .fd-world.travel-right .incoming{animation-name:fd-wide-in-right}
}
.fd-signal-nav{position:absolute;z-index:4;left:29%;bottom:14%;width:42%;display:flex;justify-content:space-between;align-items:center;pointer-events:none}
.fd-signal-nav button{width:30px;height:66px;padding:0;border:0;background:transparent;color:#cda75f;font:64px/1 Arial,sans-serif;filter:drop-shadow(0 2px 2px #07141c);cursor:pointer;pointer-events:auto}
.fd-signal-nav button:disabled{opacity:.25;cursor:default}
.fd-stall-count{position:absolute;z-index:4;left:32%;bottom:calc(14% - 21px);width:36%;color:#d8cba8;text-align:center;font:9px/1 Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:650px){
  .fd-signal-nav{top:calc(76px + 85vw - 64px);bottom:auto;left:3%;width:94%}
  .fd-signal-nav button{width:24px;height:62px;font-size:54px}
  .fd-stall-count{top:calc(76px + 85vw + 7px);bottom:auto;left:8%;width:84%;font-size:8px}
}
/* Keep the approved cutout size; align its lower edge with the French Toast plate. */
.fd-food{top:29%;left:24%;width:52%;height:30%}
@media(min-width:651px){
  .fd-food{
    object-position:center bottom;
    top:calc(min(
      calc(35dvh + max(32.1875vw,32.1875dvh) - 64px),
      calc(86dvh - max(.3125vw,.3125dvh) - 96px)
    ) - 30dvh);
  }
}

/* Final control placement override: keep both equal controls stacked at upper right. */
.fd-tools button[data-action="map"],.fd-tools label{
  position:absolute!important;
  right:0!important;
  left:auto!important;
  width:128px!important;
  height:40px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 10px!important;
}
.fd-tools button[data-action="map"]{top:0!important}
.fd-tools label{top:48px!important;white-space:nowrap}
@media(max-width:650px){
  .fd-tools button[data-action="map"],.fd-tools label{
    right:16px!important;
    left:auto!important;
    width:112px!important;
    height:36px!important;
    padding:0 7px!important;
  }
  .fd-tools button[data-action="map"]{top:10px!important}
  .fd-tools label{top:54px!important}
}
/* Reversible transition test: switch transitionMode in app.js back to "slide" to restore travel. */
@keyframes fd-fade-out{from{opacity:1}to{opacity:0}}
@keyframes fd-fade-in{from{opacity:0}to{opacity:1}}
.fd-transition-fade .fd-stall.incoming{transform:none;opacity:0}
.fd-transition-fade .fd-world.travel-left .current,
.fd-transition-fade .fd-world.travel-right .current{transform:none;animation:fd-fade-out .32s ease-in-out forwards}
.fd-transition-fade .fd-world.travel-left .incoming,
.fd-transition-fade .fd-world.travel-right .incoming{transform:none;animation:fd-fade-in .32s ease-in-out forwards}
@media(prefers-reduced-motion:reduce){
  .fd-transition-fade .fd-world .current,
  .fd-transition-fade .fd-world .incoming{animation-duration:.01ms}
}
/* Fade plus 16px directional travel: motion context without a full-screen sweep. */
@keyframes fd-drift-out-left{from{opacity:1;translate:0}to{opacity:0;translate:-16px 0}}
@keyframes fd-drift-in-left{from{opacity:0;translate:16px 0}to{opacity:1;translate:0}}
@keyframes fd-drift-out-right{from{opacity:1;translate:0}to{opacity:0;translate:16px 0}}
@keyframes fd-drift-in-right{from{opacity:0;translate:-16px 0}to{opacity:1;translate:0}}
.fd-transition-drift .fd-world.travel-left .current{animation:fd-drift-out-left .32s ease-in-out forwards}
.fd-transition-drift .fd-world.travel-left .incoming{animation:fd-drift-in-left .32s ease-in-out forwards}
.fd-transition-drift .fd-world.travel-right .current{animation:fd-drift-out-right .32s ease-in-out forwards}
.fd-transition-drift .fd-world.travel-right .incoming{animation:fd-drift-in-right .32s ease-in-out forwards}
@media(prefers-reduced-motion:reduce){
  .fd-transition-drift .fd-world .current,
  .fd-transition-drift .fd-world .incoming{animation-duration:.01ms}
}
/* Game-camera test: one sharp stall at a time, with a clean midpoint handoff. */
@keyframes fd-camera-out-left{
  0%{opacity:1;translate:0;animation-timing-function:cubic-bezier(.4,0,1,1)}
  49.9%{opacity:1;translate:-18vw 0}
  50%,100%{opacity:0;translate:-18vw 0}
}
@keyframes fd-camera-in-left{
  0%,49.9%{opacity:0;translate:18vw 0}
  50%{opacity:1;translate:18vw 0;animation-timing-function:cubic-bezier(0,0,.2,1)}
  100%{opacity:1;translate:0}
}
@keyframes fd-camera-out-right{
  0%{opacity:1;translate:0;animation-timing-function:cubic-bezier(.4,0,1,1)}
  49.9%{opacity:1;translate:18vw 0}
  50%,100%{opacity:0;translate:18vw 0}
}
@keyframes fd-camera-in-right{
  0%,49.9%{opacity:0;translate:-18vw 0}
  50%{opacity:1;translate:-18vw 0;animation-timing-function:cubic-bezier(0,0,.2,1)}
  100%{opacity:1;translate:0}
}
.fd-transition-camera .fd-stall.incoming{transform:none}
.fd-transition-camera .fd-world.travel-left .current{animation:fd-camera-out-left .44s linear forwards}
.fd-transition-camera .fd-world.travel-left .incoming{animation:fd-camera-in-left .44s linear forwards}
.fd-transition-camera .fd-world.travel-right .current{animation:fd-camera-out-right .44s linear forwards}
.fd-transition-camera .fd-world.travel-right .incoming{animation:fd-camera-in-right .44s linear forwards}
@media(prefers-reduced-motion:reduce){
  .fd-transition-camera .fd-world .current,
  .fd-transition-camera .fd-world .incoming{animation-duration:.01ms}
}
/* Lateral reveal: direction without moving or cross-fading detailed artwork. */
@keyframes fd-reveal-from-right{
  from{clip-path:inset(0 0 0 100%)}
  to{clip-path:inset(0)}
}
@keyframes fd-reveal-from-left{
  from{clip-path:inset(0 100% 0 0)}
  to{clip-path:inset(0)}
}
.fd-transition-reveal .fd-world.travel-left .current,
.fd-transition-reveal .fd-world.travel-right .current{z-index:1;transform:none;animation:none}
.fd-transition-reveal .fd-stall.incoming{z-index:2;transform:none;opacity:1;will-change:clip-path}
.fd-transition-reveal .fd-world.travel-left .incoming{animation:fd-reveal-from-right .4s cubic-bezier(.4,0,.2,1) forwards}
.fd-transition-reveal .fd-world.travel-right .incoming{animation:fd-reveal-from-left .4s cubic-bezier(.4,0,.2,1) forwards}
@media(prefers-reduced-motion:reduce){
  .fd-transition-reveal .fd-world .incoming{animation-duration:.01ms}
}

/* Final mobile portrait composition: square stall above a dedicated control area. */
@media(max-width:650px){
  .fd-scene{
    --mobile-tools-height:0px;
    --stage-size:100vw;
    height:100dvh!important;
    min-height:100dvh!important;
    background:
      radial-gradient(ellipse at 50% 8%,rgba(164,105,46,.14),transparent 34%),
      linear-gradient(180deg,#102f38 0,#08252f 16%,#08252f 78%,#061b25 100%)!important;
  }
  .fd-scene:before{display:none!important}
  .fd-world{z-index:1!important}
  .fd-stall{
    inset:auto!important;
    top:var(--mobile-tools-height)!important;
    left:0!important;
    width:100vw!important;
    max-width:100vw!important;
    height:calc(100dvh - var(--mobile-tools-height))!important;
    transform:none!important;
  }
  .fd-stall.incoming{transform:translateX(100vw)!important}
  .fd-stall:after{
    content:"";
    position:absolute;
    z-index:1;
    top:calc(100vw - 90px);
    left:0;
    width:100vw;
    height:140px;
    background:linear-gradient(180deg,transparent 0,rgba(8,37,47,.7) 52%,#08252f 100%);
    pointer-events:none;
  }
  .fd-art,.fd-wash{
    inset:auto!important;
    top:0!important;
    left:0!important;
    width:100vw!important;
    height:100vw!important;
  }
  .fd-art{object-fit:fill!important}
  .fd-french-toast-lift{
    display:none!important;
    position:absolute!important;
    z-index:1!important;
    inset:auto!important;
    top:0!important;
    left:0!important;
    width:100vw!important;
    height:100vw!important;
    background-size:100vw 100vw!important;
    background-position:center top!important;
    background-repeat:no-repeat!important;
    pointer-events:none!important;
  }
  .fd-tools{
    top:calc(100vw + 134px)!important;
    left:10vw!important;
    right:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:8px!important;
    width:80vw!important;
    height:38px!important;
    padding:0!important;
  }
  .fd-tools button[data-action="map"]{
    position:static!important;
    padding:0 7px!important;
  }
  .fd-tools label{
    position:static!important;
    padding:0 7px!important;
  }
  .fd-awning{top:1vw!important;left:2vw!important;max-width:70vw!important}
  .fd-sign{top:17vw!important;left:14vw!important;width:72vw!important;height:17vw!important}
  .fd-sign span{font-size:clamp(16px,5vw,23px)!important}
  .fd-rank{top:37vw!important;left:8vw!important;width:12vw!important;font-size:16px!important}
  .fd-intro{
    top:66vw!important;
    left:2vw!important;
    width:86vw!important;
    min-height:32vw!important;
    padding:10px!important;
    font-size:14px!important;
  }
  .fd-intro p{margin:4px 0!important;font-size:18px!important;line-height:1.3!important}
  .fd-intro button{padding:7px 10px!important;font-size:16px!important}
  .fd-food{
    top:29vw!important;
    left:18vw!important;
    width:64vw!important;
    height:35vw!important;
    object-position:center bottom!important;
  }
  .fd-cloche{top:49vw!important;left:27vw!important;width:46vw!important;height:25vw!important}
  .fd-signal{
    top:calc(100vw + 30px)!important;
    bottom:auto!important;
    left:10vw!important;
    width:80vw!important;
    padding:10px 12px!important;
  }
  .fd-signal-nav{
    top:calc(var(--mobile-tools-height) + 100vw + 28px)!important;
    bottom:auto!important;
    left:2vw!important;
    width:96vw!important;
    height:66px!important;
  }
  .fd-signal-nav button{width:10vw!important;height:66px!important;font-size:46px!important}
  .fd-stall-count{
    top:calc(var(--mobile-tools-height) + 100vw + 112px)!important;
    bottom:auto!important;
    left:8vw!important;
    width:84vw!important;
    font-size:9px!important;
  }
  .fd-scene footer{
    top:auto!important;
    bottom:max(24px,env(safe-area-inset-bottom))!important;
    left:4vw!important;
    right:4vw!important;
    justify-content:flex-end!important;
  }
  .fd-status{
    top:calc(100vw + 190px)!important;
  }
  .fd-tools button[data-action="map"],.fd-tools label{
    position:static!important;
    top:auto!important;
    right:auto!important;
    left:auto!important;
    width:calc(40vw - 4px)!important;
    height:34px!important;
    padding:0 7px!important;
  }
}

.fd-intro-inline-action{display:none}
.fd-intro p{white-space:normal;font-weight:400}
.fd-intro p + p{margin-top:12px}
.fd-intro-ending{white-space:nowrap}
.fd-food-description{margin:8px 0 20px;color:#675b48;font:13px/1.45 Arial,sans-serif}
.fd-book h2.fd-review-heading{font-weight:bold;text-decoration:underline}
.fd-book blockquote.positive{margin-bottom:12px;padding:13px 15px;border:1px solid #c6af83;border-left:4px solid #5d826d;border-radius:5px;background:#f5efdb;box-shadow:0 2px 5px #6f52271a}
.fd-footer-logo{display:block;width:200px;line-height:0}
.fd-footer-logo img{display:block;width:100%;height:auto}
.fd-scene footer{justify-content:space-between!important;align-items:flex-end}
.fd-study-stat{--fd-study-label-size:11px;display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:9px 12px;border:1px solid #bda46788;border-radius:4px;background:#07232bd9;box-shadow:0 4px 18px #0008;color:#f4e4bd;text-decoration:none;transform:translate(calc(0px - clamp(14px,1.5vw,24px)),calc(0px - clamp(12px,2vh,24px)))}
.fd-study-stat-line{display:flex;align-items:baseline;gap:8px}
.fd-study-stat strong{font:700 23px/1 Georgia,serif;color:#f6d491}
.fd-study-stat-line>span{font:700 var(--fd-study-label-size)/1.2 Arial,sans-serif;letter-spacing:.1em;text-transform:uppercase}
.fd-study-stat small{align-self:center;font:400 var(--fd-study-label-size)/1.2 Georgia,serif;letter-spacing:normal;text-align:center;text-transform:none;text-decoration:underline;text-underline-offset:3px}
.fd-study-stat:hover{border-color:#ffe2a0;color:#fff8df}
.fd-study-stat:focus-visible,.fd-intro-research:focus-visible{outline:3px solid #ffe2a0;outline-offset:3px}
.fd-intro-research{display:table;margin:13px auto 0;padding:5px 8px;border:1px solid transparent;color:#f8da9b;font:600 12px/1.3 Fredoka,"Trebuchet MS",sans-serif;text-decoration:underline;text-underline-offset:3px}
.fd-image-warning{position:absolute;z-index:8;left:50%;bottom:12%;transform:translateX(-50%);max-width:90vw;margin:0;padding:8px 12px;border:1px solid #dfbc6c;border-radius:4px;background:#08252f;color:#f6e8c7;font:13px/1.3 Arial,sans-serif;text-align:center}
@media(max-width:650px){
  .fd-book,.fd-map{width:min(830px,calc(100vw - 36px))}
  .fd-scene footer{left:0!important;right:0!important;justify-content:center!important}
  .fd-footer-logo{width:160px;transform:none}
  .fd-study-stat{order:-1;align-items:center;gap:3px;margin:0;padding:8px 12px;transform:none}
  .fd-study-stat strong{font-size:20px}
  .fd-scene footer{flex-direction:column;align-items:center;gap:8px}
  .fd-image-warning{top:calc(var(--fd-lower-controls-top) + 145px);bottom:auto;width:max-content}
}
@media(min-width:651px) and (max-height:700px){
  .fd-book-scroll .fd-leaf{padding-top:30px;padding-bottom:22px}
  .fd-book h1{margin:16px 0}
  .fd-book h2{margin:12px 0}
  .fd-book blockquote{margin-bottom:14px}
}
@media(max-width:650px){
  .fd-food-description{font-size:16px;line-height:1.5}
  .fd-intro-more{display:none!important}
  .fd-intro .fd-intro-inline-action{
    display:inline!important;
    margin:0 0 0 3px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#dfc993!important;
    font:600 16px/1.3 Arial,sans-serif!important;
    text-decoration:underline;
    text-underline-offset:3px;
    vertical-align:baseline!important;
    white-space:nowrap;
  }
  .fd-status{display:none!important}
  .fd-scene.fd-has-status{min-height:100dvh!important}
}

/* Dish navigation lives inside the editorial panel, centered at its lower edge. */
.fd-intro{display:flex;flex-direction:column}
@media(min-width:651px){
  .fd-intro{background:rgba(11,33,39,.97)}
  .fd-intro p{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-weight:400;line-height:1.5}
  .fd-intro.fd-intro--short-copy p{
    font-size:clamp(12px,1.1vw,13.5px);
    line-height:1.4;
  }
  .fd-intro .fd-intro-more{
    align-self:center;
    margin-top:12px;
    padding:7px 14px;
    font:700 11px/1.2 Arial,sans-serif;
  }
}
.fd-intro-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:auto;padding-top:18px}
.fd-intro .fd-intro-nav button{
  min-height:32px;
  padding:7px 10px;
  border:1px solid #c5a36b;
  border-radius:2px;
  background:#f0dfb5;
  color:#33291e;
  font:700 clamp(10px,.85vw,13px)/1.2 Arial,sans-serif;
  cursor:pointer;
}
.fd-intro .fd-intro-nav button:disabled{opacity:.42;cursor:default}
.fd-intro .fd-intro-nav button:not(:disabled):hover{background:#ffeac0}
.fd-intro .fd-intro-nav button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.fd-intro .fd-intro-nav button.is-pending:disabled{
  opacity:1;
  background:#ffe8af;
  box-shadow:inset 0 3px 7px #5b361a66,0 0 0 3px #f1c96b55;
  transform:translateY(2px);
}
@media(max-width:650px){
  .fd-scene{
    --fd-lower-controls-top:max(calc(100vw + 30px),calc(66vw + 240px));
    height:max(100dvh,calc(var(--fd-lower-controls-top) + 230px))!important;
    min-height:max(100dvh,calc(var(--fd-lower-controls-top) + 230px))!important;
  }
  .fd-stall{height:100%!important}
  .fd-intro{padding-bottom:20px!important}
  .fd-intro-nav{padding-top:8px;gap:24px}
  .fd-intro .fd-intro-nav button{
    width:36px;
    min-height:34px;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:transparent!important;
    font-size:0!important;
  }
  .fd-intro .fd-intro-nav button::before{color:#f0dfb5;font:400 27px/1 Arial,sans-serif}
  .fd-intro .fd-intro-nav button[data-action="prev"]::before{content:"←"}
  .fd-intro .fd-intro-nav button[data-action="next"]::before{content:"→"}
  .fd-intro .fd-intro-nav button:not(:disabled):hover{background:transparent!important}
  .fd-intro .fd-intro-nav button.is-pending:disabled{
    border-radius:50%;
    background:#e9bf7155!important;
    box-shadow:inset 0 2px 8px #170f0c99,0 0 0 5px #e9bf7155,0 0 16px #f1c96b88;
  }
  .fd-intro .fd-intro-nav button.is-pending::before{color:#fff5ce}
  .fd-signal{top:var(--fd-lower-controls-top)!important}
  .fd-signal-nav{top:calc(var(--fd-lower-controls-top) - 2px)!important}
  .fd-stall-count{top:calc(var(--fd-lower-controls-top) + 82px)!important}
  .fd-tools{top:calc(var(--fd-lower-controls-top) + 102px)!important}
}

/* Show each course name in full; the old compact "Explore All" selector clipped Appetizers. */
.fd-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fd-tools label.fd-course-picker{padding:0 8px!important}
.fd-tools label.fd-course-picker select{display:block;width:100%!important;max-width:none!important;min-width:0;overflow:hidden;text-overflow:ellipsis;cursor:pointer}

/* Enlarge only the two review counts, not their labels or the net score. */
.fd-signal .fd-vote-count{font-size:1.4em;font-weight:700}
.fd-signal small{text-align:center}
.fd-intro-overlay{align-items:center;justify-items:center;padding:16px}
.fd-intro-summary{display:block!important}
.fd-intro-card--roomy{display:flex;flex-direction:column;justify-content:space-between;max-height:calc(100dvh - 32px)}
.fd-intro-card--roomy .fd-intro-copy{flex-shrink:0;margin:30px auto}
.fd-intro-card--roomy .fd-intro-summary{font-size:16px;line-height:1.5}
.fd-intro-card--roomy .fd-intro-action{margin-top:0}
.fd-intro-card--roomy .fd-intro-question{font-size:17px!important;font-weight:400}
@media(max-width:650px){
  .fd-intro-card--roomy .fd-intro-question{font-size:16px!important}
}
@media(min-width:651px){
  .fd-map--compact{display:flex;flex-direction:column;max-height:calc(100dvh - 36px)}
  .fd-map--compact h1,.fd-map--compact p,.fd-map--compact input{flex-shrink:0}
  .fd-map--compact .fd-map-list{flex:1;min-height:0}
}

/* The mobile study badge follows the controls, never the viewport bottom.
   Keep the footer in normal flow so its full height remains scrollable,
   including the methodology link, logo and iPhone safe-area clearance. */
@media(max-width:650px){
  .fd-scene,.fd-scene.fd-has-status{
    height:auto!important;
    min-height:100dvh!important;
    aspect-ratio:auto;
    padding-bottom:max(24px,env(safe-area-inset-bottom));
  }
  .fd-scene footer{
    position:relative!important;
    top:auto!important;
    bottom:auto!important;
    left:auto!important;
    right:auto!important;
    width:100%;
    margin:calc(var(--fd-lower-controls-top) + 158px) 0 0;
  }
}
