:root{--color-background:#f5f1e8;--color-surface:#fff;--color-text:#24231f;--color-muted:#6e6b61;--color-border:#ded7c9;--color-copy:#514e47;--color-soft:#f7f4f0;--color-warm-surface:#fffaf0;--color-accent:#9c6d17;--color-accent-strong:#7d5108;--color-accent-soft:#f0dfba;--space-1:.5rem;--space-2:1rem;--space-3:1.5rem;--space-4:2rem;--content-max-width:48rem;--radius-small:.5rem;--radius-medium:1rem;--radius-large:1.5rem;--radius-pill:999px;--shadow-card:0 .75rem 2.25rem #24231f12;color:var(--color-text);background:var(--color-background);font-synthesis:none;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.65}*{box-sizing:border-box}html{background:var(--color-background);min-width:20rem}body{overflow-wrap:anywhere;background:radial-gradient(circle at 50% 0, #fffaf0b8, transparent 28rem), var(--color-background);min-height:100vh;margin:0}img{max-width:100%}a{color:inherit;text-underline-offset:.2em}a:focus-visible,button:focus-visible,textarea:focus-visible,input:focus-visible,[tabindex="-1"]:focus-visible{outline:.2rem solid var(--color-accent-strong);outline-offset:.2rem}button,textarea,input{font:inherit}button{min-height:2.75rem;color:var(--color-text)}.site-shell{flex-direction:column;min-height:100vh;display:flex}.skip-link{z-index:10;top:var(--space-1);left:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--color-text);color:#fff;border-radius:.5rem;position:fixed;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.site-header{width:min(100% - 2rem, var(--content-max-width));padding:var(--space-3) 0;margin:0 auto}.brand-link{color:var(--color-text);letter-spacing:.08em;font-size:1.125rem;font-weight:650;text-decoration:none}.main-content{width:min(100% - 2rem, var(--content-max-width));flex:1;margin:0 auto;padding:clamp(2rem,8vw,5rem) 0}.public-article,.foundation-page,.auth-gateway,.emotion-page,.waiting-card{max-width:42rem;margin:0 auto}h1{margin:0 0 var(--space-4);letter-spacing:-.02em;font-size:clamp(2rem,7vw,3rem);font-weight:650;line-height:1.2}h2{margin:var(--space-4) 0 var(--space-2);font-size:1.25rem}p{margin:0 0 var(--space-2)}.lead,.brand-statement{color:var(--color-accent);font-size:1.25rem;font-weight:650}.muted{color:var(--color-muted)}.hero-logo{width:min(12rem,44vw);height:auto;margin:0 auto var(--space-4);display:block}.brand-slot{margin-top:var(--space-4)}.home-action{margin-top:var(--space-4);text-align:center}.primary-link{border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;justify-content:center;align-items:center;min-height:2.75rem;padding:.7rem 1.5rem;font-weight:650;text-decoration:none;display:inline-flex;box-shadow:0 .5rem 1.25rem #9c6d1724}.primary-link:hover{background:var(--color-accent-strong)}.public-article{color:var(--color-copy)}.public-article h1,.public-article h2{color:var(--color-text)}.public-article section{padding-block:var(--space-2);border-top:1px solid var(--color-border)}.public-article li{margin-bottom:var(--space-1)}.footer-brand{border-radius:50%;display:block}.auth-gateway{border:1px solid var(--color-border);border-radius:var(--radius-large);max-width:30rem;box-shadow:var(--shadow-card);text-align:center;background:#fff9;padding:clamp(1.5rem,6vw,3rem)}.auth-logo{width:6rem;height:auto;margin-bottom:var(--space-3)}.auth-intro{color:var(--color-muted)}.provider-options{gap:var(--space-2);margin:var(--space-4) 0 var(--space-2);display:grid}.provider-button{justify-content:space-between;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);width:100%;color:var(--color-text);font:inherit;cursor:pointer;padding:.9rem 1rem;display:flex;box-shadow:0 .35rem 1rem #24231f0a}.provider-button:not(:disabled):hover{background:var(--color-warm-surface);border-color:#c5bda9}.provider-button:disabled{cursor:not-allowed;opacity:.6}.miniapp-qr-auth{max-width:32rem}.qr-status{outline:none}.miniapp-qr-code{width:min(18rem,78vw);height:auto;margin:var(--space-4) auto var(--space-3);border-radius:var(--radius-medium);display:block;box-shadow:0 .5rem 1.5rem #24231f14}.qr-status>button{min-width:10rem}.internal-test-auth{margin-top:var(--space-5);border:1px dashed var(--color-border);background:var(--color-warm-surface)}.internal-test-badge{color:#fff;letter-spacing:.04em;background:#725c36;border-radius:999px;padding:.25rem .55rem;font-size:.78rem;display:inline-block}.provider-status{color:var(--color-muted);font-size:.875rem}.session-actions{max-width:42rem;margin:0 auto var(--space-3);text-align:right}.session-actions button{color:var(--color-muted);cursor:pointer;font:inherit;background:0 0;border:0;text-decoration:underline}.emotion-page{text-align:center}.emotion-wheel{aspect-ratio:824/990;width:min(25.75rem,86vw);margin:var(--space-3) auto var(--space-4);touch-action:manipulation;-webkit-user-select:none;user-select:none;position:relative;overflow:hidden}.wheel-art{pointer-events:none;width:100%;height:auto;display:block}.wheel-center{background:var(--color-warm-surface);text-align:center;border-radius:50%;place-content:center;gap:.1rem;width:38.71%;height:32.22%;padding:1.5rem .65rem .65rem;display:grid;position:absolute;top:34.36%;left:30.65%;box-shadow:inset 0 0 0 .12rem #c9973659}.wheel-center strong{text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;overflow:hidden}.wheel-center span{color:#756e64;font-size:.75rem}.wheel-center span b{color:#b47d19;font-size:1.35rem}.wheel-center small{color:#8a8178;font-size:.68rem}.emotion-options,.intensity-options{margin:var(--space-3) 0;justify-content:center;gap:var(--space-1);border:0;flex-wrap:wrap;padding:0;display:flex}.emotion-options legend,.intensity-options legend{width:100%;margin-bottom:var(--space-1);font-weight:650}.emotion-options label,.intensity-options label{cursor:pointer}.emotion-options input,.intensity-options input{opacity:0;position:absolute}.emotion-options span,.intensity-options span{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-surface);min-width:3rem;padding:.45rem .7rem;display:block}.emotion-options input:checked+span,.intensity-options input:checked+span{border-color:var(--color-accent);background:var(--color-accent-soft)}.emotion-options input:focus-visible+span,.intensity-options input:focus-visible+span{outline:.2rem solid var(--color-accent);outline-offset:.15rem}.emotion-text{margin-top:var(--space-4);gap:var(--space-1);text-align:left;font-weight:650;display:grid}.emotion-text textarea{min-height:7.5rem;padding:var(--space-2);resize:vertical;border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-surface);color:var(--color-text);font:inherit}.counter{color:var(--color-muted);text-align:right}.submit-emotion{border-radius:var(--radius-pill);background:var(--color-accent);color:#fff;min-width:10rem;font:inherit;border:0;padding:.75rem 1.5rem;font-weight:650}.submit-emotion:disabled{opacity:.6}.emotion-confirmation{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-medium);color:#504941;text-align:left;background:#f4f1ec}.emotion-confirmation-actions{margin-top:var(--space-2);justify-content:end;gap:var(--space-1);display:flex}.emotion-confirmation-actions button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:999px;padding:.65rem 1rem}.waiting-card{border:1px solid var(--color-border);border-radius:var(--radius-large);max-width:30rem;box-shadow:var(--shadow-card);text-align:center;background:#ffffff9e;padding:clamp(2rem,6vw,3.5rem)}.waiting-mark,.match-mark{width:4rem;height:4rem;margin:0 auto var(--space-3);border:.4rem solid #d8c49b;border-top-color:#9c6d17;border-radius:50%}.waiting-mark{animation:2.4s linear infinite waiting-turn}.match-mark{background:radial-gradient(circle,#9c6d17 0 22%,#d8c49b 24% 46%,#0000 48%);border:0}.server-countdown{color:var(--color-muted);font-variant-numeric:tabular-nums}.waiting-card button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;border-radius:999px;padding:.65rem 1rem}.completed-card{border:1px solid var(--color-border);border-radius:var(--radius-large);max-width:34rem;box-shadow:var(--shadow-card);text-align:center;background:#ffffff9e;margin:0 auto;padding:clamp(2rem,7vw,4rem)}.completed-mark{width:4.5rem;height:4.5rem;margin:0 auto var(--space-3);color:#594821;background:#d8c49b;border-radius:50%;place-items:center;font-size:1.75rem;display:grid}.completed-card h1:focus{outline:none}.next-action{margin:var(--space-4) 0;padding-top:var(--space-2);border-top:1px solid var(--color-border)}.completed-card button{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;border-radius:999px;padding:.7rem 1.2rem}.completed-actions{justify-content:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.interaction-page{max-width:60rem;margin:0 auto}.interaction-heading{justify-content:space-between;align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.interaction-progress{color:var(--color-muted);font-variant-numeric:tabular-nums}.interaction-layout{gap:var(--space-4);display:grid}.message-list{gap:var(--space-2);min-height:12rem;padding:0;list-style:none;display:grid}.message-list li{border-radius:var(--radius-medium);background:var(--color-soft);border:1px solid #e5e0d9;max-width:80%;padding:.75rem 1rem}.message-list li.message-self{background:var(--color-accent-soft);border-color:#ddcda7;margin-left:auto}.message-list small{color:var(--color-muted);display:block}.message-column form{gap:var(--space-1);display:grid}.message-column textarea{width:100%;max-width:100%;min-height:6rem;padding:var(--space-2);border:1px solid var(--color-border);font:inherit;border-radius:.75rem}.message-column button,.end-interaction,[role=dialog] button{border:1px solid var(--color-border);background:var(--color-surface);font:inherit;border-radius:999px;padding:.65rem 1rem}.emotion-context{align-content:start;gap:var(--space-2);display:grid}.emotion-context section{padding:var(--space-2);border-radius:var(--radius-medium);background:var(--color-soft);border:1px solid #e5e0d9}.emotion-context h2{margin-top:0}.end-interaction{margin-top:var(--space-4)}.dialog-backdrop{z-index:20;padding:var(--space-2);background:#00000059;place-items:center;display:grid;position:fixed;inset:0}[role=dialog]{width:min(100%,26rem);max-height:calc(100vh - 2rem);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-medium);background:var(--color-warm-surface);overflow:auto;box-shadow:0 1rem 3rem #0003}[role=dialog] div{justify-content:end;gap:var(--space-1);display:flex}.site-footer{width:min(100% - 2rem, var(--content-max-width));padding:var(--space-4) 0 3rem;align-items:center;gap:var(--space-2);color:var(--color-muted);text-align:center;flex-direction:column;margin:0 auto;font-size:.875rem;display:flex}.footer-brand img{opacity:.9;width:4.5rem;height:4.5rem;display:block}.site-footer nav{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.icp-link{color:var(--color-muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (width>=48rem){.site-header,.main-content,.site-footer{width:min(100% - 4rem, var(--content-max-width))}.main-content{padding-block:5rem}.interaction-layout{grid-template-columns:minmax(0,2fr) minmax(14rem,1fr)}}@media (width<=30rem){.main-content{padding-block:var(--space-4)}.auth-gateway,.waiting-card,.completed-card{padding:var(--space-3)}.emotion-wheel{width:min(100%,23rem)}.wheel-center{padding-top:1rem}.interaction-heading{flex-direction:column;align-items:start}.message-list li{max-width:92%}.provider-button,.submit-emotion,.waiting-card>button,.completed-card>button,.emotion-confirmation-actions button,.completed-actions button{width:100%}.emotion-confirmation-actions,.completed-actions{flex-direction:column}[role=dialog] div{flex-direction:column-reverse}[role=dialog] button{width:100%}}@keyframes waiting-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
