:root{--ink:#34234b;--muted:#6d607e;--purple:#63408c;--ground:#eeeaf6;--paper:#fbf9fd;--yellow:#f2d66d;--line:#dcd4e7}*{box-sizing:border-box}body{margin:0;background:var(--ground);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}button,input{font:inherit;color:inherit}button,a{-webkit-tap-highlight-color:transparent}button{border:0;background:transparent;cursor:pointer;min-height:44px;padding:10px 16px;border-radius:18px}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #7851a8;outline-offset:4px}button:disabled{opacity:.55;cursor:default}a{color:inherit}header{height:84px;padding:16px 5vw;display:flex;align-items:center;gap:18px;max-width:1440px;margin:auto}.wordmark{font-size:32px;font-weight:800;letter-spacing:-2px;text-decoration:none}.wordmark span{font-size:22px;margin-left:5px}.prototype{font-size:11px;color:var(--muted);margin-left:auto}header>button{font-size:18px}main{max-width:1120px;margin:auto;padding:0 28px 320px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,5.7vw,76px);line-height:1.05;letter-spacing:-.055em;font-weight:550}h2{font-size:29px;letter-spacing:-.035em;line-height:1.2}h3{font-size:18px}small,.small{font-size:12px;color:var(--muted)}.eyebrow{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.welcome{text-align:center;max-width:740px;margin:5vh auto 0}.welcome h1{margin:14px 0 12px}.welcome p{color:var(--muted)}.mascot-button{padding:0;display:inline-grid;place-items:center;touch-action:none}.hero-mascot{width:220px;height:210px;margin:10px auto 0}.object{display:block;width:132px;height:132px;border-radius:47% 53% 49% 51%;background:radial-gradient(circle at 32% 25%,#fff1b0 0%,#f4d875 40%,#d8b74a 100%);box-shadow:inset -10px -14px 19px #97731d25,0 24px 24px -21px #59483460;transform:translate(var(--dx,0px),var(--dy,0px));transition:transform .32s cubic-bezier(.2,1.6,.5,1),border-radius .3s;position:relative}.object:after{content:'';position:absolute;inset:13% 21% 61% 21%;border-radius:50%;background:#fff9dc40;filter:blur(9px)}.object.pressed{transform:translate(var(--dx,0px),var(--dy,0px)) scale(1.19,.77) rotate(-7deg);border-radius:55% 45% 40% 60%}.object.pop{animation:pop .65s ease-out}.object.listening{animation:listen 1.25s ease-in-out infinite}.plum{background:radial-gradient(circle at 30% 25%,#c9adeb,#9876bc 55%,#755697);border-radius:35% 55% 37% 55%}.coral{background:radial-gradient(circle at 30% 25%,#f7c8b9,#d99586 65%,#bd786e);border-radius:34%}.mint{background:radial-gradient(circle at 30% 25%,#d5e9cc,#a8c497 65%,#829e73);border-radius:60% 35% 60% 35%}.blue{background:radial-gradient(circle at 30% 25%,#c9d9f2,#93acd0 65%,#6e86ae);border-radius:50% 50% 23% 23%}.hint{font-size:12px;color:var(--muted)}.text-link{text-decoration:underline;text-underline-offset:5px;font-size:13px}.bridge-heading{margin:6vh 0 35px;text-align:center}.bridge-heading h1{font-size:clamp(36px,4.5vw,58px)}.crew{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.crew button{padding:15px 8px 20px}.crew .object{width:90px;height:90px;margin:20px auto 30px}.crew strong{display:block;font-size:17px}.crew small{display:block;margin-top:5px}.page-top{display:flex;justify-content:space-between;align-items:center;margin:30px 0}.page-top .breadcrumb{font-size:12px;color:var(--muted)}.page-title{display:flex;justify-content:space-between;gap:25px;align-items:center;margin:18px 0 25px}.page-title h1{font-size:clamp(42px,5vw,66px);max-width:650px;margin:0 0 14px}.page-title p{color:var(--muted);margin:0}.page-title .object{width:95px;height:95px;margin-right:18px}.tabs{display:flex;gap:8px;margin-bottom:25px;flex-wrap:wrap}.tabs button{border:1px solid var(--line);font-size:13px}.tabs button[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.week{background:var(--paper);border-radius:28px;padding:28px;box-shadow:0 10px 35px #3b255008}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.section-heading h2{margin:0}.week-grid{display:grid;grid-template-columns:repeat(5,1fr);margin-top:28px;gap:12px}.day{min-height:190px;border-left:1px solid var(--line);padding-left:14px}.day:first-child{border-left:0;padding-left:0}.day-title{font-size:12px;color:var(--muted);margin-bottom:20px}.event{border-radius:16px;background:#f0eafa;padding:14px;margin-bottom:10px;overflow-wrap:anywhere}.event:nth-child(odd){background:#f8efca}.event small{display:block;font-size:11px}.event strong{font-size:14px;display:block;margin:6px 0 12px;line-height:1.3}.owner{font-size:10px;color:#655576}.open-day{font-size:13px;color:var(--muted)}.lower-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:25px}.note{background:#e4dcf0;padding:25px;border-radius:25px}.note.yellow{background:#f4e8ad}.note h2{font-size:24px}.pack{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #cabfd9;font-size:14px}.pack input{width:20px;height:20px;accent-color:var(--purple)}.pack:has(:checked){text-decoration:line-through}.primary{background:var(--ink);color:var(--paper);border-radius:18px}.wide{width:100%;margin:8px 0;text-align:left}.subtle{background:#e4dced}.change{margin-top:24px;font-size:12px;color:var(--muted)}#dock{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);width:min(650px,calc(100% - 28px));background:#fbf9fdfa;box-shadow:0 10px 50px #35234220;border:1px solid #e6deef;border-radius:28px;padding:16px 20px calc(8px + env(safe-area-inset-bottom));z-index:5}body[data-view=welcome] #dock{box-shadow:none;border:0;background:transparent;bottom:5vh}#reply{font-size:14px;text-align:center;line-height:1.4;max-height:90px;overflow:auto;margin:0 auto 10px;max-width:520px}.conversation{display:flex;align-items:center;justify-content:center;gap:24px}.conversation .object{width:45px;height:45px;box-shadow:inset -5px -5px 8px #97731d20,0 6px 9px -7px #59483460}.mic{border-radius:50%;background:var(--ink);color:#fbf9fd;width:62px;height:62px;padding:18px;display:grid;place-items:center}.mic svg{width:25px;height:25px;stroke:currentColor;stroke-width:1.8;fill:none}.mic[aria-pressed=true]{background:#967529;outline:4px solid #f3dc85}#typeToggle{font-size:18px}#micStatus{font-size:11px;text-align:center;color:var(--muted);margin:8px 0}#controls{display:flex;justify-content:center;border-top:1px solid #eee8f2;padding-top:3px;gap:28px}#controls button{font-size:12px}#typing{display:flex;gap:8px;margin-top:12px}input[type=text],#input{width:100%;border:1px solid var(--line);border-radius:14px;padding:12px;background:var(--paper);font-size:16px;min-width:0}#typing button{background:var(--ink);color:var(--paper);font-size:22px}#heard{font-size:14px;padding:10px;background:#eee8f6;border-radius:12px;max-height:90px;overflow:auto}#voiceReview{display:flex;justify-content:center;font-size:12px}dialog{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:28px;width:min(640px,calc(100% - 28px));max-height:84dvh;padding:26px}dialog::backdrop{background:#271c3c66;backdrop-filter:blur(5px)}.sheet-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:15px}.sheet-head h2{font-size:24px;margin:0}.sheet-head button{font-size:25px}.history{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.history p{margin:5px 0}.pair{display:flex;align-items:center;justify-content:center;gap:50px;margin:30px}.pair .object{width:65px;height:65px}.scope{padding:18px;border-radius:18px;background:#eee8f6;font-size:13px}.shared-banner{padding:12px 18px;background:#e2ebd9;border-radius:16px;font-size:12px;margin-bottom:18px}.swarm{display:flex;justify-content:center;gap:8px;height:45px;align-items:center}.swarm i{width:7px;height:7px;background:#9171b1;border-radius:50%;animation:join .9s ease-in-out 2 alternate}.swarm i:nth-child(2n){background:#d5b853;animation-delay:.2s}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden}[hidden]{display:none!important}section[id]{scroll-margin-top:18px}#pageTitle{overflow-wrap:anywhere}@keyframes pop{40%{transform:translateY(-15px) scale(.9,1.15)}70%{transform:scale(1.13,.88)}100%{transform:none}}@keyframes listen{50%{transform:scale(1.08,.95)}}@keyframes join{to{transform:translateY(-12px) scale(1.4)}}@media(max-width:650px){header{height:65px;padding:12px 20px}.wordmark{font-size:28px}main{padding:0 20px 340px}.welcome{margin:1vh auto}.hero-mascot{width:180px;height:180px}.hero-mascot .object{width:125px;height:125px}.welcome h1{font-size:42px}.welcome p{font-size:14px}.crew{grid-template-columns:repeat(2,1fr);gap:4px}.crew button:first-child{grid-column:1/-1}.crew button{padding:4px}.crew .object{width:65px;height:65px;margin:12px auto 20px}.crew button:first-child .object{width:85px;height:85px}.crew strong{font-size:14px}.bridge-heading{margin:16px 0}.bridge-heading h1{font-size:35px;margin-bottom:12px}.page-top{margin:15px 0}.page-title .object{width:60px;height:60px;margin:0}.page-title h1{font-size:40px}.page-title p{font-size:13px}.week{padding:22px 18px}.week-grid{grid-template-columns:1fr;margin-top:20px;gap:0}.day{display:grid;grid-template-columns:60px 1fr;gap:8px;min-height:0;border-left:0;border-top:1px solid #e8e1ee;padding:16px 0}.day:first-child{border-top:0}.day-title{margin:10px 0}.day-content{min-width:0}.event{margin:0 0 7px;padding:12px}.event strong{margin:3px 0}.lower-grid{grid-template-columns:1fr;gap:16px}.section-heading h2{font-size:24px}#dock{bottom:8px;padding:12px 14px calc(5px + env(safe-area-inset-bottom));border-radius:24px}#reply{font-size:13px}.mic{width:56px;height:56px;padding:15px}#controls{gap:18px}.page-title{align-items:flex-start}body[data-view=welcome] #dock{bottom:3vh}.note{padding:22px}.tabs{gap:5px}.tabs button{padding:8px 12px}}@media(max-height:700px){.welcome{margin:0 auto}.hero-mascot{height:130px}.hero-mascot .object{width:95px;height:95px}.welcome h1{font-size:35px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

main{padding-bottom:var(--dock-clearance,340px)}#dock{max-height:60dvh;overflow-y:auto}body[data-view=welcome] main{padding-bottom:0}body[data-view=welcome] .welcome{margin:2vh auto 0}body[data-view=welcome] .welcome h1{font-size:clamp(28px,4vw,42px);letter-spacing:-.04em}body[data-view=welcome] #dock{position:relative;left:auto;bottom:auto;transform:none;margin:10px auto 40px;max-height:none}body[data-view=welcome] .hero-mascot{height:200px}body[data-view=welcome] .welcome p{font-size:14px}@media(max-height:700px){body[data-view=welcome] .hero-mascot{height:135px}}
