/* Breakfast Time - Styles */
:root{
  --bg:#f0cfa2;          /* warm peach background */
  --bg-deeper:#b07952;   /* brown circle */
  --accent:#cc4b1f;      /* callout red/orange */
  --text:#2c2c2c;
  --muted:#5c5c5c;
  --cream:#fff7ec;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family:"Poppins",system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:var(--bg);
}

.canvas{
  position:relative;
  min-height:100svh;
  overflow:hidden;
}

/* Decorative dots grid */
.dot-grid{
  position:absolute;inset:auto auto auto 1rem;top:3rem;left:1rem;
  width:110px;height:110px;
  --dot:#1e1e1e; --size:10px; --gap:10px;
  background:
    radial-gradient(var(--dot) 40%,transparent 41%) 0 0/var(--size) var(--size);
  filter:contrast(120%);
  mask: radial-gradient(circle at 0 0, black 65px, transparent 66px);
  opacity:.35;
  z-index:0; pointer-events:none;
}

/* Big arcs like the flyer corners */
.big-arc{
  position:absolute;right:-18vw;bottom:-18vw;width:55vw;height:55vw;border-radius:50%;
  background:var(--bg-deeper);
  filter:saturate(0.9);
}
.big-arc.arc-2{right:auto;left:-22vw;bottom:-22vw;width:45vw;height:45vw;opacity:.2}

