/* Layout: loud poster-style landing on lemon, then the working app on an ink "stage" below. Single bright look by choice. */
:root{
  --lemon:#FFD84A; --tomato:#FF4A26; --pink:#FF7AC8; --mint:#22D9A0; --sky:#3FA9FF;
  --ink:#1B1030; --paper:#FFFBEF; --ink-soft:#4A3F5E; --line:#1B1030;
  --display:"Bowlby One","Arial Black",Impact,sans-serif;
  --body:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{background:var(--lemon);color:var(--ink)}
body{margin:0;font-family:var(--body);font-size:16px;line-height:1.5;padding-inline:16px;overflow-x:hidden}
.wrap{max-width:1120px;margin-inline:auto}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1;text-wrap:balance;margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.btn{border:3px solid var(--line);background:var(--tomato);color:var(--paper);font-weight:800;padding:.7em 1.2em;border-radius:999px;box-shadow:4px 4px 0 var(--line);transition:transform .12s,box-shadow .12s;display:inline-flex;align-items:center;gap:.5em;text-decoration:none}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--line)}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--line)}
.btn.alt{background:var(--paper);color:var(--ink)}
.btn.mint{background:var(--mint);color:var(--ink)}
.btn.small{padding:.4em .9em;font-size:.9rem;box-shadow:3px 3px 0 var(--line)}

/* nav */
nav{display:flex;justify-content:space-between;align-items:center;padding-block:18px;gap:12px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-size:1.35rem;text-decoration:none;color:var(--ink)}
.logo{width:46px;height:46px;flex:none}

