/* ============ TOKENS ============ */
  :root{
    --ink:#0E2233;
    --ink-soft:#4C6577;
    --paper:#F6F8F6;
    --paper-raised:#FFFFFF;
    --marine:#123B4A;
    --marine-deep:#0A2530;
    --marine-tint:#E4EEEC;
    --brass:#C08A2E;
    --brass-deep:#96691F;
    --coral:#D9603D;
    --mist:#DCE6E3;
    --line:rgba(14,34,51,0.12);
    --shadow:0 20px 45px -25px rgba(10,37,48,0.35);
    --radius:2px;
    --wrap:1180px;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#E9F1EF;
      --ink-soft:#A9C0C2;
      --paper:#0B1D27;
      --paper-raised:#12303D;
      --marine:#1E5567;
      --marine-deep:#081820;
      --marine-tint:#123240;
      --brass:#E0AC52;
      --brass-deep:#B98A34;
      --coral:#EE8563;
      --mist:#1E3B45;
      --line:rgba(233,241,239,0.14);
      --shadow:0 20px 45px -25px rgba(0,0,0,0.6);
    }
  }
  :root[data-theme="dark"]{
    --ink:#E9F1EF;
    --ink-soft:#A9C0C2;
    --paper:#0B1D27;
    --paper-raised:#12303D;
    --marine:#1E5567;
    --marine-deep:#081820;
    --marine-tint:#123240;
    --brass:#E0AC52;
    --brass-deep:#B98A34;
    --coral:#EE8563;
    --mist:#1E3B45;
    --line:rgba(233,241,239,0.14);
    --shadow:0 20px 45px -25px rgba(0,0,0,0.6);
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  @media (prefers-reduced-motion: reduce){
    html{scroll-behavior:auto;}
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
  }
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Fraunces", Georgia, "Times New Roman", serif;
    font-weight:600;
    line-height:1.1;
    margin:0;
    text-wrap:balance;
    color:var(--ink);
  }
  p{margin:0;}
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px;}
  section{scroll-margin-top:84px;}
  .eyebrow{
    font-family:"Public Sans", sans-serif;
    font-size:12.5px;
    font-weight:700;
    letter-spacing:.14em;
    text-transform:uppercase;
    color:var(--brass-deep);
  }
  .num{font-variant-numeric:tabular-nums;}
  .btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:14px 26px;
    border-radius:var(--radius);
    font-weight:700;
    font-size:14.5px;
    letter-spacing:.02em;
    text-decoration:none;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
    white-space:nowrap;
  }
  .btn:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
  .btn-primary{background:var(--coral); color:#fff;}
  .btn-primary:hover{background:#c25230; box-shadow:var(--shadow); transform:translateY(-1px);}
  .btn-ghost{background:transparent; color:var(--paper-raised); border-color:rgba(255,255,255,.55);}
  .btn-ghost:hover{background:rgba(255,255,255,.12);}
  .btn-outline{background:transparent; color:var(--marine); border-color:var(--line);}
  :root[data-theme="dark"] .btn-outline, .btn-outline{color:var(--ink);}
  .btn-outline:hover{border-color:var(--brass); color:var(--brass-deep);}
  .btn-small{padding:10px 16px; font-size:13px;}

  /* ============ HEADER / NAV ============ */
  .site-header{
    position:sticky; top:0; z-index:50;
    background:color-mix(in srgb, var(--paper) 88%, transparent);
    backdrop-filter:blur(10px) saturate(1.1);
    border-bottom:1px solid var(--line);
  }
  .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 28px; max-width:var(--wrap); margin:0 auto; gap:18px;
  }
  .brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
  .brand svg{flex:none;}
  .brand-text{font-family:"Fraunces", serif; font-weight:700; font-size:19px; letter-spacing:.01em;}
  .brand-text small{display:block; font-family:"Public Sans",sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft);}
  .concept-tag{
    font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
    color:var(--brass-deep); border:1px solid var(--brass); border-radius:20px;
    padding:3px 9px; margin-left:6px; white-space:nowrap;
  }
  .nav-links{display:flex; align-items:center; gap:19px; list-style:none; margin:0; padding:0;}
  .nav-links a{
    text-decoration:none; font-size:14px; font-weight:600; color:var(--ink-soft);
    padding:6px 2px; border-bottom:2px solid transparent; transition:color .15s, border-color .15s;
  }
  .nav-links a:hover, .nav-links a.active{color:var(--ink); border-color:var(--coral);}
  .nav-actions{display:flex; align-items:center; gap:14px;}
  .nav-phone{display:flex; align-items:center; gap:6px; font-size:13.5px; font-weight:600; text-decoration:none; color:var(--ink-soft);}
  .nav-phone:hover{color:var(--ink);}
  .menu-toggle{display:none;}
  .menu-btn{display:none; background:none; border:1px solid var(--line); border-radius:6px; padding:8px 10px; cursor:pointer; flex:none;}
  .menu-btn svg{display:block;}
  .btn-label-short{display:none;}

  @media (max-width: 1040px){
    .nav-links{
      position:fixed; inset:64px 0 0 0; background:var(--paper); flex-direction:column;
      align-items:flex-start; gap:0; padding:8px 28px 28px; border-top:1px solid var(--line);
      transform:translateY(-8px); opacity:0; pointer-events:none; transition:opacity .18s ease, transform .18s ease;
      overflow:auto;
    }
    .nav-links a{padding:14px 0; width:100%; border-bottom:1px solid var(--line);}
    .menu-toggle:checked ~ .nav-links{transform:translateY(0); opacity:1; pointer-events:auto;}
    .menu-btn{display:inline-flex;}
    .nav-phone{display:none;}
  }
  @media (max-width: 640px){
    .nav-row{padding:12px 16px; gap:10px;}
    .concept-tag{display:none;}
    .brand-text{font-size:16px;}
  }
  @media (max-width: 400px){
    .brand-text small{display:none;}
    .btn-label-full{display:none;}
    .btn-label-short{display:inline;}
    .nav-actions .btn-small{padding:9px 13px;}
  }

  /* ============ HERO ============ */
  .hero{
    position:relative; overflow:hidden;
    background:
      radial-gradient(120% 140% at 15% 0%, #1c5163 0%, transparent 55%),
      linear-gradient(165deg, var(--marine-deep) 0%, var(--marine) 52%, #2c7a72 100%);
    color:#F3F7F5;
    padding:76px 0 0;
  }
  .hero-waves{position:absolute; inset:auto 0 0 0; line-height:0; z-index:0;}
  .hero-inner{position:relative; z-index:1; padding:52px 0 130px;}
  .hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center;}
  .hero-copy .eyebrow{color:#F0C777;}
  .hero-copy h1{
    font-size:clamp(30px, 5vw, 56px); font-weight:600; color:#fff; margin-top:14px;
  }
  .hero-copy .lede{
    margin-top:20px; font-size:16.5px; max-width:58ch; color:#D9E7E4;
  }
  .hero-cta{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
  .hero-stats{display:flex; gap:28px; margin-top:44px; flex-wrap:wrap;}
  .hero-stats div{border-left:2px solid rgba(240,199,119,.55); padding-left:12px;}
  .hero-stats b{display:block; font-family:"Fraunces",serif; font-size:24px; font-weight:600;}
  .hero-stats span{font-size:12px; color:#B9CFCB; letter-spacing:.03em;}

  .hero-art{
    position:relative; aspect-ratio:4/5; border-radius:4px; overflow:hidden;
    background:
      radial-gradient(circle at 30% 20%, #F0C777 0%, transparent 38%),
      linear-gradient(200deg,#0B2A33,#1D5A67 55%,#3E8B77 100%);
    box-shadow:var(--shadow);
  }
  .hero-art svg{position:absolute; inset:0; width:100%; height:100%;}
  .hero-art-label{
    position:absolute; left:16px; bottom:16px; right:16px;
    background:rgba(10,37,48,.55); backdrop-filter:blur(4px);
    border:1px solid rgba(255,255,255,.18); border-radius:2px; padding:10px 14px;
    font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:#EAF3F1;
  }
  @media (max-width:900px){
    .hero-grid{grid-template-columns:1fr; gap:36px;}
    .hero-art{aspect-ratio:16/10;}
    .hero-copy .lede{max-width:none;}
  }
  @media (max-width:520px){
    .hero-inner{padding-bottom:180px;}
    .hero-stats{gap:20px;}
  }

  /* Booking widget */
  .booking-widget{
    position:relative; z-index:2; margin-top:-84px;
  }
  .booking-card{
    background:var(--paper-raised); border:1px solid var(--line); border-radius:6px;
    box-shadow:var(--shadow); padding:26px 28px; display:grid;
    grid-template-columns:1.1fr 1.1fr 1fr 1fr auto; gap:18px; align-items:end;
  }
  .field{display:flex; flex-direction:column; gap:7px;}
  .field label{font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft);}
  .field input, .field select{
    border:1px solid var(--line); border-radius:4px; padding:11px 12px; font-size:14.5px;
    font-family:inherit; background:var(--paper); color:var(--ink);
  }
  .field input:focus-visible, .field select:focus-visible{outline:2px solid var(--brass); outline-offset:1px;}
  .booking-card .btn{width:100%; justify-content:center; padding:14px 18px;}
  @media (max-width:900px){
    .booking-card{grid-template-columns:1fr 1fr; }
    .booking-card .btn{grid-column:1/-1;}
  }
  @media (max-width:520px){
    .booking-card{grid-template-columns:1fr; padding:20px;}
    .booking-card .btn{grid-column:auto;}
  }

  /* ============ SECTION SCAFFOLD ============ */
  .section{padding:120px 0 84px;}
  .section-tight{padding:84px 0;}
  @media (max-width:640px){
    .section{padding:72px 0 56px;}
    .section-tight{padding:56px 0;}
  }
  .section-head{max-width:640px; margin-bottom:48px;}
  .section-head h2{font-size:clamp(28px,3.4vw,40px); margin-top:12px;}
  .section-head p{margin-top:14px; color:var(--ink-soft); font-size:15.5px;}
  .section-alt{background:var(--paper-raised); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}

  /* trust strip */
  .trust{
    display:flex; flex-wrap:wrap; gap:32px; justify-content:space-between; align-items:center;
    padding:26px 0; border-bottom:1px solid var(--line); font-size:13.5px; color:var(--ink-soft);
  }
  .trust strong{color:var(--ink); font-family:"Fraunces",serif; font-weight:600; font-size:15px;}
  .trust-item{display:flex; align-items:center; gap:8px;}

  /* amenities */
  .amenity-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:4px; overflow:hidden;}
  .amenity{background:var(--paper); padding:30px 26px; display:flex; flex-direction:column; gap:12px;}
  .amenity svg{color:var(--brass-deep);}
  .amenity h3{font-size:17px; font-weight:600;}
  .amenity p{font-size:13.8px; color:var(--ink-soft);}
  @media (max-width:820px){ .amenity-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .amenity-grid{grid-template-columns:1fr;} }

  /* rooms */
  .room-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
  @media (max-width:980px){ .room-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .room-grid{grid-template-columns:1fr;} }
  .room-card{
    border:1px solid var(--line); border-radius:6px; overflow:hidden; background:var(--paper-raised);
    display:flex; flex-direction:column; transition:box-shadow .18s ease, transform .18s ease;
  }
  .room-card:hover{box-shadow:var(--shadow); transform:translateY(-3px);}
  .room-art{aspect-ratio:4/3; position:relative; display:flex; align-items:flex-end;}
  .room-art .tag{
    margin:14px; background:rgba(10,25,32,.5); backdrop-filter:blur(3px); color:#fff;
    font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; padding:6px 10px; border-radius:2px;
    border:1px solid rgba(255,255,255,.25);
  }
  .room-body{padding:20px 22px 24px; display:flex; flex-direction:column; gap:12px; flex:1;}
  .room-body h3{font-size:19px;}
  .room-body .desc{font-size:13.8px; color:var(--ink-soft); flex:1;}
  .room-tags{display:flex; gap:6px; flex-wrap:wrap;}
  .room-tags span{font-size:11px; background:var(--marine-tint); color:var(--marine); padding:4px 9px; border-radius:20px; font-weight:600;}
  .room-foot{display:flex; align-items:center; justify-content:space-between; padding-top:10px; border-top:1px solid var(--line);}
  .room-price{font-family:"Fraunces",serif; font-size:20px;}
  .room-price small{font-family:"Public Sans",sans-serif; font-size:11.5px; font-weight:600; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.04em;}
  .room-foot a{font-size:13px; font-weight:700; color:var(--coral); text-decoration:none;}
  .room-foot a:hover{text-decoration:underline;}

  /* marina */
  .marina{background:var(--marine-deep); color:#EAF3F1; position:relative; overflow:hidden;}
  .marina-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
  .marina .eyebrow{color:#F0C777;}
  .marina h2{color:#fff; margin-top:12px;}
  .marina p.lede{margin-top:16px; color:#C7DBD6; max-width:48ch; font-size:15.5px;}
  .marina-list{margin-top:24px; display:flex; flex-direction:column; gap:12px;}
  .marina-list div{display:flex; gap:10px; font-size:14px; color:#DCEBE7;}
  .marina-list svg{flex:none; color:#F0C777; margin-top:2px;}
  .stat-tiles{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); border-radius:4px; overflow:hidden;}
  .stat-tile{background:rgba(255,255,255,.04); padding:26px 22px;}
  .stat-tile b{display:block; font-family:"Fraunces",serif; font-size:34px; font-weight:600; color:#F0C777;}
  .stat-tile span{font-size:12px; color:#B9CFCB; letter-spacing:.03em;}
  @media (max-width:900px){ .marina-grid{grid-template-columns:1fr;} }
  @media (max-width:420px){ .stat-tiles{grid-template-columns:1fr;} }

  /* dining */
  .dining-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center;}
  @media (max-width:900px){ .dining-grid{grid-template-columns:1fr;} }
  .dining-art{aspect-ratio:5/4; border-radius:6px; position:relative; overflow:hidden;
    background:linear-gradient(155deg,#2b1710,#6b3a20 45%,#c98a3f 100%); box-shadow:var(--shadow);}
  .menu-list{margin-top:20px; display:grid; grid-template-columns:1fr 1fr; gap:10px 22px;}
  @media (max-width:480px){ .menu-list{grid-template-columns:1fr;} }
  .menu-list div{display:flex; justify-content:space-between; gap:10px; font-size:14px; padding:9px 0; border-bottom:1px dashed var(--line);}
  .menu-list span:last-child{color:var(--ink-soft); font-size:12.5px;}
  .hours-badge{display:inline-flex; gap:18px; margin-top:18px; padding:14px 18px; background:var(--marine-tint); border-radius:4px; font-size:13px;}
  .hours-badge b{display:block; font-size:13.5px;}

  /* video */
  .video-frame{
    position:relative; border-radius:6px; overflow:hidden; box-shadow:var(--shadow);
    aspect-ratio:16/9; border:1px solid var(--line);
    display:block; text-decoration:none;
    background:
      radial-gradient(circle at 75% 20%, rgba(240,199,119,.35), transparent 45%),
      linear-gradient(155deg,#0A2530,#123B4A 45%,#2C7A72 100%);
  }
  .video-frame:hover .play-btn{transform:translate(-50%,-50%) scale(1.06); background:#fff;}
  .play-btn{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:82px; height:82px; border-radius:50%; background:rgba(255,255,255,.92);
    display:flex; align-items:center; justify-content:center; box-shadow:0 10px 30px rgba(0,0,0,.35);
    transition:transform .18s ease, background .18s ease;
  }
  .play-btn svg{margin-left:5px;}
  .video-caption{
    position:absolute; left:20px; bottom:18px; right:20px; color:#fff;
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  }
  .video-caption b{font-family:"Fraunces",serif; font-weight:600; font-size:16px;}
  .video-caption span{font-size:12px; color:#CFE1DC;}

  /* gallery */
  .gallery-grid{display:grid; grid-template-columns:repeat(6,1fr); grid-auto-rows:120px; gap:10px;}
  .gallery-grid a{grid-column:span 2; grid-row:span 2; position:relative; border-radius:4px; overflow:hidden; display:block;}
  .gallery-grid a:nth-child(1){grid-column:span 3; grid-row:span 3;}
  .gallery-grid a:nth-child(4){grid-column:span 3; grid-row:span 2;}
  .gallery-grid a:nth-child(2),.gallery-grid a:nth-child(3){grid-column:span 3;}
  .gallery-tile{position:absolute; inset:0;}
  .gallery-cap{
    position:absolute; left:12px; bottom:12px; right:12px; color:#fff; font-size:12px; font-weight:600;
    letter-spacing:.03em; text-shadow:0 1px 6px rgba(0,0,0,.5);
  }
  @media (max-width:760px){
    .gallery-grid{grid-template-columns:repeat(2,1fr); grid-auto-rows:150px;}
    .gallery-grid a,
    .gallery-grid a:nth-child(1),
    .gallery-grid a:nth-child(2),
    .gallery-grid a:nth-child(3),
    .gallery-grid a:nth-child(4){grid-column:span 1; grid-row:span 1;}
  }

  /* location */
  .location-grid{display:grid; grid-template-columns:1fr 1fr; gap:0; border:1px solid var(--line); border-radius:6px; overflow:hidden;}
  @media (max-width:900px){ .location-grid{grid-template-columns:1fr;} }
  .location-info{padding:40px; background:var(--paper-raised);}
  @media (max-width:480px){ .location-info{padding:26px 22px;} }
  .location-info dl{display:grid; grid-template-columns:auto 1fr; gap:10px 16px; margin:22px 0 0; font-size:14px;}
  .location-info dt{color:var(--ink-soft); font-weight:600;}
  .location-info dd{margin:0;}
  .rec-chips{display:flex; gap:8px; flex-wrap:wrap; margin-top:20px;}
  .rec-chips span{font-size:12px; background:var(--marine-tint); color:var(--marine); padding:6px 12px; border-radius:20px; font-weight:600;}
  .map-embed{
    min-height:340px; position:relative; overflow:hidden; text-decoration:none; display:block;
    background:
      radial-gradient(circle at 70% 30%, rgba(240,199,119,.3), transparent 45%),
      linear-gradient(155deg,#0A2530,#123B4A 50%,#2C7A72 100%);
  }
  .map-embed svg{position:absolute; inset:0; width:100%; height:100%; opacity:.55;}
  .map-pin{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-100%);
    display:flex; flex-direction:column; align-items:center; gap:6px;
  }
  .map-cta{
    position:absolute; left:20px; bottom:18px; right:20px;
    display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; color:#fff;
  }
  .map-cta b{font-family:"Fraunces",serif; font-weight:600; font-size:15px;}
  .map-cta span{font-size:12px; color:#CFE1DC;}

  /* cta band */
  .cta-band{
    background:linear-gradient(120deg, var(--brass-deep), var(--brass) 60%, #d9a94c);
    color:#28190B; padding:64px 0; text-align:center;
  }
  .cta-band h2{color:#241705;}
  .cta-band p{margin-top:10px; color:#4a340f; font-size:15px;}
  .cta-band .hero-cta{justify-content:center; margin-top:26px;}
  .cta-band .btn-ghost{border-color:rgba(36,23,5,.4); color:#241705;}
  .cta-band .btn-ghost:hover{background:rgba(36,23,5,.08);}

  /* footer */
  footer{background:var(--marine-deep); color:#CFE1DC; padding:70px 0 26px;}
  .footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12);}
  @media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr; row-gap:32px;} }
  @media (max-width:480px){ .footer-grid{grid-template-columns:1fr;} }
  .footer-brand .brand-text{color:#fff;}
  .footer-brand p{margin-top:14px; font-size:13.5px; color:#A9C3BD; max-width:32ch;}
  footer h4{color:#fff; font-family:"Public Sans",sans-serif; font-size:12px; letter-spacing:.1em; text-transform:uppercase; margin-bottom:16px; font-weight:700;}
  footer ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
  footer a{text-decoration:none; color:#B9CFCB; font-size:13.8px;}
  footer a:hover{color:#fff;}
  .upgrade-note{
    margin-top:44px; padding:22px 24px; border:1px solid rgba(240,199,119,.35);
    border-radius:6px; background:rgba(240,199,119,.06); display:flex; gap:16px; align-items:flex-start;
  }
  .upgrade-note svg{flex:none; color:#F0C777; margin-top:2px;}
  .upgrade-note b{color:#fff; display:block; margin-bottom:4px; font-size:14px;}
  .upgrade-note p{font-size:13.3px; color:#B9CFCB; line-height:1.6;}
  .footer-bottom{display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; padding-top:22px; font-size:12.3px; color:#88A29C;}

  .waves{display:block; width:100%; height:auto;}

  /* ============ AI CONCIERGE WIDGET ============ */
  .ai-chat-fab{
    position:fixed; right:22px; bottom:22px; z-index:45; width:60px; height:60px; border-radius:50%; border:none;
    cursor:pointer; background:var(--coral); color:#fff; display:flex; align-items:center; justify-content:center;
    box-shadow:0 12px 28px -10px rgba(10,37,48,.5); transition:transform .18s ease, box-shadow .18s ease;
  }
  .ai-chat-fab:hover{transform:translateY(-2px) scale(1.04); box-shadow:0 16px 34px -10px rgba(10,37,48,.55);}
  .ai-chat-fab:focus-visible{outline:2px solid var(--brass); outline-offset:3px;}
  .ai-chat-fab .dot{position:absolute; top:6px; right:6px; width:12px; height:12px; border-radius:50%; background:#3FBF7F; border:2px solid var(--paper-raised);}
  @media (prefers-reduced-motion: no-preference){ .ai-chat-fab .dot{animation:ai-pulse 2.2s ease-in-out infinite;} }
  @keyframes ai-pulse{0%,100%{box-shadow:0 0 0 0 rgba(63,191,127,.55);} 50%{box-shadow:0 0 0 6px rgba(63,191,127,0);}}
  @media (max-width:520px){ .ai-chat-fab{right:16px; bottom:16px; width:54px; height:54px;} }

  .ai-chat-panel{
    position:fixed; right:22px; bottom:94px; z-index:45; width:310px; max-width:calc(100vw - 44px);
    background:var(--paper-raised); border:1px solid var(--line); border-radius:12px; box-shadow:var(--shadow);
    overflow:hidden; transform:translateY(12px) scale(.97); opacity:0; pointer-events:none;
    transition:transform .18s ease, opacity .18s ease;
  }
  .ai-chat-panel.open{transform:translateY(0) scale(1); opacity:1; pointer-events:auto;}
  @media (max-width:520px){ .ai-chat-panel{right:16px; bottom:82px;} }
  .ai-chat-head{background:var(--marine-deep); color:#fff; padding:16px 18px;}
  .ai-chat-head b{font-family:"Fraunces",serif; font-size:14.5px; display:block; font-weight:600;}
  .ai-chat-head span{font-size:11.5px; color:#B9CFCB; display:flex; align-items:center; gap:5px; margin-top:3px;}
  .ai-chat-head span i{width:7px; height:7px; border-radius:50%; background:#3FBF7F; display:inline-block;}
  .ai-chat-body{padding:16px; display:flex; flex-direction:column; gap:10px;}
  .ai-chat-bubble{background:var(--marine-tint); color:var(--ink); border-radius:10px 10px 10px 2px; padding:10px 13px; font-size:13px; max-width:90%; line-height:1.5;}
  .ai-chat-input{display:flex; gap:8px; padding:12px 14px; border-top:1px solid var(--line);}
  .ai-chat-input input{flex:1; border:1px solid var(--line); border-radius:20px; padding:9px 14px; font-size:12.5px; font-family:inherit; background:var(--paper); color:var(--ink);}
  .ai-chat-input input:disabled, .ai-chat-input button:disabled{opacity:.6; cursor:not-allowed;}
  .ai-chat-input button{border:none; background:var(--coral); color:#fff; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none;}
  .ai-chat-note{padding:0 16px 14px; font-size:10.5px; color:var(--ink-soft);}

  /* ============ FACEBOOK FEED MOCK ============ */
  .fb-feed{margin-top:56px; padding-top:44px; border-top:1px solid var(--line);}
  .fb-feed-head{display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:24px;}
  .fb-feed-head .fb-title{display:flex; align-items:center; gap:12px;}
  .fb-logo{flex:none;}
  .fb-feed-head .fb-title b{font-family:"Fraunces",serif; font-size:18px; font-weight:600; display:block;}
  .fb-feed-head .fb-title p{font-size:12.3px; color:var(--ink-soft); margin-top:2px;}
  .fb-follow{display:inline-flex; align-items:center; gap:7px; font-size:13px; font-weight:700; padding:9px 16px; border-radius:20px; background:#1877F2; color:#fff; text-decoration:none; white-space:nowrap;}
  .fb-follow:hover{background:#145DC4;}
  .fb-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  @media (max-width:900px){ .fb-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:640px){ .fb-grid{grid-template-columns:1fr;} }
  .fb-post{border:1px solid var(--line); border-radius:8px; background:var(--paper-raised); overflow:hidden; display:flex; flex-direction:column;}
  .fb-post-head{display:flex; align-items:center; gap:10px; padding:14px 16px 0;}
  .fb-post-avatar{width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; color:#fff;}
  .fb-post-who b{display:block; font-size:13px; font-weight:700;}
  .fb-post-who span{display:block; font-size:11px; color:var(--ink-soft); margin-top:1px;}
  .fb-post-text{padding:10px 16px 14px; font-size:13.2px; color:var(--ink); line-height:1.55;}
  .fb-post-media{aspect-ratio:16/9;}
  .fb-post-stats{display:flex; align-items:center; justify-content:space-between; padding:10px 16px; border-top:1px solid var(--line); font-size:11.5px; color:var(--ink-soft); margin-top:auto;}
  .fb-post-stats .grp{display:inline-flex; align-items:center; gap:5px;}