/* Subtle rays */
.sun-rays{position:absolute;left:52%;top:48%;width:120px;height:120px;pointer-events:none}
.sun-rays::before{content:"";position:absolute;inset:0;background:
  conic-gradient(from 0deg,#0000 0 70deg,#0003 70deg 75deg,#0000 75deg 360deg);
  -webkit-mask:radial-gradient(circle,transparent 52%,#000 53%);
  mask:radial-gradient(circle,transparent 52%,#000 53%);
  opacity:.15;transform:rotate(-25deg)
}

/* Content column */
.content{
  position:relative;z-index:2;
  max-width:760px;padding:56px 24px 120px 48px;
}

.hero .title{
  font-family:"Pacifico", cursive;
  font-size:clamp(40px,6vw,88px);
  line-height:1.05;margin:0 0 8px;
  color:#ffffff;
  text-decoration:none;
  white-space:nowrap;
}
.hero{ text-align:center; }
.brand{display:inline-flex;align-items:center;gap:16px}
.brand-logo{width:96px;height:auto;filter:drop-shadow(0 3px 6px rgba(0,0,0,.15))}
@media (max-width:640px){
  .brand{gap:10px}
  .brand-logo{width:72px}
}
.hero .subtitle{
  text-transform:uppercase;letter-spacing:.08em;font-weight:500;
  font-size:14px;line-height:1.6;margin:6px 0 28px;color:var(--muted);
  text-shadow:0 2px 8px rgba(0,0,0,.08);
}

.features .intro{margin:0 0 12px;color:var(--muted)}
.list{list-style:none;margin:0;padding:0;display:grid;gap:12px;max-width:520px}
.list li{display:flex;align-items:center;gap:12px;font-size:18px}
.icon{font-size:22px;display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--cream);box-shadow:0 1px 0 #0001,inset 0 0 0 1px #0002}
t.svg-icon{width:32px;height:32px;object-fit:contain;border-radius:50%;background:var(--cream);box-shadow:0 1px 0 #0001,inset 0 0 0 1px #0002;padding:4px}

.availability{margin:28px 0 0;display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.availability .badge{
  background:var(--accent);color:white;border-radius:8px;padding:14px 16px;font-weight:600;
  box-shadow:0 6px 12px rgba(204,75,31,.35);
}
.availability p{margin:0;color:#3b2a21}
.availability strong{font-weight:700}

/* Contact */
.contact{display:grid;gap:10px;margin-top:28px}
.contact-item{display:flex;align-items:center;gap:10px}
.contact-icon{font-size:20px}
.contact-text{color:inherit;text-decoration:none}
.contact a:hover{opacity:.8}

/* Right plate image */
.hero-plate{position:absolute;right:5vw;bottom:5vw;width:min(45vw,500px);aspect-ratio:1;z-index:1;margin:0}
.plate-base{
  width:100%;
  height:100%;
  border-radius:50%;
  background:linear-gradient(145deg, #f8f8f8 0%, #e8e8e8 100%);
  border:8px solid #d0d0d0;
  box-shadow:
    0 8px 24px rgba(0,0,0,0.15),
    inset 0 2px 4px rgba(255,255,255,0.8),
    inset 0 -2px 4px rgba(0,0,0,0.1);
  position:relative;
  z-index:1;
}
.plate-base::before{
  content:"";
  position:absolute;
  top:15%;
  left:15%;
  right:15%;
  bottom:15%;
  border-radius:50%;
  border:2px solid rgba(200,200,200,0.5);
}
.food-items{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none;border-radius:50%;overflow:hidden}
/*
  Make food size relative to plate: percentage-based width with sensible min/max.
  Also use CSS vars to combine translate + scale so the reveal animation isn't overridden
  by nth-child translate rules.
*/
.food-item{
  position:absolute;
  /* Large but not clipping: ~55% of plate by default */
  width:clamp(120px, 55%, 420px);
  height:auto;
  object-fit:contain;
  opacity:0;
  /* translate (via vars) + scale so we can animate size without losing position */
  --tx: 0; --ty: 0; --scale: .9;
  transform: translate(var(--tx), var(--ty)) scale(var(--scale));
  transition:opacity .5s ease, transform .5s ease;
  z-index:999;
}
.food-item.show{opacity:1; --scale: 1}
/* Anchor four comfy spots inside the plate */
/* Cardinal layout: top, right, bottom, left (with safe inset to avoid clipping) */
.food-item:nth-child(1){top:35%;left:50%;--tx:-50%;--ty:-50%} /* top */
.food-item:nth-child(2){top:50%;left:65%;--tx:-50%;--ty:-50%} /* right */
.food-item:nth-child(3){top:65%;left:50%;--tx:-50%;--ty:-50%} /* bottom */
.food-item:nth-child(4){top:50%;left:35%;--tx:-50%;--ty:-50%} /* left */

/* Slow spin animation for the hero image */
@keyframes slow-spin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}
.hero-plate .plate-base{animation:slow-spin 120s linear infinite;transform-origin:center}
.food-items{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10;pointer-events:none}

/* Animations */
.reveal{opacity:0;transform:translateY(8px);transition:opacity .6s ease,transform .6s ease}
.reveal.show{opacity:1;transform:none}

/* Build Your Own section (simple list) */
.byo{margin-top:36px}
.byo h2{margin:0 0 6px;font-size:28px}
.byo-sub{margin:0 0 8px;color:#3b2a21}
.byo-sub .price{background:var(--cream);padding:2px 8px;border-radius:6px;font-weight:700;box-shadow:0 1px 0 #0001}
.byo-intro{margin:0 0 12px;color:var(--muted);font-weight:500}
.byo-list{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:640px}
.byo-item{cursor:pointer;transition:transform .2s ease, box-shadow .2s ease}
.byo-item:hover{transform:translateY(-2px);box-shadow: 0 12px 32px rgba(30,30,30,.18), inset 0 1px 0 rgba(255,255,255,.4)}
.byo-item.selected{background: linear-gradient(135deg, rgba(204,75,31,.25), rgba(204,75,31,.15));border-color:var(--accent)}
.byo-item.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}
.clear-btn{margin-top:16px;padding:10px 20px;background:var(--accent);color:white;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .2s ease}
.clear-btn:hover{background:#b73e1a}
.clear-btn:disabled{opacity:.5;cursor:not-allowed}
.byo-list li{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;overflow:hidden;
  /* Liquid glass base */
  background: linear-gradient(135deg, rgba(255,255,255,.34), rgba(255,255,255,.16));
  border:1px solid rgba(255,255,255,.45);
  box-shadow: 0 8px 24px rgba(30,30,30,.12), inset 0 1px 0 rgba(255,255,255,.35);
  backdrop-filter: blur(10px) saturate(1.2);
  -webkit-backdrop-filter: blur(10px) saturate(1.2);
}
.byo-list li::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120px 60px at 12% 0%, rgba(255,255,255,.55), transparent 70%),
    linear-gradient(180deg, rgba(255,255,255,.08), transparent 40%);
  opacity:.9;
}
.byo-list .icon{background:rgba(255,255,255,.65);border:1px solid rgba(255,255,255,.65);box-shadow:0 1px 0 rgba(255,255,255,.4);backdrop-filter:blur(4px) saturate(1.2);-webkit-backdrop-filter:blur(4px) saturate(1.2)}

/* Responsive tweaks */
@media (max-width: 900px){
  .hero-plate{right:2vw;bottom:2vw;width:min(50vw,450px)}
}
@media (max-width: 640px){
  .canvas{padding-bottom:160px}
  .content{padding:32px 18px 120px 18px}
  .dot-grid{display:none}
  .big-arc{right:-34vw;bottom:-34vw}
  .byo-list{grid-template-columns:1fr}
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition:none!important}
}

/* Additional responsive enhancements */
@media (max-width: 1024px){
  .content{padding:48px 24px 120px 32px}
  .hero-plate{right:3vw;bottom:3vw;width:min(48vw,480px)}
  /* Keep very large on tablets */
  .food-item{width:clamp(110px, 58%, 400px)}
}
@media (max-width: 768px){
  .content{padding:40px 20px 140px 20px}
  .hero-plate{right:2vw;bottom:2vw;width:min(55vw,400px)}
  .byo-list{grid-template-columns:1fr}
  .food-item{width:clamp(100px, 60%, 360px)}
}
@media (max-width: 480px){
  .hero-plate{right:2vw;bottom:2vw;width:min(65vw,300px)}
  .dot-grid, .sun-rays, .big-arc.arc-2{display:none}
  .food-item{width:clamp(90px, 62%, 300px)}
}

/* Larger screens: scale the dish up */
@media (min-width: 1200px){
  .hero-plate{right:8vw;bottom:8vw;width:min(42vw,520px)}
}
@media (min-width: 1600px){
  .hero-plate{right:10vw;bottom:10vw;width:min(40vw,600px)}
}
