/* English Nest — Writing V1 / Milton */
:root{
  --write-navy:#0b2a55;
  --write-navy-2:#123b71;
  --write-ink:#102848;
  --write-muted:#7f8da0;
  --write-gold:#caa66a;
  --write-gold-soft:#eadcc4;
  --write-ivory:#faf7f1;
  --write-cream:#f1ece3;
  --write-white:#fff;
  --write-line:#e6dfd4;
  --write-green:#2f8f68;
  --write-red:#c95757;
}
.hidden{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.writing-hero{
  width:min(1200px,calc(100% - 48px));
  margin:14px auto 96px;
  min-height:430px;
  border-radius:36px;
  background:linear-gradient(135deg,var(--navy),#0c2b58);
  color:#fff;
  padding:72px 7%;
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:54px;
  align-items:center;
  position:relative;
  overflow:hidden;
}
.writing-hero:before{
  content:"";position:absolute;width:460px;height:460px;left:-150px;bottom:-270px;border-radius:50%;
  background:radial-gradient(circle,rgba(200,169,108,.28),transparent 68%);
}
.writing-hero:after{
  content:"";position:absolute;width:210px;height:210px;left:72px;bottom:-105px;border:1px solid rgba(255,255,255,.07);border-radius:50%;
}
.writing-hero-copy{position:relative;z-index:2}
.writing-kicker{display:inline-block;color:#ead9b9;font-size:12px;font-weight:800;letter-spacing:.08em;margin-bottom:20px}
.writing-hero h1{margin:0;font-size:clamp(48px,5.7vw,72px);line-height:1.06;letter-spacing:-.045em}
.writing-hero h1 span{color:#ead9b9}
.writing-hero p{max-width:650px;margin:26px 0 0;color:#ccd7e6;font-size:17px;line-height:1.95}

.writing-visual{height:230px;display:grid;place-items:center;position:relative;z-index:2}
.pen-card{width:190px;height:190px;border:1px solid rgba(255,255,255,.13);border-radius:32px;background:rgba(255,255,255,.035);display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.015)}
.pen-card svg{width:112px;height:112px;stroke:#e6c98f;stroke-width:4;fill:none;stroke-linecap:round;stroke-linejoin:round}

.writing-section{width:min(1200px,calc(100% - 48px));margin:0 auto 110px}
.writing-level-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.writing-level-card{min-height:300px;background:#fff;border:1px solid var(--line);border-radius:27px;padding:28px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 8px 28px rgba(25,33,48,.03);transition:.3s;cursor:pointer;outline:none;position:relative;overflow:hidden}
.writing-level-card:after{content:"";position:absolute;left:-45px;bottom:-68px;width:150px;height:150px;border-radius:50%;background:var(--gold-soft);opacity:.22;transition:.3s}
.writing-level-card:hover,.writing-level-card:focus-visible{transform:translateY(-6px);box-shadow:var(--shadow);border-color:#ddd3c2}
.writing-level-card:hover:after,.writing-level-card:focus-visible:after{transform:scale(1.08);opacity:.42}
.level-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2}
.level-code{background:#f8f4ec;color:var(--navy);border:1px solid #e8decc;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800}
.level-number{color:#a4adba;font-size:12px;font-weight:700;letter-spacing:.1em}
.writing-level-card h3{margin:34px 0 10px;color:var(--navy);font-size:27px;position:relative;z-index:2}
.writing-level-card p{margin:0;color:var(--muted);line-height:1.9;font-size:14px;position:relative;z-index:2}
.level-link{padding-top:20px;margin-top:26px;border-top:1px solid #edf0f3;display:flex;align-items:center;justify-content:space-between;color:var(--navy);font-size:13px;font-weight:800;position:relative;z-index:2}
.level-link span{font-size:18px;transition:.25s}.writing-level-card:hover .level-link span{transform:translateX(-5px)}

.writing-flow-shell{margin-top:58px;background:#f0ece4;border:1px solid #e5ded2;border-radius:34px;padding:44px}
.writing-flow-header{margin-bottom:30px}
.writing-flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.flow-card{background:#fff;border:1px solid #e8e2d8;border-radius:23px;padding:26px;min-height:220px;position:relative}
.flow-no{display:block;color:var(--gold);font-size:12px;font-weight:800;letter-spacing:.08em;margin-bottom:18px}
.flow-icon{width:50px;height:50px;border-radius:15px;background:#f8f4ec;border:1px solid #e8decc;display:grid;place-items:center;color:var(--navy);margin-bottom:20px}
.flow-icon svg{width:24px;height:24px}
.flow-card h3{margin:0 0 9px;color:var(--navy);font-size:20px}
.flow-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.85}

/* Studio */
.studio-wrap{width:min(1180px,calc(100% - 48px));margin:14px auto 110px}
.studio-topbar{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;margin-bottom:18px}
.studio-back,.studio-reset{appearance:none;border:1px solid #dce1e7;background:#fff;color:#617086;border-radius:999px;padding:9px 14px;font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:.2s}
.studio-back:hover,.studio-reset:hover{color:var(--navy);border-color:#cfd6df;transform:translateY(-1px)}
.studio-title-meta{text-align:center;display:flex;align-items:center;justify-content:center;gap:9px;min-width:0}
.studio-title-meta span{border-radius:999px;padding:7px 11px;background:#f6f0e5;border:1px solid #e6d9c2;color:var(--navy);font-size:10px;font-weight:800}
.studio-title-meta strong{direction:ltr;color:var(--navy);font-size:16px;white-space:nowrap}

.studio-intro-card{min-height:205px;background:linear-gradient(135deg,var(--navy),#0c2b58);border-radius:32px;padding:38px 44px;color:#fff;display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;position:relative;overflow:hidden;margin-bottom:18px}
.studio-intro-card:after{content:"";position:absolute;width:270px;height:270px;left:-80px;bottom:-190px;border-radius:50%;border:1px solid rgba(255,255,255,.08)}
.milton-mark{width:84px;height:84px;border-radius:26px;display:grid;place-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#e4c58d;font-family:Georgia,serif;font-size:38px;font-weight:700;position:relative;z-index:2}
.studio-intro-card>div:last-child{position:relative;z-index:2}
.studio-intro-card .section-kicker{color:#dfc18b}
.studio-intro-card h1{margin:7px 0 9px;font-size:34px;color:#fff}
.studio-intro-card p{margin:0;color:#cbd6e5;line-height:1.9;font-size:14px}

.studio-grid{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px;direction:ltr}
.prompt-panel,.chat-shell{direction:rtl;background:#fff;border:1px solid var(--write-line);border-radius:28px;box-shadow:0 12px 40px rgba(25,33,48,.035)}
.prompt-panel{padding:26px;align-self:start}
.prompt-panel-head h2{margin:4px 0 8px;color:var(--navy);font-size:27px}.prompt-panel-head p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}
.prompt-list{display:grid;gap:9px;margin-top:22px}
.prompt-chip{appearance:none;border:1px solid #e6e1d8;background:#faf8f3;color:#24364f;border-radius:16px;padding:13px 14px;text-align:right;font-family:inherit;cursor:pointer;transition:.2s;line-height:1.55;font-size:12px;font-weight:700}
.prompt-chip:hover{background:#f4eee3;border-color:#dfd1bb;transform:translateX(-2px)}
.milton-rule-note{margin-top:22px;padding-top:19px;border-top:1px solid #edf0f3;display:grid;gap:5px}.milton-rule-note strong{color:var(--navy);font-size:12px}.milton-rule-note span{color:#8a96a5;font-size:11px;line-height:1.65}

.chat-shell{overflow:hidden;min-height:650px;display:flex;flex-direction:column}
.chat-head{height:76px;padding:0 24px;border-bottom:1px solid #edf0f3;display:flex;align-items:center;justify-content:space-between;gap:18px}
.chat-head>div{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:9px;align-items:center}
.online-dot{grid-row:1/3;width:10px;height:10px;border-radius:50%;background:#4aae83;box-shadow:0 0 0 4px rgba(74,174,131,.11)}
.chat-head strong{direction:ltr;text-align:left;color:var(--navy);font-size:15px}.chat-head small{direction:ltr;text-align:left;color:#9aa5b2;font-size:10px}
.chat-head>span{direction:ltr;border-radius:999px;background:#f6f0e5;border:1px solid #e6d9c2;padding:7px 10px;color:#637087;font-size:10px;font-weight:800}
.chat-messages{direction:ltr;flex:1;min-height:420px;max-height:560px;overflow:auto;padding:26px;background:linear-gradient(#fff,#fdfcf9)}
.message-row{display:flex;margin-bottom:16px}.message-row.user{justify-content:flex-end}.message-row.ai{justify-content:flex-start}
.message-bubble{max-width:min(78%,720px);border-radius:20px;padding:14px 16px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.message-row.ai .message-bubble{background:#f3efe7;color:#24364d;border:1px solid #e7dfd2;border-bottom-left-radius:7px}
.message-row.user .message-bubble{background:var(--write-navy);color:#fff;border:1px solid var(--write-navy);border-bottom-right-radius:7px}
.message-meta{font-size:9px;color:#a3adb9;margin-top:5px;padding:0 4px}.message-row.user .message-meta{text-align:right}.message-row.ai .message-meta{text-align:left}
.typing-bubble{display:inline-flex;gap:5px;align-items:center;min-width:58px}.typing-bubble i{width:6px;height:6px;border-radius:50%;background:#97a1ae;animation:miltonBounce 1.1s infinite ease-in-out}.typing-bubble i:nth-child(2){animation-delay:.12s}.typing-bubble i:nth-child(3){animation-delay:.24s}@keyframes miltonBounce{0%,60%,100%{transform:translateY(0);opacity:.45}30%{transform:translateY(-5px);opacity:1}}

.chat-composer{padding:18px 20px 20px;border-top:1px solid #edf0f3;background:#fff}
.chat-composer textarea{direction:ltr;text-align:left;width:100%;resize:vertical;min-height:92px;max-height:180px;border:1px solid #dfe4ea;border-radius:18px;padding:15px 16px;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55;color:#1e314a;background:#fbfcfd;outline:none;transition:.2s}
.chat-composer textarea:focus{border-color:#bd9d66;box-shadow:0 0 0 3px rgba(202,166,106,.10);background:#fff}
.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:10px;direction:ltr}.composer-bottom>span{font-family:Arial,Helvetica,sans-serif;color:#9aa5b2;font-size:10px}.composer-bottom button{appearance:none;border:0;background:var(--write-navy);color:#fff;border-radius:999px;padding:10px 20px;font-family:'Tajawal',sans-serif;font-size:12px;font-weight:800;cursor:pointer;display:flex;align-items:center;gap:8px;transition:.2s}.composer-bottom button:hover{background:#123762;transform:translateY(-1px)}.composer-bottom button:disabled{opacity:.48;cursor:not-allowed;transform:none}
.chat-error{margin:0 26px 18px;padding:11px 13px;border-radius:14px;background:#fff3f3;border:1px solid #f0d1d1;color:#a84949;font-size:12px;direction:rtl}

@media(max-width:900px){
  .writing-hero{grid-template-columns:1fr;gap:28px}.writing-visual{height:160px}.pen-card{width:145px;height:145px}.pen-card svg{width:88px;height:88px}
  .writing-level-grid,.writing-flow-grid{grid-template-columns:1fr}
  .studio-grid{grid-template-columns:1fr}.prompt-panel{order:2}.chat-shell{order:1}
}
@media(max-width:650px){
  .writing-hero,.writing-section,.studio-wrap{width:min(100% - 24px,1200px)}
  .writing-hero{min-height:420px;border-radius:26px;padding:52px 24px;margin-bottom:72px}.writing-hero h1{font-size:42px}.writing-hero p{font-size:15px}
  .writing-flow-shell{padding:24px 14px;border-radius:26px}
  .studio-topbar{grid-template-columns:1fr 1fr}.studio-title-meta{grid-column:1/-1;grid-row:2}.studio-back{justify-self:start}.studio-reset{justify-self:end}
  .studio-intro-card{grid-template-columns:1fr;padding:30px 24px}.milton-mark{width:66px;height:66px;border-radius:20px}.studio-intro-card h1{font-size:28px}
  .prompt-panel,.chat-shell{border-radius:22px}.chat-shell{min-height:590px}.chat-messages{padding:18px}.message-bubble{max-width:88%;font-size:14px}.chat-head{padding:0 17px}.chat-head>span{display:none}
}


/* =========================================================
   English Nest — Idea 07: Milton Writing Motion
   Interaction feedback only. No layout redesign.
   ========================================================= */

/* New messages appear smoothly */
.message-row.milton-enter{
  animation:miltonMessageEnter .34s cubic-bezier(.22,1,.36,1) both;
}

@keyframes miltonMessageEnter{
  from{opacity:0;transform:translateY(8px) scale(.993)}
  to{opacity:1;transform:none}
}

/* Milton thinking state */
.typing-bubble{
  gap:5px;
}

.typing-bubble .typing-label{
  margin-right:7px;
  color:#7f8b9b;
  font-size:11px;
  font-weight:700;
  white-space:nowrap;
}

#miltonTyping{
  animation:miltonThinkingEnter .24s ease-out both;
}

@keyframes miltonThinkingEnter{
  from{opacity:0;transform:translateY(5px)}
  to{opacity:1;transform:none}
}

/* A likely correction gets one warm, short acknowledgement */
.message-row.ai.milton-correction .message-bubble{
  animation:miltonCorrectionGlow .72s ease-out 1;
}

@keyframes miltonCorrectionGlow{
  0%{
    border-color:#e7dfd2;
    box-shadow:0 0 0 0 rgba(202,166,106,0);
    background:#f3efe7;
  }
  42%{
    border-color:#d7b879;
    box-shadow:0 0 0 4px rgba(202,166,106,.10);
    background:#f8f2e8;
  }
  100%{
    border-color:#e7dfd2;
    box-shadow:0 0 0 0 rgba(202,166,106,0);
    background:#f3efe7;
  }
}

/* Send button feedback */
#sendMilton{
  position:relative;
  transition:
    transform .16s cubic-bezier(.22,1,.36,1),
    box-shadow .16s ease,
    background-color .16s ease,
    opacity .16s ease;
}

#sendMilton.just-sent{
  animation:miltonSendTap .28s cubic-bezier(.22,1,.36,1);
}

@keyframes miltonSendTap{
  0%{transform:scale(1)}
  45%{transform:scale(.96)}
  100%{transform:scale(1)}
}

#sendMilton.is-busy{
  box-shadow:none;
}

#sendMilton.is-busy span{
  display:inline-block;
  animation:miltonSendBusy .85s ease-in-out infinite;
}

@keyframes miltonSendBusy{
  0%,100%{opacity:.42;transform:translateX(0)}
  50%{opacity:1;transform:translateX(-3px)}
}

/* Character counter responds subtly while typing */
#charCount{
  display:inline-block;
  transition:transform .15s ease,color .15s ease;
}

#charCount.milton-count-pop{
  animation:miltonCountPop .18s ease-out;
}

@keyframes miltonCountPop{
  0%{transform:translateY(1px);opacity:.65}
  100%{transform:none;opacity:1}
}

/* Online status feels alive, but stays very subtle */
.chat-head .online-dot{
  animation:miltonOnline 2.7s ease-in-out infinite;
}

@keyframes miltonOnline{
  0%,100%{box-shadow:0 0 0 4px rgba(74,174,131,.11)}
  50%{box-shadow:0 0 0 7px rgba(74,174,131,.045)}
}

@media (prefers-reduced-motion:reduce){
  .message-row.milton-enter,
  #miltonTyping,
  .message-row.ai.milton-correction .message-bubble,
  #sendMilton.just-sent,
  #sendMilton.is-busy span,
  #charCount.milton-count-pop,
  .chat-head .online-dot{
    animation:none !important;
    transform:none !important;
    transition:none !important;
  }
}
