:root{--cream:#f8f3e3;--paper:#fffdf6;--teal:#3f7d84;--teal-dark:#2d646b;--navy:#14243f;--orange:#e08a2b;--orange-soft:#f8dfb9;--line:#d8d1bd;--muted:#667085;--mono:ui-monospace, "SFMono-Regular", "Cascadia Mono", "Roboto Mono", "Noto Sans Mono CJK JP", "Noto Sans Mono", Menlo, Consolas, monospace;--sans:-apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic UI", "Yu Gothic", "Noto Sans JP", sans-serif;--shadow:0 1px 1px #14243f0a, 0 14px 38px #14243f14}*{box-sizing:border-box}html{background:var(--cream);color:var(--navy);scroll-behavior:smooth}body{background:radial-gradient(circle at 12% 5%, #e08a2b12, transparent 25rem), radial-gradient(circle at 88% 38%, #3f7d8412, transparent 28rem), var(--cream);min-width:320px;font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.8}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.screen{background:var(--paper);box-shadow:var(--shadow);border:1px solid #14243f1f;border-radius:28px;position:relative;overflow:hidden}.screen:after{z-index:0;pointer-events:none;content:"";border:1px solid #14243f0b;border-radius:21px;position:absolute;inset:8px}.screen>*{z-index:1;position:relative}.pixel-rule{background:repeating-linear-gradient(90deg, var(--teal) 0 16px, var(--navy) 16px 20px, transparent 20px 24px);opacity:.9;height:5px}.hero{text-align:center;flex-direction:column;align-items:center;padding:52px 28px 30px;display:flex}.eyebrow{color:var(--teal-dark);font:800 11px/1.5 var(--mono);letter-spacing:.15em;margin:0 0 13px}h1{max-width:310px;font:800 clamp(25px, 7.2vw, 30px)/1.45 var(--mono);letter-spacing:.025em;margin:0}.hero-art-wrap{place-items:center;width:216px;height:244px;margin:24px 0 18px;display:grid;position:relative}.hero-art-wrap:before{background:linear-gradient(#fffdf6b3, #fffdf600), repeating-linear-gradient(0deg, #3f7d841c 0 3px, transparent 3px 9px), var(--orange-soft);content:"";clip-path:polygon(10% 18%,90% 18%,90% 82%,82% 82%,82% 92%,18% 92%,18% 82%,10% 82%);border-radius:50%;position:absolute;inset:30px 2px 7px}.hero-art{z-index:1;object-fit:contain;width:192px;height:224px;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 12px #14243f14);display:block;position:relative}.intro{color:#4f5968;white-space:nowrap;letter-spacing:0;max-width:100%;margin:0 0 26px;font-size:clamp(11px,3.05vw,14px);line-height:2.05}.primary{background:var(--navy);color:#fffdf6;cursor:pointer;width:100%;min-height:55px;font:800 14px/1 var(--mono);letter-spacing:.08em;border:0;border-radius:12px;transition:transform .16s,box-shadow .16s;position:relative;box-shadow:0 5px #091325,0 12px 22px #14243f26}.primary:before,.send:before{content:"";background:#ffffffa6;width:4px;height:4px;position:absolute;top:5px;left:7px}.primary:hover{transform:translateY(-1px);box-shadow:0 6px #091325,0 14px 25px #14243f2b}.primary:active{transform:translateY(4px);box-shadow:0 1px #091325,0 5px 12px #14243f1f}.primary:disabled{opacity:.55;cursor:default}.chat-header{border-bottom:1px solid var(--line);background:#fffdf6f0;align-items:center;gap:11px;min-height:76px;padding:14px 18px;display:flex}.face-frame{border:2px solid var(--navy);background:var(--orange-soft);border-radius:10px;flex:none;place-items:center;width:42px;height:42px;display:grid;overflow:hidden;box-shadow:3px 3px #14243f1f}.face{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}.coach-name{font:800 14px/1.2 var(--mono);letter-spacing:.04em;margin-right:auto}.badge{min-height:30px;color:var(--teal-dark);font:800 9px/1.2 var(--mono);letter-spacing:.03em;white-space:nowrap;background:#e9f1ee;border:1px solid #3f7d8457;border-radius:7px;align-items:center;padding:0 10px;display:inline-flex}.messages{flex-direction:column;gap:22px;padding:27px 17px 33px;display:flex}.message{align-items:flex-end;gap:9px;max-width:92%;display:flex}.message.coach{align-self:flex-start}.message.user{align-self:flex-end}.message .face-frame{border-radius:8px;width:34px;height:34px;box-shadow:2px 2px #14243f1a}.bubble{letter-spacing:.005em;white-space:pre-wrap;border-radius:15px;margin:0;padding:14px 16px;font-size:14px;line-height:1.8;position:relative}.coach .bubble{color:var(--navy);background:#fbf6e9;border:1px solid #ded7c4;border-bottom-left-radius:4px;box-shadow:0 3px 12px #14243f0d}.user .bubble{background:var(--teal);color:#fff;border-bottom-right-radius:4px;box-shadow:0 5px 14px #3f7d8433}.choices{grid-template-columns:.86fr 1.45fr;gap:9px;display:grid}.choice{min-height:57px;color:var(--navy);cursor:pointer;font:800 11px/1.55 var(--mono);text-align:center;background:#fff;border:1px solid #bbc5c3;border-radius:11px;place-items:center;padding:10px 11px;display:grid;box-shadow:0 3px #d7d5cc}.choice:first-child{border-color:var(--teal);background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-dark)}.composer{background:#fff;border:1px solid #c9c3b2;border-radius:15px;align-items:flex-end;gap:7px;padding:6px;display:flex;box-shadow:inset 0 1px #14243f08,0 6px 18px #14243f0f}.composer input{width:100%;min-width:0;min-height:46px;color:var(--navy);background:0 0;border:0;outline:0;padding:11px 9px;font-size:14px}.composer input::placeholder{color:#9b9a93;opacity:1}.send{background:var(--orange);color:#241a0d;cursor:pointer;min-width:76px;min-height:46px;font:800 12px/1 var(--mono);border:0;border-radius:10px;position:relative;box-shadow:0 3px #ad6419}.send:disabled{opacity:.5;cursor:default}.end{text-align:center;flex-direction:column;align-items:center;padding:54px 28px 34px;display:flex}.end .hero-art-wrap{width:190px;height:216px;margin:6px 0 23px}.end .hero-art{width:170px;height:200px}.end h2{max-width:302px;font:800 22px/1.65 var(--mono);letter-spacing:.02em;margin:0}.end-copy{color:#5b6370;max-width:286px;margin:15px 0 0;font-size:14px;line-height:1.9}.save-note{color:#52605d;font:700 10px/1.4 var(--mono);background:#eef3ef;border-radius:8px;align-items:center;gap:8px;margin-top:24px;padding:9px 12px;display:inline-flex}.save-note:before{background:var(--teal);content:"";width:6px;height:6px;box-shadow:2px 2px #14243f2e}.err{color:#a23b3b;background:#fbeeee;border:1px solid #e7b7b7;border-radius:10px;margin:0 17px;padding:10px 14px;font-size:12px}:focus-visible{outline-offset:3px;outline:3px solid #e08a2b73}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.center-page{flex-direction:column;justify-content:center;width:min(100%,462px);min-height:100dvh;margin-inline:auto;padding:18px 16px 28px;display:flex}.center-page .hero{min-height:0}.chat-app{background:var(--paper);flex-direction:column;width:min(100%,462px);height:100dvh;margin-inline:auto;display:flex}.chat-app .chat-header{flex:none}.chat-app .messages{flex:auto;min-height:0;overflow-y:auto}.chat-footer{padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#fffdf6f5;flex:none}.chat-footer .choices{margin-bottom:11px}.composer-hint{color:#9b9a93;font:700 9px/1.4 var(--mono);letter-spacing:.06em;text-align:center;margin:7px 2px 0}.voice-row{justify-content:center;margin-bottom:12px;display:flex}.mic-btn{border:2px solid var(--teal);min-height:58px;color:var(--teal-dark);cursor:pointer;font:800 13px/1 var(--mono);letter-spacing:.04em;box-shadow:0 3px 0 var(--teal-dark);background:#fff;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 26px;transition:transform .12s;display:inline-flex}.mic-btn:active{box-shadow:0 1px 0 var(--teal-dark);transform:translateY(2px)}.mic-btn svg{width:22px;height:22px}.mic-btn:disabled{opacity:.5;cursor:default}.mic-btn.listening{border-color:var(--orange);background:var(--orange);color:#241a0d;animation:1.3s ease-in-out infinite micpulse;box-shadow:0 3px #ad6419}@keyframes micpulse{0%,to{box-shadow:0 3px #ad6419,0 0 #e08a2b73}50%{box-shadow:0 3px #ad6419,0 0 0 12px #e08a2b00}}.voice-msg{color:#a23b3b;text-align:center;margin:9px 6px 0;font-size:11.5px;line-height:1.6}.report-wrap{flex-direction:column;align-items:center;width:100%;margin-top:18px;display:flex}.report-img{border:1px solid var(--line);width:100%;max-width:360px;height:auto;box-shadow:var(--shadow);border-radius:12px}.report-save{justify-content:center;align-items:center;width:auto;min-height:48px;margin-top:16px;padding:0 22px;text-decoration:none;display:inline-flex}.contact-link{color:var(--teal-dark);cursor:pointer;font:700 10px/1 var(--mono);letter-spacing:.06em;text-underline-offset:3px;background:0 0;border:0;padding:6px;text-decoration:underline}.contact-link.header{margin-left:8px}.contact-center{margin:18px auto 0}.modal-overlay{z-index:50;background:#14243f61;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--paper);width:min(100%,420px);box-shadow:var(--shadow);border:1px solid #14243f1f;border-radius:20px;padding:22px 20px 20px}.modal h3{font:800 15px/1.5 var(--mono);letter-spacing:.03em;margin:0 0 4px}.modal .lead{color:#5b6370;margin:0 0 16px;font-size:12.5px;line-height:1.7}.field{margin-bottom:12px}.field label{color:#70736d;font:700 10px/1.4 var(--mono);letter-spacing:.05em;margin:0 2px 5px;display:block}.field input,.field textarea{width:100%;color:var(--navy);background:#fff;border:1px solid #c9c3b2;border-radius:10px;outline:0;padding:10px 12px;font-size:14px}.field input:focus,.field textarea:focus{border-color:var(--teal)}.field textarea{resize:vertical;min-height:96px;line-height:1.7}.modal-actions{gap:8px;margin-top:16px;display:flex}.modal-actions .cancel{color:var(--navy);cursor:pointer;font:700 12px/1 var(--mono);background:#fff;border:1px solid #c9c3b2;border-radius:10px;flex:none;padding:11px 16px}.modal-actions .submit{background:var(--navy);color:#fffdf6;cursor:pointer;font:800 12px/1 var(--mono);letter-spacing:.05em;border:0;border-radius:10px;flex:auto;padding:11px 16px;box-shadow:0 3px #091325}.modal-actions .submit:disabled{opacity:.5;cursor:default}.modal-done{color:var(--teal-dark);font:700 12px/1.7 var(--mono);text-align:center;padding:8px 2px 2px}.session-bar{color:#667085;min-height:42px;font:700 10px/1.4 var(--mono);justify-content:flex-end;align-items:center;gap:10px;padding:12px 16px 0;display:flex}.session-bar span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.session-bar button{color:var(--teal-dark);cursor:pointer;font:800 10px/1 var(--mono);text-underline-offset:3px;background:0 0;border:0;flex:none;text-decoration:underline}.login-required{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.login-required p{color:var(--navy);font:800 12px/1.7 var(--mono);margin:0}.login-cta{justify-content:center;align-items:center;text-decoration:none;display:flex}.auth-notice{width:100%;color:var(--teal-dark);font:700 12px/1.7 var(--sans);text-align:left;background:#eef6f3;border:1px solid #3f7d8447;border-radius:10px;margin:0 0 16px;padding:11px 13px}.auth-notice.error{color:#a23b3b;background:#fbeeee;border-color:#e7b7b7}.report-link{color:var(--teal-dark);font:800 12px/1 var(--mono);text-underline-offset:3px;margin:-4px 0 16px;text-decoration:underline;display:inline-flex}.login-page{justify-content:center}.login-panel{text-align:center;flex-direction:column;align-items:stretch;padding:42px 28px 32px;display:flex}.login-panel h1{max-width:none;font-size:24px}.login-sub{color:#5b6370;margin:12px 0 24px;font-size:13px}.login-form{text-align:left;flex-direction:column;gap:10px;display:flex}.login-form label{color:#70736d;font:800 10px/1.4 var(--mono);letter-spacing:.05em}.login-form input{width:100%;min-height:50px;color:var(--navy);background:#fff;border:1px solid #c9c3b2;border-radius:10px;outline:0;padding:10px 13px}.login-form input:focus{border-color:var(--teal)}.login-form .primary{margin-top:8px}