/* hero */
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;padding-block:28px 56px}
.hero h1{font-size:clamp(2.8rem,8vw,6rem);letter-spacing:-.01em}
.hero h1 .hang{color:var(--tomato);display:inline-block;transform:rotate(-3deg)}
.hero p{font-size:1.2rem;max-width:34ch;margin:20px 0 28px}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.rack{position:relative;min-height:340px}
.rack .bar{position:absolute;top:24px;left:0;right:0;height:10px;background:var(--ink);border-radius:6px}
.tag{position:absolute;top:24px;width:150px;transform-origin:50% 0;animation:swing 3.4s ease-in-out infinite}
.tag svg{width:150px;height:110px;display:block}
.tag .card{margin-top:-14px;background:var(--paper);border:3px solid var(--line);border-radius:14px;padding:10px 12px;box-shadow:4px 4px 0 var(--line);font-size:.86rem;font-weight:600}
.tag .card b{display:block;font-family:var(--display);font-weight:400;font-size:1rem;color:var(--tomato)}
.tag:nth-child(2){left:2%;animation-delay:-.6s}
.tag:nth-child(3){left:36%;animation-delay:-1.7s}
.tag:nth-child(3) .card{background:var(--pink)}
.tag:nth-child(4){left:68%;animation-delay:-2.4s}
.tag:nth-child(4) .card{background:var(--mint)}
@keyframes swing{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
@media (prefers-reduced-motion:reduce){.tag{animation:none}}

/* marquee */
.ticker{background:var(--ink);color:var(--lemon);font-family:var(--display);font-size:1.3rem;white-space:nowrap;overflow:hidden;padding-block:12px;margin-inline:-16px;border-block:3px solid var(--ink)}
.ticker span{display:inline-block;animation:slide 28s linear infinite;padding-left:16px}
@keyframes slide{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.ticker span{animation:none}}

/* story */
section{padding-block:64px}
.kicker{font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem}
.story h2,.close h2,.app-head h2{font-size:clamp(2rem,5vw,3.4rem);margin-top:8px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:36px}
.step{background:var(--paper);border:3px solid var(--line);border-radius:22px;padding:22px;box-shadow:6px 6px 0 var(--line);display:flex;flex-direction:column;gap:10px;min-width:0}
.step:nth-child(2){background:var(--pink);transform:rotate(1.2deg)}
.step:nth-child(3){background:var(--sky)}
.step:nth-child(4){background:var(--mint);transform:rotate(-1.2deg)}
.step .n{font-family:var(--display);font-size:2.4rem;line-height:1}
.step h3{font-size:1.25rem}
.step p{margin:0}

.close .endings{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}
.ending{border:3px solid var(--line);border-radius:22px;padding:26px;background:var(--tomato);color:var(--paper);box-shadow:6px 6px 0 var(--line)}
.ending.b{background:var(--ink);color:var(--lemon)}
.ending h3{font-size:1.6rem;margin-bottom:10px}
.ending ul{margin:12px 0 0;padding-left:1.1em}

/* app stage */
.stage{background:var(--ink);color:var(--paper);margin-inline:-16px;padding:56px 16px 72px;border-top:3px solid var(--ink)}
.app-head{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.app-head h2{color:var(--lemon)}
.as{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:600}
.as .who{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:2px solid var(--paper);background:transparent;color:var(--paper);border-radius:999px;padding:.3em .8em;font-weight:700;font-size:.9rem;position:relative}
.chip[aria-pressed="true"]{background:var(--lemon);color:var(--ink);border-color:var(--lemon)}
.chip .dot{position:absolute;top:-6px;right:-6px;background:var(--tomato);color:var(--paper);border-radius:999px;font-size:.7rem;min-width:20px;height:20px;display:grid;place-items:center;border:2px solid var(--ink)}
.note{font-size:.85rem;opacity:.75;margin:0 0 18px}

.app{display:grid;grid-template-columns:320px 1fr;gap:18px;min-height:560px}
.panel{background:var(--paper);color:var(--ink);border:3px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column;min-width:0}
.side-top{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:3px solid var(--line);background:var(--lemon);gap:8px}
.side-top strong{font-family:var(--display);font-weight:400;font-size:1.1rem}
.bell{position:relative;background:none;border:0;padding:4px;font-size:1.3rem}
.bell .dot{position:absolute;top:-2px;right:-4px;background:var(--tomato);color:var(--paper);border-radius:999px;font-size:.68rem;min-width:18px;height:18px;display:grid;place-items:center;font-weight:800}
.filters{display:flex;gap:6px;padding:10px 12px;border-bottom:2px dashed #cfc6b0}
.filters button{border:2px solid var(--line);background:var(--paper);border-radius:999px;padding:.2em .7em;font-size:.82rem;font-weight:700}
.filters button[aria-pressed="true"]{background:var(--ink);color:var(--lemon)}
.list{overflow:auto;flex:1}
.item{display:block;width:100%;text-align:left;border:0;border-bottom:2px solid #eee4cb;background:none;padding:12px 16px;position:relative}
.item:hover{background:#fff3c4}
.item[aria-current="true"]{background:#ffe9a0}
.item .t{font-weight:800;display:block;padding-right:18px;overflow-wrap:anywhere}
.item .m{font-size:.82rem;color:var(--ink-soft)}
.item .unread{position:absolute;right:14px;top:16px;width:10px;height:10px;border-radius:50%;background:var(--tomato)}
.pill{display:inline-block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;border-radius:999px;padding:.15em .6em;border:2px solid var(--line);margin-right:6px}
.pill.open{background:var(--tomato);color:var(--paper)}
.pill.closed{background:var(--mint)}
.pill.sorry{background:var(--pink)}
.empty{padding:24px 16px;color:var(--ink-soft);font-size:.92rem}

.chat-head{padding:14px 18px;border-bottom:3px solid var(--line);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center}
.chat-head h3{font-family:var(--body);font-weight:800;font-size:1.15rem;overflow-wrap:anywhere}
.chat-head .m{font-size:.85rem;color:var(--ink-soft)}
.back{display:none;border:0;background:none;font-weight:800;padding:0 0 4px}
.msgs{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:repeating-linear-gradient(0deg,transparent 0 27px,#f2ead4 27px 28px)}
.msg{max-width:78%;padding:9px 13px;border:2px solid var(--line);border-radius:16px 16px 16px 4px;background:#fff;overflow-wrap:anywhere}
.msg .by{font-size:.74rem;font-weight:800;display:block;opacity:.75}
.msg.me{align-self:flex-end;background:var(--lemon);border-radius:16px 16px 4px 16px}
.msg.sys{align-self:center;background:var(--ink);color:var(--lemon);border-color:var(--ink);border-radius:999px;font-size:.82rem;font-weight:700;text-align:center;max-width:92%}
.compose{display:flex;gap:8px;padding:12px;border-top:3px solid var(--line);background:#fff}
.compose input{flex:1;min-width:0;border:2px solid var(--line);border-radius:999px;padding:.6em 1em;background:var(--paper)}
.actions{display:flex;gap:8px;flex-wrap:wrap;padding:12px;border-top:2px dashed #cfc6b0;background:var(--paper)}
.sheet{padding:16px;border-top:3px solid var(--line);background:#fff4c9;display:flex;flex-direction:column;gap:10px}
.sheet h4{margin:0;font-family:var(--display);font-weight:400;font-size:1.1rem}
.reasons{display:flex;flex-wrap:wrap;gap:8px}
.reasons label{border:2px solid var(--line);border-radius:999px;padding:.3em .8em;background:#fff;font-weight:600;font-size:.9rem;cursor:pointer}
.reasons input{accent-color:var(--tomato);margin-right:4px}
.sheet textarea,.form input,.form textarea,.form select{width:100%;border:2px solid var(--line);border-radius:14px;padding:.6em .8em;background:#fff}
.row{display:flex;gap:8px;flex-wrap:wrap}
.verdict{padding:16px 18px;border-top:3px solid var(--line);background:var(--mint);font-weight:700}
.verdict.sorry{background:var(--pink)}

.form{padding:20px;display:flex;flex-direction:column;gap:14px;overflow:auto}
.form label{font-weight:800;display:flex;flex-direction:column;gap:6px}
.form .hint{font-weight:500;font-size:.85rem;color:var(--ink-soft)}
.form .warn{background:#fff;border:2px dashed var(--tomato);border-radius:14px;padding:10px 12px;font-size:.9rem}

.hall{margin-top:22px;display:flex;gap:12px;flex-wrap:wrap;align-items:center;color:var(--paper)}
.hall strong{font-family:var(--display);font-weight:400;color:var(--lemon);font-size:1.1rem}
.hall span{border:2px solid var(--paper);border-radius:999px;padding:.25em .8em;font-weight:700;font-size:.9rem}

.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--tomato);color:var(--paper);border:3px solid var(--ink);box-shadow:5px 5px 0 var(--ink);padding:12px 18px;border-radius:16px;font-weight:700;max-width:min(92vw,460px);z-index:20}

footer{padding-block:28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-weight:600;align-items:center}
footer .mail{color:var(--ink);font-weight:800}
.foot-links{display:inline-flex;gap:18px}
.foot-links a,.join-form .fine a{color:var(--ink)}
.brand-mini{display:inline-flex;align-items:center;gap:8px}
.brand-mini svg{width:30px;height:24px}

.join-card{background:var(--tomato);color:var(--paper);border:3px solid var(--line);border-radius:28px;box-shadow:8px 8px 0 var(--line);padding:clamp(22px,4vw,44px);display:grid;grid-template-columns:1.1fr 1fr;gap:32px;align-items:center}
.join-copy{min-width:0}
.join-copy .kicker{color:var(--lemon)}
.join-copy h2{font-size:clamp(2.2rem,6vw,4rem);margin-top:8px}
.join-copy p{font-size:1.15rem;max-width:36ch}
.join-form{background:var(--paper);color:var(--ink);border:3px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:8px;min-width:0}
.join-form label{font-weight:800}
.join-form .opt{font-weight:500;color:var(--ink-soft)}
.join-form input{border:2px solid var(--line);border-radius:12px;padding:.7em .9em;background:#fff;width:100%}
.join-form .btn{margin-top:8px;justify-content:center}
.join-form .btn[disabled]{opacity:.6;cursor:wait}
.join-form .fine{font-size:.82rem;color:var(--ink-soft);margin:4px 0 0}
.join-msg{margin:0;font-weight:800}
.join-msg.ok{background:var(--mint);border:2px solid var(--line);border-radius:12px;padding:10px 12px}
.join-msg.err{color:#B3200A}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:860px){.join-card{grid-template-columns:1fr}}

@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .rack{min-height:300px}
  .steps{grid-template-columns:1fr 1fr}
  .close .endings{grid-template-columns:1fr}
  .app{grid-template-columns:1fr}
  .app.chatting .side{display:none}
  .app:not(.chatting) .main{display:none}
  .back{display:inline-block}
  .main{min-height:540px}
}
@media (max-width:520px){
  .steps{grid-template-columns:1fr}
  .step{transform:none!important}
  .tag,.tag svg{width:112px}
  .tag svg{height:84px}
  .tag .card{font-size:.76rem;padding:8px}
}
