:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Apple SD Gothic Neo,Helvetica Neue,sans-serif;line-height:1.5;font-weight:400;color:#2f273a;background:radial-gradient(circle at top left,rgba(200,185,230,.58),transparent 24%),radial-gradient(circle at top right,rgba(196,138,183,.24),transparent 28%),linear-gradient(180deg,#f7f4fb,#f1ecf7 48%,#fbf8ff);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-ink: #2f273a;--color-ink-strong: #211827;--color-muted: #6d6279;--color-muted-soft: #8e849a;--color-brand: #8e7dbe;--color-brand-strong: #6f5aa2;--color-brand-soft: rgba(142, 125, 190, .14);--color-brand-mist: rgba(233, 225, 244, .9);--color-accent: #c48ab7;--color-accent-cool: #98aedd;--color-success: #4f7a63;--color-danger: #9e5d72;--color-surface: rgba(255, 252, 255, .82);--color-surface-strong: rgba(255, 252, 255, .94);--color-surface-tint: rgba(241, 236, 247, .72);--color-identity-user-start: rgba(252, 247, 255, .9);--color-identity-user-end: rgba(223, 211, 243, .84);--color-identity-user-orb: rgba(161, 140, 229, .28);--color-identity-friend-start: rgba(252, 247, 255, .9);--color-identity-friend-end: rgba(235, 218, 241, .82);--color-identity-friend-orb: rgba(196, 138, 183, .24);--color-identity-label: #7457aa;--color-identity-friend-label: #ad6f98;--color-avatar-surface: rgba(241, 236, 247, .84);--color-border: rgba(141, 125, 176, .18);--color-border-strong: rgba(111, 90, 162, .24);--shadow-soft: 0 22px 60px rgba(78, 55, 109, .1);--shadow-card: 0 28px 90px rgba(78, 55, 109, .14);--shadow-focus: 0 0 0 4px rgba(142, 125, 190, .18);--color-white-soft: rgba(255, 255, 255, .72);--color-surface-ghost: rgba(255, 252, 255, .58);--color-surface-soft: rgba(255, 252, 255, .68);--color-surface-card: rgba(255, 252, 255, .72);--color-surface-card-strong: rgba(255, 252, 255, .82);--color-surface-card-solid: rgba(255, 252, 255, .88);--color-surface-card-opaque: rgba(255, 252, 255, .92);--color-overlay: rgba(41, 31, 57, .28);--color-brand-glow: rgba(200, 185, 230, .55);--color-accent-glow: rgba(196, 138, 183, .25);--color-brand-glow-soft: rgba(142, 125, 190, .22);--color-brand-glow-faint: rgba(142, 125, 190, .12);--color-accent-glow-faint: rgba(196, 138, 183, .18);--gradient-brand-card: radial-gradient(circle at top right, var(--color-accent-glow-faint), transparent 32%), linear-gradient(145deg, rgba(255, 252, 255, .98), rgba(233, 225, 244, .84));--gradient-shell-banner: linear-gradient(180deg, rgba(255, 252, 255, .95), rgba(241, 236, 247, .84));--gradient-identity-card: linear-gradient(180deg, rgba(255, 252, 255, .94), rgba(241, 236, 247, .82));--gradient-brand-mark: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .42), transparent 28%), linear-gradient(145deg, rgba(241, 236, 247, .96), rgba(233, 225, 244, .84));--shadow-brand-mark: inset 0 1px 0 rgba(255, 255, 255, .7), 0 12px 24px rgba(111, 90, 162, .16);--gradient-brand-orb: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .72), transparent 32%), linear-gradient(135deg, rgba(111, 90, 162, .94), rgba(196, 138, 183, .88));--shadow-brand-orb: inset 0 1px 0 rgba(255, 255, 255, .4), 0 18px 30px rgba(111, 90, 162, .22);--gradient-page-header: radial-gradient(circle at top right, rgba(200, 185, 230, .22), transparent 34%), linear-gradient(180deg, rgba(255, 252, 255, .94), rgba(255, 248, 255, .9));--gradient-panel-hero: radial-gradient(circle at top right, rgba(196, 138, 183, .16), transparent 32%), radial-gradient(circle at bottom left, rgba(200, 185, 230, .22), transparent 32%), linear-gradient(145deg, rgba(255, 252, 255, .98), rgba(241, 236, 247, .88));--gradient-panel-tint: linear-gradient(180deg, rgba(233, 225, 244, .72), rgba(255, 252, 255, .82));--gradient-hero-highlight: linear-gradient(180deg, rgba(255, 255, 255, .66), rgba(233, 225, 244, .5));--gradient-upload: radial-gradient(circle at top left, rgba(181, 165, 238, .12), transparent 52%), linear-gradient(180deg, rgba(255, 252, 255, .9), rgba(241, 236, 247, .82));--gradient-calendar-active: linear-gradient(180deg, rgba(233, 225, 244, .82), rgba(255, 252, 255, .9));--gradient-state-loading: linear-gradient(135deg, rgba(241, 236, 247, .96), rgba(255, 252, 255, .94));--gradient-state-error: linear-gradient(135deg, rgba(250, 240, 246, .94), rgba(255, 252, 255, .94));--color-control-border: rgba(141, 125, 176, .18);--color-control-border-strong: rgba(111, 90, 162, .42);--color-control-border-soft: rgba(141, 125, 176, .16);--color-control-border-dashed: rgba(141, 125, 176, .22);--color-control-border-dashed-strong: rgba(141, 125, 176, .34);--color-control-bg: rgba(255, 252, 255, .72);--color-control-bg-strong: rgba(255, 252, 255, .88);--color-control-bg-soft: rgba(255, 252, 255, .82);--color-control-bg-muted: rgba(255, 252, 255, .74);--color-control-inset-highlight: rgba(255, 255, 255, .64);--color-chip-muted-bg: rgba(255, 252, 255, .72);--color-chip-subtle-bg: rgba(141, 125, 176, .08);--color-selected-bg: rgba(233, 225, 244, .92);--color-selected-bg-soft: rgba(233, 225, 244, .84);--color-success-bg: rgba(242, 248, 243, .92);--color-success-surface: rgba(242, 248, 243, .88);--color-nav-shadow: 0 18px 32px rgba(111, 90, 162, .24);--color-button-shadow: 0 16px 26px rgba(111, 90, 162, .2);--color-floating-shadow: 0 18px 36px rgba(111, 90, 162, .28);--color-selected-shadow: 0 10px 22px rgba(111, 90, 162, .12);--color-upload-shadow: 0 14px 28px rgba(111, 90, 162, .1);--color-modal-close-bg: rgba(142, 125, 190, .12);--color-modal-close-bg-hover: rgba(142, 125, 190, .18);--color-emotion-icon-bg: rgba(233, 225, 244, .9);--radius-2xl: 34px;--radius-xl: 28px;--radius-lg: 22px;--radius-md: 16px;--radius-sm: 12px;--space-1: 6px;--space-2: 10px;--space-3: 14px;--space-4: 18px;--space-5: 24px;--space-6: 32px;--motion-soft: .22s cubic-bezier(.22, 1, .36, 1)}:root[data-theme=forest-haze]{--color-brand: #7f8bb8;--color-brand-strong: #5a638f;--color-brand-soft: rgba(127, 139, 184, .14);--color-brand-mist: rgba(228, 232, 246, .9);--color-accent: #9db38f;--color-brand-glow: rgba(169, 193, 179, .42);--color-accent-glow: rgba(127, 139, 184, .24);--color-brand-glow-soft: rgba(127, 139, 184, .22);--color-brand-glow-faint: rgba(127, 139, 184, .12);--color-accent-glow-faint: rgba(157, 179, 143, .16);--gradient-brand-card: radial-gradient(circle at top right, rgba(157, 179, 143, .16), transparent 32%), linear-gradient(145deg, rgba(252, 254, 252, .98), rgba(229, 237, 232, .86));--gradient-shell-banner: linear-gradient(180deg, rgba(252, 254, 252, .95), rgba(232, 240, 235, .84));--gradient-identity-card: linear-gradient(180deg, rgba(252, 254, 252, .94), rgba(232, 240, 235, .84));--gradient-brand-mark: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .46), transparent 28%), linear-gradient(145deg, rgba(236, 244, 239, .96), rgba(224, 235, 229, .84));--shadow-brand-mark: inset 0 1px 0 rgba(255, 255, 255, .7), 0 12px 24px rgba(90, 99, 143, .14);--gradient-brand-orb: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .72), transparent 32%), linear-gradient(135deg, rgba(90, 99, 143, .92), rgba(157, 179, 143, .88));--shadow-brand-orb: inset 0 1px 0 rgba(255, 255, 255, .4), 0 18px 30px rgba(90, 99, 143, .2);--gradient-page-header: radial-gradient(circle at top right, rgba(169, 193, 179, .22), transparent 34%), linear-gradient(180deg, rgba(252, 254, 252, .94), rgba(244, 248, 245, .9));--gradient-panel-hero: radial-gradient(circle at top right, rgba(157, 179, 143, .16), transparent 32%), radial-gradient(circle at bottom left, rgba(127, 139, 184, .2), transparent 32%), linear-gradient(145deg, rgba(252, 254, 252, .98), rgba(236, 244, 239, .88));--gradient-panel-tint: linear-gradient(180deg, rgba(228, 232, 246, .72), rgba(252, 254, 252, .82));--gradient-hero-highlight: linear-gradient(180deg, rgba(255, 255, 255, .7), rgba(228, 236, 231, .56));--gradient-upload: radial-gradient(circle at top left, rgba(127, 139, 184, .12), transparent 52%), linear-gradient(180deg, rgba(252, 254, 252, .9), rgba(232, 240, 235, .82));--gradient-calendar-active: linear-gradient(180deg, rgba(228, 232, 246, .82), rgba(252, 254, 252, .9));--gradient-state-loading: linear-gradient(135deg, rgba(236, 244, 239, .96), rgba(252, 254, 252, .94));--color-surface-ghost: rgba(250, 252, 250, .6);--color-surface-soft: rgba(250, 252, 250, .7);--color-surface-card: rgba(250, 252, 250, .74);--color-surface-card-strong: rgba(250, 252, 250, .84);--color-surface-card-solid: rgba(250, 252, 250, .9);--color-surface-card-opaque: rgba(252, 254, 252, .93);--color-control-bg: rgba(250, 252, 250, .74);--color-control-bg-strong: rgba(250, 252, 250, .9);--color-control-bg-soft: rgba(250, 252, 250, .84);--color-control-bg-muted: rgba(250, 252, 250, .76);--color-chip-muted-bg: rgba(250, 252, 250, .74);--color-chip-subtle-bg: rgba(127, 139, 184, .1);--color-selected-bg: rgba(228, 232, 246, .92);--color-selected-bg-soft: rgba(228, 232, 246, .84);--color-button-shadow: 0 16px 26px rgba(90, 99, 143, .18);--color-nav-shadow: 0 18px 32px rgba(90, 99, 143, .22);--color-floating-shadow: 0 18px 36px rgba(90, 99, 143, .24);--color-selected-shadow: 0 10px 22px rgba(90, 99, 143, .12);--color-upload-shadow: 0 14px 28px rgba(90, 99, 143, .1);--color-emotion-icon-bg: rgba(228, 232, 246, .9);--color-identity-user-start: rgba(247, 251, 248, .92);--color-identity-user-end: rgba(216, 229, 222, .88);--color-identity-user-orb: rgba(127, 139, 184, .22);--color-identity-friend-start: rgba(248, 252, 248, .92);--color-identity-friend-end: rgba(224, 235, 224, .86);--color-identity-friend-orb: rgba(157, 179, 143, .24);--color-identity-label: #55668c;--color-identity-friend-label: #6f8b66;--color-avatar-surface: rgba(232, 240, 235, .9);background:radial-gradient(circle at top left,rgba(169,193,179,.38),transparent 26%),radial-gradient(circle at top right,rgba(200,185,230,.24),transparent 28%),linear-gradient(180deg,#f4f7f5,#edf2f0 48%,#fafbfd)}:root[data-theme=pastel-night]{--color-brand: #8570c5;--color-brand-strong: #59469d;--color-brand-soft: rgba(133, 112, 197, .14);--color-brand-mist: rgba(229, 223, 251, .88);--color-accent: #b68fd6;--color-brand-glow: rgba(181, 165, 238, .4);--color-accent-glow: rgba(196, 138, 183, .22);--color-brand-glow-soft: rgba(181, 165, 238, .24);--color-brand-glow-faint: rgba(181, 165, 238, .14);--color-accent-glow-faint: rgba(182, 143, 214, .2);--gradient-brand-card: radial-gradient(circle at top right, rgba(182, 143, 214, .18), transparent 32%), linear-gradient(145deg, rgba(251, 248, 255, .98), rgba(236, 229, 252, .86));--gradient-shell-banner: linear-gradient(180deg, rgba(251, 248, 255, .95), rgba(236, 229, 252, .84));--gradient-identity-card: linear-gradient(180deg, rgba(251, 248, 255, .94), rgba(236, 229, 252, .84));--gradient-brand-mark: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .44), transparent 28%), linear-gradient(145deg, rgba(239, 233, 253, .96), rgba(229, 223, 251, .84));--shadow-brand-mark: inset 0 1px 0 rgba(255, 255, 255, .7), 0 12px 24px rgba(89, 70, 157, .16);--gradient-brand-orb: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, .72), transparent 32%), linear-gradient(135deg, rgba(89, 70, 157, .94), rgba(182, 143, 214, .88));--shadow-brand-orb: inset 0 1px 0 rgba(255, 255, 255, .4), 0 18px 30px rgba(89, 70, 157, .22);--gradient-page-header: radial-gradient(circle at top right, rgba(181, 165, 238, .22), transparent 34%), linear-gradient(180deg, rgba(250, 247, 255, .94), rgba(242, 236, 252, .9));--gradient-panel-hero: radial-gradient(circle at top right, rgba(182, 143, 214, .18), transparent 32%), radial-gradient(circle at bottom left, rgba(181, 165, 238, .22), transparent 32%), linear-gradient(145deg, rgba(251, 248, 255, .98), rgba(236, 229, 252, .88));--gradient-panel-tint: linear-gradient(180deg, rgba(229, 223, 251, .74), rgba(251, 248, 255, .82));--gradient-hero-highlight: linear-gradient(180deg, rgba(255, 255, 255, .68), rgba(229, 223, 251, .54));--gradient-upload: radial-gradient(circle at top left, rgba(181, 165, 238, .14), transparent 52%), linear-gradient(180deg, rgba(251, 248, 255, .9), rgba(236, 229, 252, .82));--gradient-calendar-active: linear-gradient(180deg, rgba(229, 223, 251, .82), rgba(251, 248, 255, .9));--gradient-state-loading: linear-gradient(135deg, rgba(239, 233, 253, .96), rgba(251, 248, 255, .94));--color-surface-ghost: rgba(251, 248, 255, .6);--color-surface-soft: rgba(251, 248, 255, .7);--color-surface-card: rgba(251, 248, 255, .74);--color-surface-card-strong: rgba(251, 248, 255, .84);--color-surface-card-solid: rgba(251, 248, 255, .9);--color-surface-card-opaque: rgba(251, 248, 255, .93);--color-control-bg: rgba(251, 248, 255, .74);--color-control-bg-strong: rgba(251, 248, 255, .9);--color-control-bg-soft: rgba(251, 248, 255, .84);--color-control-bg-muted: rgba(251, 248, 255, .76);--color-chip-muted-bg: rgba(251, 248, 255, .74);--color-chip-subtle-bg: rgba(133, 112, 197, .1);--color-selected-bg: rgba(229, 223, 251, .92);--color-selected-bg-soft: rgba(229, 223, 251, .84);--color-button-shadow: 0 16px 26px rgba(89, 70, 157, .2);--color-nav-shadow: 0 18px 32px rgba(89, 70, 157, .24);--color-floating-shadow: 0 18px 36px rgba(89, 70, 157, .28);--color-selected-shadow: 0 10px 22px rgba(89, 70, 157, .14);--color-upload-shadow: 0 14px 28px rgba(89, 70, 157, .1);--color-emotion-icon-bg: rgba(229, 223, 251, .9);--color-identity-user-start: rgba(247, 243, 255, .92);--color-identity-user-end: rgba(220, 210, 247, .88);--color-identity-user-orb: rgba(181, 165, 238, .3);--color-identity-friend-start: rgba(249, 243, 255, .92);--color-identity-friend-end: rgba(230, 214, 247, .86);--color-identity-friend-orb: rgba(182, 143, 214, .26);--color-identity-label: #6149a8;--color-identity-friend-label: #8d63b6;--color-avatar-surface: rgba(234, 226, 250, .92);background:radial-gradient(circle at top left,rgba(181,165,238,.4),transparent 26%),radial-gradient(circle at top right,rgba(196,138,183,.22),transparent 30%),linear-gradient(180deg,#f3f0fd,#ece8fb 52%,#faf7ff)}*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;scroll-padding-top:120px}body,button,input,textarea,select{font:inherit}button,input,textarea,select{transition:background-color var(--motion-soft),border-color var(--motion-soft),color var(--motion-soft),box-shadow var(--motion-soft),transform var(--motion-soft)}button{cursor:pointer;touch-action:manipulation}button:hover{transform:translateY(-1px)}button:active{transform:translateY(0)}a{color:inherit;text-decoration:none}#app{min-height:100vh}.shell{position:relative;display:grid;min-height:100vh;padding:calc(18px + env(safe-area-inset-top,0px)) 18px calc(100px + env(safe-area-inset-bottom,0px));gap:18px;overflow:hidden}.shell:before,.shell:after{content:"";position:fixed;z-index:0;pointer-events:none;filter:blur(24px)}.shell:before{top:80px;right:-40px;width:220px;height:220px;border-radius:999px;background:radial-gradient(circle,var(--color-brand-glow) 0%,transparent 70%)}.shell:after{bottom:80px;left:-20px;width:180px;height:180px;border-radius:999px;background:radial-gradient(circle,var(--color-accent-glow) 0%,transparent 72%)}.shell__rail,.shell__content{position:relative;z-index:1;display:grid;gap:16px;align-content:start}.surface-card,.brand-card,.meta-card,.page-header,.panel,.state-card,.shell-banner{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-soft)}.brand-card,.meta-card,.page-header,.panel,.shell-banner{padding:20px}.brand-card h1,.page-header h2,.panel h3,.state-card h3,.shell-banner h3{margin:0;color:var(--color-ink-strong)}.brand-card p,.page-header p,.panel p,.state-card p,.shell-banner p{margin:0}.brand-card{position:relative;display:grid;gap:14px;overflow:hidden;background:var(--gradient-brand-card)}.brand-card--compact{display:flex;align-items:center;gap:14px;padding:14px 16px;min-height:auto}.identity-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--gradient-identity-card);box-shadow:var(--shadow-soft)}.identity-card__user,.identity-card__friend{display:flex;align-items:center;gap:12px;min-width:0;padding:12px 14px;border-radius:20px}.identity-card__user{background:radial-gradient(circle at top left,var(--color-identity-user-orb),transparent 52%),linear-gradient(135deg,var(--color-identity-user-start),var(--color-identity-user-end))}.identity-card__friend{background:radial-gradient(circle at top right,var(--color-identity-friend-orb),transparent 52%),linear-gradient(135deg,var(--color-identity-friend-start),var(--color-identity-friend-end))}.identity-card__copy{display:grid;gap:4px;min-width:0}.identity-card__copy--friend .panel__eyebrow{color:var(--color-identity-friend-label)}.identity-card .panel__eyebrow{color:var(--color-identity-label)}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:var(--gradient-brand-mark);box-shadow:var(--shadow-brand-mark)}.brand-mark__image{display:block;width:38px;height:38px;object-fit:contain;image-rendering:pixelated}.brand-card__logo{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Arial,sans-serif;color:var(--color-ink-strong);font-size:1.08rem;font-weight:700;letter-spacing:.06em}.friend-mini-card__image{width:38px;height:38px;border-radius:12px;object-fit:cover;background:var(--color-avatar-surface);image-rendering:pixelated}.identity-card__friend strong{color:var(--color-ink-strong);font-size:1rem}.identity-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-card:after{content:"";position:absolute;right:-18px;top:-24px;width:120px;height:120px;border-radius:999px;background:radial-gradient(circle,var(--color-brand-glow-soft),transparent 70%)}.brand-card__eyebrow,.page-header__label,.panel__eyebrow,.eyebrow{margin-bottom:10px;color:var(--color-brand-strong);font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.brand-card__headline{display:grid;gap:8px}.brand-card__headline h1{font-size:clamp(1.9rem,4.4vw,2.6rem);line-height:1.02}.brand-card__headline p,.meta-card p,.page-header__description,.muted{color:var(--color-muted)}.brand-card__footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:6px}.brand-card__note{max-width:18rem;color:var(--color-muted-soft);font-size:.9rem}.brand-card__orb{width:54px;height:54px;border-radius:18px;background:var(--gradient-brand-orb);box-shadow:var(--shadow-brand-orb)}.shell-banner{display:grid;gap:10px;background:var(--gradient-shell-banner)}.shell-banner__row,.meta-card__row,.meta-card__endpoint{display:flex;align-items:center;justify-content:space-between;gap:12px}.meta-card{display:grid;gap:12px}.meta-card strong{color:var(--color-ink-strong)}.meta-card__endpoint{align-items:flex-start;flex-direction:column}.meta-card__endpoint code{max-width:100%;overflow:hidden;color:var(--color-muted);font-size:.84rem;text-overflow:ellipsis;white-space:nowrap}.primary-nav{display:none;gap:10px}.primary-nav__link,.bottom-nav__link{border-radius:999px;transition:background-color var(--motion-soft),color var(--motion-soft),transform var(--motion-soft),box-shadow var(--motion-soft)}.primary-nav__link{display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:14px 16px;background:var(--color-surface-ghost);color:var(--color-muted);font-weight:700}.primary-nav__link.is-active,.bottom-nav__link.is-active{background:linear-gradient(135deg,var(--color-brand-strong),var(--color-accent));color:#fff;box-shadow:var(--color-nav-shadow)}.page-header{position:sticky;top:calc(8px + env(safe-area-inset-top,0px));z-index:4;display:grid;gap:18px;overflow:hidden;background:var(--gradient-page-header)}.page-header:after{content:"";position:absolute;right:-36px;bottom:-42px;width:160px;height:160px;border-radius:999px;background:radial-gradient(circle,var(--color-brand-glow-faint),transparent 70%)}.page-header__top,.page-header__meta{position:relative;z-index:1;display:grid;gap:10px}.page-header__title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.page-header h2{font-size:clamp(2rem,5vw,3.6rem);line-height:.98;letter-spacing:-.04em}.page-header__description{max-width:42rem;font-size:1rem}.page-header__chips{display:flex;flex-wrap:wrap;gap:10px}.page-main,.stack,.grid,.section-stack{display:grid;gap:16px}.page-main{gap:18px}.grid--two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid--three{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.panel{display:grid;gap:16px;align-content:start}.panel--hero{overflow:hidden;background:var(--gradient-panel-hero)}.panel--soft{padding:16px;border-radius:var(--radius-lg);background:var(--color-surface-soft)}.panel--tint{background:var(--gradient-panel-tint)}.panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.panel__copy h3,.section-title h3{margin-bottom:8px}.hero-copy{display:grid;gap:12px}.hero-copy h3{font-size:clamp(1.5rem,4vw,2.3rem);line-height:1.08}.hero-copy p{max-width:42rem}.hero-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:18px;align-items:stretch}.hero-side{display:grid;gap:12px}.hero-highlight{display:grid;gap:12px;padding:18px;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.52);background:var(--gradient-hero-highlight)}.hero-highlight strong{color:var(--color-ink-strong)}.hero-badge{display:inline-flex;width:fit-content;padding:7px 12px;border-radius:999px;background:var(--color-chip-muted-bg);color:var(--color-brand-strong);font-size:.82rem;font-weight:800}.hero-metrics,.summary-strip,.metric-grid,.stat-grid{display:grid;gap:12px}.hero-metrics,.summary-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.metric-card,.summary-strip>div,.soft-stat,.state-inline{padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--color-control-border-soft);background:var(--color-surface-card)}.metric-card strong,.summary-strip strong,.soft-stat strong{color:var(--color-ink-strong);font-size:1.2rem}.summary-strip__label,.metric-label{margin-bottom:6px;color:var(--color-muted);font-size:.78rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.status-pill,.chip,.soft-chip{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:34px;padding:7px 12px;border-radius:999px;background:var(--color-brand-soft);color:var(--color-brand-strong);font-size:.84rem;font-weight:800}.soft-chip{background:var(--color-chip-muted-bg);color:var(--color-muted)}.status-pill--subtle{background:var(--color-chip-subtle-bg);color:var(--color-muted)}.primary-button,.secondary-button,.warning-button,.danger-button,.icon-button,.ghost-button{min-height:48px;padding:0 16px;border-radius:16px;font-weight:800}.primary-button{border:none;background:linear-gradient(135deg,var(--color-brand-strong),var(--color-accent));color:#fff;box-shadow:var(--color-button-shadow)}.secondary-button{border:1px solid var(--color-control-border);background:var(--color-control-bg);color:var(--color-ink)}.warning-button{border:1px solid rgba(212,156,86,.28);background:linear-gradient(135deg,#ffdd96d6,#f2a854e0);color:#7c4c16;box-shadow:0 14px 26px #d69c482e}.danger-button{border:1px solid rgba(181,72,96,.34);background:linear-gradient(135deg,#ffb0bcf0,#dc5879eb);color:#7f1633;box-shadow:0 16px 28px #b5486033}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;min-height:44px;padding:0;border:1px solid var(--color-control-border);background:var(--color-control-bg);color:var(--color-brand-strong);font-size:1.1rem}.ghost-button{border:1px dashed var(--color-control-border-dashed);background:transparent;color:var(--color-brand-strong)}.primary-button:disabled,.secondary-button:disabled,.warning-button:disabled,.danger-button:disabled,.icon-button:disabled,.ghost-button:disabled{cursor:not-allowed;opacity:.56}.field{display:grid;gap:8px}.field span{color:var(--color-ink);font-size:.9rem;font-weight:700}.text-input{min-height:50px;width:100%;padding:0 14px;border:1px solid var(--color-control-border-dashed);border-radius:16px;background:var(--color-control-bg-strong);color:var(--color-ink);box-shadow:inset 0 1px 0 var(--color-control-inset-highlight)}.text-input:focus{outline:none;border-color:var(--color-control-border-strong);box-shadow:var(--shadow-focus)}.text-area{min-height:200px;padding:14px;resize:vertical}.file-input{padding:10px 12px}.upload-card{position:relative;display:grid;justify-items:center;gap:8px;width:100%;padding:18px 16px;border:1px dashed var(--color-control-border-dashed-strong);border-radius:20px;background:var(--gradient-upload);color:var(--color-ink);text-align:center;cursor:pointer}.upload-card:hover{border-color:var(--color-control-border-strong);box-shadow:var(--color-upload-shadow)}.upload-card__input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.upload-card__icon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:999px;background:var(--color-brand-soft);color:var(--color-brand-strong);font-size:1.4rem;line-height:1}.upload-card__title{color:var(--color-ink-strong);font-weight:800}.upload-card__meta{color:var(--color-muted);font-size:.88rem}.upload-file-list{display:grid;gap:10px;margin:0;padding:0;list-style:none}.upload-file-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--color-control-border-soft);border-radius:16px;background:var(--color-surface-card);word-break:break-all}.checkbox-field{display:flex;align-items:center;gap:10px;color:var(--color-ink);font-weight:700}.form-action-row{display:block}.form-action-row__button{width:100%}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:var(--color-overlay);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal-card{width:min(100%,420px);gap:18px}.modal-card__actions{display:flex;justify-content:flex-end;gap:10px}.modal-card__actions .primary-button,.modal-card__actions .secondary-button{min-width:112px}.modal-card__close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:0;border-radius:999px;background:var(--color-modal-close-bg);color:var(--color-brand-strong);font-size:1.5rem;line-height:1;box-shadow:none}.modal-card__close:hover{background:var(--color-modal-close-bg-hover)}.modal-card__close:disabled{opacity:.56;cursor:not-allowed}.auth-layout,.onboarding-layout{display:grid;gap:18px}.auth-layout{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:start}.auth-hero-card,.auth-action-card,.onboarding-hero{min-height:100%}.auth-kicker{display:grid;gap:6px}.google-button-slot{min-height:48px}.journey-list,.support-list,.check-list,.soft-list{display:grid;gap:10px;margin:0;color:var(--color-ink)}.journey-list,.support-list{padding-left:20px}.soft-list{padding-left:18px}.support-list--dense{gap:8px}.journey-list li,.support-list li,.soft-list li{color:var(--color-ink)}.support-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.support-card,.trust-card,.floating-note,.theme-card,.friend-card,.diary-list__item,.legend-item,.retrospect-list li,.asset-list li,.check-list li,.empty-state,.floating-stat{border:1px solid var(--color-control-border-soft);border-radius:var(--radius-lg);background:var(--color-surface-card)}.support-card,.trust-card,.floating-note,.empty-state,.friend-card,.diary-list__item{padding:16px}.support-card{display:grid;gap:8px}.support-card strong,.trust-card strong,.floating-note strong{color:var(--color-ink-strong)}.support-card p,.trust-card p,.floating-note p{color:var(--color-muted)}.onboarding-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.onboarding-progress{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.progress-card{display:grid;gap:10px;padding:16px;border-radius:var(--radius-lg);background:var(--color-control-bg-muted);border:1px solid var(--color-control-border-soft)}.progress-card__index{display:inline-flex;width:fit-content;padding:6px 10px;border-radius:999px;background:var(--color-brand-mist);color:var(--color-brand-strong);font-size:.78rem;font-weight:800}.check-list{padding-left:0;list-style:none}.check-list li{display:grid;gap:4px}.check-list li.is-done{border-color:#4f7a633d;background:var(--color-success-surface)}.check-list li span{color:var(--color-muted)}.sticky-action-bar{position:sticky;bottom:84px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid rgba(255,255,255,.78);border-radius:var(--radius-xl);background:var(--color-surface-card-opaque);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-card)}.sticky-action-bar__button{min-width:190px}.section-note{color:var(--color-muted-soft);font-size:.92rem}.friend-preview-list,.friend-card-list,.asset-list,.retrospect-list,.diary-list{display:grid;gap:12px;margin:0;padding:0;list-style:none}.friend-preview-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;border:1px solid var(--color-control-border-soft);border-radius:var(--radius-lg);background:var(--color-surface-card)}.friend-card__body,.friend-card__title-row,.friend-card__actions,.action-row{display:flex}.friend-card__body{align-items:center;justify-content:space-between;gap:16px}.friend-card__title-row{align-items:center;gap:10px;margin-bottom:8px}.friend-card__title-row h4,.diary-list__item h4{margin:0;color:var(--color-ink-strong)}.friend-card__actions,.action-row{flex-wrap:wrap;gap:10px}.asset-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;word-break:break-all}.empty-state{display:grid;gap:10px;border-style:dashed}.quick-action-card,.floating-note,.theme-card{align-content:start}.emotion-grid{display:flex;flex-wrap:wrap;gap:8px}.emotion-pill,.chip-button{min-height:40px;border-radius:999px}.emotion-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-control-border);background:var(--color-surface-card-strong);color:var(--color-ink);font-weight:700;padding:0 14px}.emotion-pill__emoji{font-size:1rem;line-height:1}.emotion-pill.is-selected{border-color:#6f5aa24d;background:var(--color-selected-bg);color:var(--color-brand-strong);box-shadow:var(--color-selected-shadow)}.chip-button{width:fit-content}.inline-feedback{padding:12px 14px;border-radius:var(--radius-md);background:var(--color-selected-bg-soft);color:var(--color-brand-strong);font-weight:700}.inline-feedback--success{background:var(--color-success-bg);color:var(--color-success)}.text-danger{color:var(--color-danger)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.calendar-grid-wrap{overflow-x:auto}.calendar-grid-wrap .calendar-grid{min-width:620px}.calendar-grid__weekday{padding:8px 0;color:var(--color-muted);font-size:.82rem;font-weight:700;text-align:center}.calendar-cell{display:grid;align-content:start;gap:8px;min-height:112px;padding:12px 10px;border:1px solid var(--color-control-border-soft);border-radius:var(--radius-lg);background:var(--color-control-bg-muted);color:var(--color-ink);text-align:left}.calendar-cell.is-empty{background:#ffffff57;opacity:.5}.calendar-cell.is-today{border-color:#6f5aa26b;box-shadow:0 0 0 2px #8e7dbe1f}.calendar-cell.has-diary{background:var(--gradient-calendar-active)}.calendar-cell__day{font-weight:800}.calendar-cell__title{display:-webkit-box;overflow:hidden;color:var(--color-muted);font-size:.78rem;line-clamp:2;-webkit-box-orient:vertical;-webkit-line-clamp:2}.calendar-marker{display:inline-flex;width:fit-content;padding:4px 8px;border-radius:999px;font-size:.75rem;font-weight:800}.calendar-marker[data-emotion=happy],.legend-dot[data-emotion=happy]{background:#f0d08047;color:#996f1b}.calendar-marker[data-emotion=calm],.legend-dot[data-emotion=calm]{background:#98aedd38;color:#4b5d96}.calendar-marker[data-emotion=sad],.legend-dot[data-emotion=sad]{background:#b0bde438;color:#536295}.calendar-marker[data-emotion=angry],.legend-dot[data-emotion=angry]{background:#d69eb038;color:#8b4f63}.calendar-marker[data-emotion=anxious],.legend-dot[data-emotion=anxious]{background:#b68fd63d;color:#6c4c8c}.calendar-marker[data-emotion=tired],.legend-dot[data-emotion=tired]{background:#bbb6c547;color:#6f6678}.calendar-marker[data-emotion=excited],.legend-dot[data-emotion=excited]{background:#c48ab742;color:#8c5279}.calendar-marker[data-emotion=neutral],.legend-dot[data-emotion=neutral]{background:#d0cbe047;color:#69627b}.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px}.legend-item{display:flex;align-items:center;gap:10px;padding:12px 14px}.legend-dot{width:14px;height:14px;border-radius:999px}.retrospect-highlight-card{overflow:hidden}.retrospect-list li{display:flex;align-items:flex-start;gap:10px;padding:14px}.retrospect-list__bullet{width:10px;height:10px;margin-top:7px;border-radius:999px;background:linear-gradient(135deg,var(--color-brand-strong),var(--color-accent))}.diary-list__item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;cursor:pointer}.diary-list__main{display:flex;align-items:flex-start;gap:12px}.diary-list__emotion-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;margin-top:2px;border-radius:999px;background:var(--color-emotion-icon-bg);color:var(--color-brand-strong);font-size:.92rem;font-weight:800;flex:0 0 auto}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.theme-card{display:grid;gap:10px;color:var(--color-ink);text-align:left}.theme-card.is-selected{border-color:#6f5aa261;box-shadow:0 0 0 2px #8e7dbe1f}.theme-card__swatch{display:block;width:100%;height:84px;border-radius:16px;background:radial-gradient(circle at top left,rgba(200,185,230,.58),transparent 24%),radial-gradient(circle at top right,rgba(196,138,183,.24),transparent 28%),linear-gradient(180deg,#f7f4fb,#f1ecf7 48%,#fbf8ff)}.theme-card__swatch[data-theme-preview=forest-haze]{background:radial-gradient(circle at top left,rgba(169,193,179,.38),transparent 26%),radial-gradient(circle at top right,rgba(200,185,230,.24),transparent 28%),linear-gradient(180deg,#f4f7f5,#edf2f0 48%,#fafbfd)}.theme-card__swatch[data-theme-preview=pastel-night]{background:radial-gradient(circle at top left,rgba(181,165,238,.4),transparent 26%),radial-gradient(circle at top right,rgba(196,138,183,.22),transparent 30%),linear-gradient(180deg,#f3f0fd,#ece8fb 52%,#faf7ff)}.state-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}.state-card--loading{background:var(--gradient-state-loading)}.state-card--error{background:var(--gradient-state-error)}.state-card__orb{width:18px;height:18px;border-radius:999px;background:linear-gradient(135deg,var(--color-brand-strong),var(--color-accent));box-shadow:0 0 0 10px #8e7dbe1f;animation:pulse 1.4s ease-in-out infinite}.bottom-nav{position:fixed;right:14px;bottom:14px;left:14px;z-index:10;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px));border:1px solid rgba(255,255,255,.65);border-radius:26px;background:var(--color-surface-card-opaque);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--shadow-card)}.bottom-nav__link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 8px;color:var(--color-muted);font-size:.84rem;font-weight:800}.floating-diary-button{position:fixed;right:18px;bottom:calc(92px + env(safe-area-inset-bottom,0px));z-index:11;display:inline-flex;align-items:center;justify-content:center;width:58px;height:58px;border-radius:999px;background:linear-gradient(135deg,var(--color-brand-strong),var(--color-accent));color:#fff;box-shadow:var(--color-floating-shadow);font-weight:800}.floating-diary-button__icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-size:1.6rem;line-height:1}.settings-sticky-bar .action-row{justify-content:flex-end}.route-fade-enter-active,.route-fade-leave-active{transition:opacity var(--motion-soft),transform var(--motion-soft),filter var(--motion-soft)}.route-fade-enter-from,.route-fade-leave-to{opacity:0;filter:blur(4px);transform:translateY(10px)}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.72}}@media(min-width:960px){.shell{grid-template-columns:minmax(300px,360px) minmax(0,1fr);padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px))}.primary-nav{display:grid}.bottom-nav{display:none}.floating-diary-button{right:28px;bottom:28px}.page-main{gap:20px}}@media(max-width:900px){.hero-grid,.auth-layout,.onboarding-grid{grid-template-columns:1fr}}@media(max-width:720px){.sticky-action-bar{bottom:88px;align-items:stretch;flex-direction:column}.sticky-action-bar__button,.settings-sticky-bar .action-row,.settings-sticky-bar .action-row .secondary-button,.settings-sticky-bar .action-row .primary-button{width:100%}.hero-metrics,.summary-strip{grid-template-columns:1fr}.friend-preview-list li,.friend-card__body,.diary-list__item,.state-card,.page-header__title-row{align-items:flex-start;flex-direction:column}.calendar-grid-wrap .calendar-grid{min-width:560px}}
