@font-face{font-family:Quicksand;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/quicksand-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Quicksand;font-style:normal;font-weight:500 700;font-display:swap;src:url(/fonts/quicksand-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--c1: #ff9ec0;--c2: #b18bff;--danger: #ff7a90;--ok: #7fd1b9;--radius: 22px;--radius-sm: 14px;--bg: color-mix(in srgb, var(--c2) 10%, #14111a);--surface: color-mix(in srgb, var(--c2) 9%, #1e1a26);--surface-raised: color-mix(in srgb, var(--c1) 12%, var(--surface));--text: color-mix(in srgb, var(--c1) 8%, #f4eff7);--text-muted: color-mix(in srgb, var(--text) 62%, transparent);--border: color-mix(in srgb, var(--c2) 22%, var(--surface));--accent: var(--c1);--accent-2: var(--c2);--accent-grad: linear-gradient(135deg, var(--c1) 0%, var(--c2) 100%);--accent-soft: color-mix(in srgb, var(--c1) 22%, var(--surface));--bg-tint: radial-gradient( 120% 80% at 50% 0%, color-mix(in srgb, var(--c2) 22%, var(--bg)) 0%, var(--bg) 62% );--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-soft: 0 4px 14px rgba(0, 0, 0, .25);color-scheme:dark}@media(prefers-color-scheme:light){:root{--bg: color-mix(in srgb, var(--c1) 7%, #ffffff);--surface: #ffffff;--surface-raised: color-mix(in srgb, var(--c1) 12%, #ffffff);--text: color-mix(in srgb, var(--c2) 20%, #2f2a35);--text-muted: color-mix(in srgb, var(--text) 55%, transparent);--border: color-mix(in srgb, var(--c1) 22%, #ffffff);--accent-soft: color-mix(in srgb, var(--c1) 20%, #ffffff);--bg-tint: radial-gradient( 120% 80% at 50% 0%, color-mix(in srgb, var(--c1) 18%, #ffffff) 0%, var(--bg) 55%, color-mix(in srgb, var(--c2) 10%, #ffffff) 100% );--shadow: 0 10px 28px color-mix(in srgb, var(--c2) 18%, transparent);--shadow-soft: 0 4px 14px color-mix(in srgb, var(--c2) 14%, transparent);color-scheme:light}}:root[data-theme=rose],.themes__item[data-theme=rose]{--c1: #ff9ec0;--c2: #b18bff}:root[data-theme=ocean],.themes__item[data-theme=ocean]{--c1: #6fc9ff;--c2: #7b83ff}:root[data-theme=forest],.themes__item[data-theme=forest]{--c1: #74d8ac;--c2: #4bb4c8}:root[data-theme=sunset],.themes__item[data-theme=sunset]{--c1: #ffb473;--c2: #ff7f92}:root[data-theme=lilac],.themes__item[data-theme=lilac]{--c1: #c9a0ff;--c2: #8a92ff}:root[data-theme=mono],.themes__item[data-theme=mono]{--c1: #a8adbe;--c2: #858ba1}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;overscroll-behavior:none}body{background:var(--bg);background-image:var(--bg-tint);background-attachment:fixed;color:var(--text);font-family:Quicksand,-apple-system,BlinkMacSystemFont,Pretendard,Apple SD Gothic Neo,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit;color:inherit}button{transition:transform .12s ease,background .15s ease,border-color .15s ease,opacity .15s ease}button:active:not(:disabled){transform:scale(.96)}@media(prefers-reduced-motion:reduce){button:active:not(:disabled){transform:none}}.login{display:grid;place-items:center;min-height:100%;padding:24px}.login__card{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;padding:30px 24px 26px;background:var(--surface);border:1px solid var(--border);border-radius:28px;box-shadow:var(--shadow)}.login__heart{align-self:center;color:var(--accent)}.login__title{margin:0;text-align:center;font-size:30px;font-weight:700;letter-spacing:-.01em;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}.login__subtitle{margin:0 0 6px;text-align:center;color:var(--text-muted);font-size:14px}.login__people{display:flex;gap:8px}.login__person{flex:1;padding:12px;border-radius:16px;border:1px solid var(--border);background:transparent;cursor:pointer}.login__person.is-selected{border-color:var(--accent);background:var(--accent-soft)}.login__input,.composer__input{width:100%;padding:11px 14px;border-radius:18px;border:1px solid var(--border);background:var(--surface-raised);outline:none}.login__input:focus,.composer__input:focus{border-color:var(--accent)}.login__submit{padding:14px;border:none;border-radius:18px;background:var(--accent-grad);color:#fff;font-weight:700;cursor:pointer;box-shadow:var(--shadow-soft)}.login__submit:disabled{opacity:.5;cursor:default}.login__error,.sheet__error{margin:0;color:var(--danger);font-size:14px}.chat{display:flex;flex-direction:column;height:100%;max-width:720px;margin:0 auto;background:var(--bg);background-image:var(--bg-tint)}.chat__header,.chat__toast,.note,.composer{flex:0 0 auto}.chat__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:max(10px,env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chat__peer{margin:0;font-size:18px;font-weight:700;letter-spacing:-.01em}.chat__status{margin:0;font-size:12.5px;color:var(--text-muted)}.chat__settings{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface-raised);font-size:14px;font-weight:600;cursor:pointer}.chat__settings:active{background:var(--accent-soft)}.chat__toast{align-self:center;margin:0 16px 8px;padding:7px 14px;border-radius:999px;background:var(--danger);color:#fff;font-size:13px;line-height:1.35;text-align:center;cursor:pointer;animation:toast-in .18s ease-out}.chat__toast--muted{background:var(--surface-raised);color:var(--text-muted);border:1px solid var(--border);cursor:default}.chat__toast--ok{background:var(--accent);color:#fff;cursor:default}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.chat__messages{list-style:none;margin:0;padding:16px;display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.bubble{display:flex;flex-direction:column;max-width:82%}.bubble--mine{align-self:flex-end;align-items:flex-end}.bubble--theirs{align-self:flex-start}.bubble__body{padding:11px 15px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-soft);cursor:pointer;border-bottom-left-radius:8px}.bubble--mine .bubble__body{background:var(--accent-grad);border-color:transparent;color:#fff;border-bottom-left-radius:var(--radius);border-bottom-right-radius:8px}.bubble{animation:bubble-in .2s ease-out}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.bubble{animation:none}}.bubble__text{margin:0;white-space:pre-wrap;word-break:break-word}.bubble__text--pending{color:var(--text-muted);font-style:italic}.bubble--mine .bubble__text--pending{color:#ffffffb8}.bubble__text--muted{opacity:.75}.bubble__source{margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(128,128,150,.28);font-size:14px;opacity:.8;white-space:pre-wrap;word-break:break-word}.bubble__lang{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;opacity:.65}.bubble__notes{margin:10px 0 0;padding:8px 0 0 18px;border-top:1px solid rgba(128,128,150,.28);font-size:13px;opacity:.85}.bubble__meta{display:flex;gap:8px;align-items:center;margin-top:4px;padding:0 4px;font-size:11px;color:var(--text-muted)}.bubble__failure{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:6px 0 0;padding:8px 12px;border-radius:12px;background:color-mix(in srgb,var(--danger) 14%,transparent);color:var(--danger);font-size:13px;line-height:1.45}.bubble__retry{padding:0;border:none;background:none;color:inherit;font-weight:600;text-decoration:underline;cursor:pointer;white-space:nowrap}.composer{display:flex;align-items:flex-end;gap:5px;padding:10px 12px max(10px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.composer__input{flex:1 1 auto;min-width:0;resize:none;max-height:140px}.composer__send{flex:0 0 auto;width:44px;height:44px;padding:0;border:none;border-radius:50%;background:var(--accent-grad);color:#fff;font-size:17px;line-height:1;cursor:pointer;box-shadow:var(--shadow-soft)}.composer__send:disabled{opacity:.45;cursor:default}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;background:#00000073}.sheet:has(.viewer){align-items:center;background:#000000d1}.sheet__panel{width:100%;max-width:520px;max-height:88vh;overflow-y:auto;overscroll-behavior:contain;padding:10px 20px max(20px,env(safe-area-inset-bottom));border-radius:28px 28px 0 0;background:var(--surface);box-shadow:var(--shadow);animation:sheet-in .22s cubic-bezier(.22,1,.36,1)}.sheet__panel:before{content:"";display:block;width:42px;height:4px;margin:6px auto 12px;border-radius:999px;background:var(--border)}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}}@media(prefers-reduced-motion:reduce){.sheet__panel{animation:none}}.sheet__header{display:flex;align-items:center;justify-content:space-between}.sheet__header h2{margin:0;font-size:19px;font-weight:700}.sheet__close{width:34px;height:34px;border:none;border-radius:50%;background:var(--surface-raised);font-size:16px;cursor:pointer}.sheet__section{margin-top:20px}.sheet__section h3{margin:0 0 4px;font-size:15px}.sheet__hint{margin:0 0 10px;font-size:13px;color:var(--text-muted)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:9px 16px;border-radius:999px;border:1px solid var(--border);background:var(--surface-raised);font-weight:600;cursor:pointer}.chip.is-on{border-color:transparent;background:var(--accent-grad);color:#fff}.sheet__order{margin:12px 0 0;padding-left:20px;font-size:14px;color:var(--text-muted)}.sheet__order button{border:none;background:none;cursor:pointer;padding:2px 0}.sheet__toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.sheet__actions{display:flex;justify-content:space-between;gap:12px;margin-top:24px}.sheet__logout{padding:12px 18px;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer}.sheet__save{flex:1;padding:13px;border:none;border-radius:999px;background:var(--accent-grad);color:#fff;font-weight:700;cursor:pointer;box-shadow:var(--shadow-soft)}.sheet__pick{width:100%;margin-top:10px;padding:12px;border:1px dashed var(--border);border-radius:18px;background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer}.sheet__pick:active{border-color:var(--accent);color:var(--accent)}.chat__actions{display:flex;gap:8px}.note{padding:10px 16px;background:color-mix(in srgb,var(--surface) 88%,transparent);border-top:1px solid var(--border)}.note__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;font-size:13px;font-weight:700;color:var(--accent)}.note__input{width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--surface-raised);outline:none}.note__input:focus{border-color:var(--accent)}.note__hint{margin:6px 2px 0;font-size:12px;color:var(--text-muted)}.composer__icon{flex:0 0 auto;width:38px;height:38px;border-radius:50%;border:1px solid var(--border);background:var(--surface-raised);font-size:17px;line-height:1;cursor:pointer}.composer__icon.is-on{border-color:var(--accent);background:var(--accent-soft)}.composer__icon:disabled{opacity:.4}.bubble__note{margin:6px 0 0;padding:6px 10px;border-radius:10px;border:1px dashed var(--border);font-size:12px;color:var(--text-muted)}.glossary{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.glossary__empty{padding:16px 0;color:var(--text-muted);font-size:14px}.glossary__edit{width:100%;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:transparent;text-align:left;cursor:pointer}.glossary__to{font-size:13px;color:var(--text-muted)}.glossary__avoid{font-size:12px;color:var(--danger)}.glossary__field{display:grid;grid-template-columns:84px 1fr;align-items:center;gap:10px;margin-top:8px;font-size:14px}.bubble__body{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.actions{display:flex;flex-direction:column;gap:6px;padding-top:12px}.actions__item{display:flex;flex-direction:column;gap:2px;width:100%;padding:14px 16px;border:none;border-radius:12px;background:var(--surface-raised);text-align:left;cursor:pointer}.actions__item span{font-size:12px;color:var(--text-muted)}.actions__cancel{align-items:center;background:transparent;color:var(--text-muted)}.explain__langs{margin-top:12px}.explain__sentence{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--surface-raised);font-size:17px;line-height:1.5}.explain__loading{margin:16px 0;color:var(--text-muted);font-style:italic}.explain__summary{margin:14px 0 0;font-size:15px;font-weight:600;line-height:1.5}.explain__chunks{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.explain__chunks>li{padding-left:12px;border-left:3px solid var(--accent)}.explain__chunkText{margin:0;font-size:15px;font-weight:600}.explain__reading{margin-left:8px;font-size:13px;font-weight:400;color:var(--text-muted)}.explain__meaning{margin:2px 0 0;font-size:14px}.explain__note{margin:4px 0 0;font-size:13px;color:var(--text-muted)}.explain__points,.explain__replies{margin:8px 0 0;padding-left:18px;font-size:14px;line-height:1.6}.explain__replies>li{margin-bottom:6px}.login__as{margin:0;padding:12px 14px;border-radius:12px;background:var(--accent-soft);color:var(--text);font-size:15px;font-weight:600;text-align:center}.bubble__sentAs{margin:8px 0 0;padding-top:8px;border-top:1px solid rgba(255,255,255,.28);font-size:14px;opacity:.92;white-space:pre-wrap;word-break:break-word}.bubble__sentAsLabel{display:block;padding:0;border:0;background:none;color:inherit;font:inherit;font-size:11px;letter-spacing:.04em;opacity:.65;cursor:pointer;text-align:left}.bubble__sentAsText{margin:2px 0 0;white-space:pre-wrap;word-break:break-word}.bubble__speak{margin-left:6px;padding:0 6px;min-width:22px;border:0;border-radius:999px;background:#7f7f7f2e;color:inherit;font-size:10px;line-height:18px;opacity:.7;cursor:pointer;vertical-align:middle}.bubble__speak.is-on{opacity:1;background:#7f7f7f61}.bubble__meta .bubble__speak{margin:0 6px 0 0}.bubble__noVoice{margin:4px 0 0;font-size:11px;opacity:.7}.home{display:flex;flex-direction:column;gap:14px;height:100%;overscroll-behavior:contain;max-width:720px;margin:0 auto;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow-y:auto}.home__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.home__peer{margin:0;font-size:28px;font-weight:700;letter-spacing:-.01em}.home__peer{display:flex;align-items:center;gap:6px}.home__heart{color:var(--accent)}.home__status{margin:0;font-size:13px;color:var(--text-muted)}.home__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.tile{position:relative;display:flex;flex-direction:column;gap:6px;padding:16px 14px;border:1px solid var(--border);border-radius:24px;background:var(--surface);box-shadow:var(--shadow-soft);color:inherit;text-align:left;cursor:pointer;overflow:hidden}.home__grid .tile:nth-child(1){background:linear-gradient(160deg,color-mix(in srgb,#ffd6e7 30%,var(--surface)) 0%,var(--surface) 70%)}.home__grid .tile:nth-child(2){background:linear-gradient(160deg,color-mix(in srgb,#d9e7ff 32%,var(--surface)) 0%,var(--surface) 70%)}.home__grid .tile:nth-child(3){background:linear-gradient(160deg,color-mix(in srgb,#d8f5e3 32%,var(--surface)) 0%,var(--surface) 70%)}.tile--chat{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 16%,var(--surface)) 0%,var(--surface) 65%)}.tile--chat{flex-direction:row;align-items:center;gap:14px;padding:18px 16px}.tile__icon{filter:drop-shadow(0 2px 4px rgba(0,0,0,.12))}.tile__icon{font-size:26px;line-height:1}.tile__body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.tile__title{font-weight:600;word-break:keep-all}.home__grid .tile__title{font-size:15px}.home__grid .tile__count{margin-top:auto}.tile__line{color:var(--text-muted);font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tile__count{color:var(--text-muted);font-size:13px}.tile__badge{min-width:26px;padding:3px 9px;border-radius:999px;background:var(--accent-grad);color:#fff;font-size:13px;font-weight:700;text-align:center;box-shadow:var(--shadow-soft);animation:badge-pop .26s cubic-bezier(.34,1.56,.64,1)}@keyframes badge-pop{0%{transform:scale(.4);opacity:0}}.page{display:flex;flex-direction:column;gap:12px;height:100%;overscroll-behavior:contain;max-width:720px;margin:0 auto;padding:max(12px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow-y:auto}.page__header{display:flex;align-items:center;gap:6px}.page__header h1{margin:0;font-size:21px;font-weight:700}.page__empty{margin:40px 10px;color:var(--text-muted);text-align:center;line-height:1.7}.page__emptyIcon{display:block;margin:0 auto 8px;color:var(--accent);opacity:.8}.chat__back{flex:0 0 auto;width:36px;height:36px;border:none;border-radius:10px;background:transparent;color:inherit;font-size:26px;line-height:1;cursor:pointer}.chat__back:active{background:var(--surface-raised)}.chat__who{flex:1;min-width:0}.cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.card{padding:15px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft)}.card__main{margin:0;font-size:17px}.card__reading{margin-left:8px;color:var(--text-muted);font-size:13px}.card__sub{margin:4px 0 0;color:var(--text-muted)}.card__note{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.card__foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.card__tag{font-size:12px;color:var(--text-muted)}.card__delete{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer}.card__delete:active{border-color:var(--danger);color:var(--danger)}.album{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.album{gap:6px}.album__cell{padding:0;border:none;background:var(--surface-raised);border-radius:16px;overflow:hidden;aspect-ratio:1;cursor:pointer;box-shadow:var(--shadow-soft)}.album__cell img{width:100%;height:100%;object-fit:cover;display:block}.viewer{width:100%;max-width:720px;margin:auto;padding:16px}.viewer__foot .sheet__logout{display:inline-flex;align-items:center;gap:6px}.viewer img{display:block;width:100%;max-height:76vh;object-fit:contain;border-radius:12px}.viewer__foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-top:14px;color:#fff}.viewer__who{flex:1;min-width:0;font-size:14px;opacity:.85;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer__foot .sheet__save{flex:0 0 auto;padding:11px 18px}.viewer__foot .sheet__logout{color:#fff;border-color:#ffffff8c}.bubble__photo{display:block;padding:0;border:none;background:none;margin-bottom:6px;cursor:pointer}.bubble__photo img{display:block;width:100%;max-width:260px;height:auto;border-radius:12px;background:var(--surface-raised)}.bubble__audio{display:block;width:220px;max-width:100%;margin-bottom:4px}.bubble__audioTime{display:block;font-size:12px;opacity:.7}.attachBar{display:flex;align-items:center;gap:10px;margin:0 16px 8px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);font-size:14px}.attachBar__thumb{width:44px;height:44px;object-fit:cover;border-radius:8px}.attachBar__voice{flex:1}.attachBar__remove{margin-left:auto;padding:4px 10px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:12px;cursor:pointer}.composer__file{display:none}.composer__status,.composer__error{margin:0 16px 8px;font-size:13px;color:var(--text-muted)}.composer__error{color:var(--danger);cursor:pointer}.recording{display:flex;align-items:center;gap:10px;padding:12px 16px max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--surface)}.recording__dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:pulse 1s ease-in-out infinite}@keyframes pulse{50%{opacity:.25}}.recording__time{flex:1;font-variant-numeric:tabular-nums}.recording__cancel,.recording__stop{padding:8px 14px;border-radius:12px;border:1px solid var(--border);background:transparent;cursor:pointer}.recording__stop{border-color:transparent;background:var(--accent);color:#fff;font-weight:600}.explain__chunkHead{display:flex;align-items:flex-start;gap:8px}.explain__chunkHead .explain__chunkText{flex:1}.explain__add{flex:0 0 auto;width:30px;height:30px;border:1px solid var(--border);border-radius:10px;background:transparent;color:inherit;font-size:17px;line-height:1;cursor:pointer}.explain__add.is-on{border-color:var(--accent);background:var(--accent-soft)}.explain__add:disabled{cursor:default}.wall--default{background:var(--bg)}.wall--night{background:linear-gradient(170deg,#0f1020,#1b1b35 55%,#241d3a)}.wall--dawn{background:linear-gradient(170deg,#2b1d3a,#55355a,#8a5a63)}.wall--forest{background:linear-gradient(170deg,#12251c,#1b3a2a 55%,#27503a)}.wall--sand{background:linear-gradient(170deg,#2c2419,#4a3b26 55%,#6b563a)}.wall--rose{background:linear-gradient(170deg,#2a1622,#4c2138 55%,#6e3350)}.wall--mono{background:#14141a}.wall--photo{background-size:cover;background-position:center}.chat.wall--photo .chat__messages{background:#0a0a106b}.walls{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.walls__item--photo{background-size:cover;background-position:center}.walls__item{height:62px;padding:0 0 6px;border:2px solid transparent;border-radius:12px;color:#fff;font-size:12px;text-shadow:0 1px 3px rgba(0,0,0,.6);cursor:pointer;display:flex;align-items:flex-end;justify-content:center}.walls__item.is-on{border-color:var(--accent)}.tray{display:flex;gap:8px;padding:10px 12px;background:color-mix(in srgb,var(--surface) 88%,transparent);border-top:1px solid var(--border);animation:tray-in .16s ease-out}.tray__item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;border:1px solid var(--border);border-radius:16px;background:var(--surface-raised);color:var(--text);font-size:12px;font-weight:600;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.tray__icon{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--accent-soft);color:var(--accent)}.tray__item.is-on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}@keyframes tray-in{0%{opacity:0;transform:translateY(8px)}}@media(prefers-reduced-motion:reduce){.tray{animation:none}}.reactions{display:flex;justify-content:space-between;gap:4px;margin:4px 0 14px}.reactions__item{flex:1;padding:8px 0;border:1px solid transparent;border-radius:16px;background:var(--surface-raised);font-size:22px;line-height:1.2;cursor:pointer}.reactions__item.is-on{border-color:var(--accent);background:var(--accent-soft)}.bubble__reactions{display:flex;gap:4px;margin:-6px 4px 0}.reaction{padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface);font-size:13px;line-height:1.6;box-shadow:var(--shadow-soft);animation:badge-pop .24s cubic-bezier(.34,1.56,.64,1)}.reaction--mine{border-color:var(--accent)}.bubble__body{touch-action:pan-y;transition:transform .16s ease-out}.bubble__body[data-armed]{box-shadow:0 0 0 2px var(--accent)}.bubble__reply{display:flex;gap:8px;align-items:stretch;max-width:100%;margin:0 0 4px;padding:6px 10px;border-radius:14px;background:var(--surface-raised);font-size:13px;color:var(--text-muted)}.bubble__replyBar{flex:0 0 3px;border-radius:999px;background:var(--accent)}.bubble__replyText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.replyBar{display:flex;align-items:center;gap:10px;margin:0 12px 8px;padding:8px 10px;border:1px solid var(--border);border-radius:16px;background:var(--surface);font-size:13px}.replyBar__bar{flex:0 0 3px;align-self:stretch;border-radius:999px;background:var(--accent)}.replyBar__body{flex:1;min-width:0;display:flex;flex-direction:column}.replyBar__text{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shelves{display:flex;gap:8px}.shelf{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:18px;background:var(--surface);font-weight:600;cursor:pointer}.shelf.is-on{border-color:transparent;background:var(--accent-grad);color:#fff}.shelf__count{padding:0 8px;border-radius:999px;background:color-mix(in srgb,currentColor 16%,transparent);font-size:13px}.card--learned .card__main b{opacity:.75}.card__example{margin-top:10px;padding:10px 12px;border-radius:14px;background:var(--surface-raised)}.card__example .card__main{font-size:15px}.card__tools{display:flex;gap:8px}.card__learn{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:12px;font-weight:600;cursor:pointer}.card__learn.is-on{border-color:transparent;background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}.themes{display:flex;flex-wrap:wrap;gap:10px}.themes__item{width:46px;height:46px;padding:0;display:grid;place-items:center;border:2px solid transparent;border-radius:50%;background:transparent;cursor:pointer}.themes__item.is-on{border-color:var(--accent)}.themes__dot{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--c1) 0%,var(--c2) 100%);box-shadow:var(--shadow-soft)}.composer__icon,.composer__send,.chat__back,.sheet__close,.bubble__speak,.sheet__pick,.card__learn,.attachBar__voice,.tile__icon,.tray__item{display:inline-flex;align-items:center;justify-content:center;gap:6px}.tray__item{flex-direction:column}.bubble__speak{width:24px;height:22px;padding:0}.tile__icon{color:var(--accent)}.home__grid .tile:nth-child(2) .tile__icon{color:var(--accent-2)}.bubble__note{display:flex;align-items:center;gap:4px}.saveList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.saveList__item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:18px;background:var(--surface-raised);color:inherit;text-align:left;cursor:pointer}.saveList__item.is-on{border-color:var(--accent);background:var(--accent-soft)}.saveList__lang{flex:0 0 auto;font-size:11px;letter-spacing:.04em;color:var(--text-muted)}.saveList__text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.saveList__mark{flex:0 0 auto;display:inline-flex;color:var(--accent)}.passcode{display:flex;flex-direction:column;gap:8px}.sheet__done{margin:8px 0 0;color:var(--ok);font-size:14px}.bubble__read{display:inline-flex;align-items:center;opacity:.55}.bubble__read.is-on{color:var(--accent);opacity:1}.alert{position:fixed;top:max(10px,env(safe-area-inset-top));left:12px;right:12px;z-index:50;display:flex;flex-direction:column;gap:2px;max-width:696px;margin:0 auto;padding:12px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow);color:inherit;text-align:left;cursor:pointer;animation:alert-in .22s cubic-bezier(.22,1,.36,1)}.alert__name{font-size:13px;font-weight:700;color:var(--accent)}.alert__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes alert-in{0%{opacity:0;transform:translateY(-14px)}}@media(prefers-reduced-motion:reduce){.alert{animation:none}}.notice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft)}.notice__icon{flex:0 0 auto;display:inline-flex;color:var(--accent)}.notice__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:14px}.notice__body span{color:var(--text-muted);line-height:1.5}.notice__actions{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}.notice__yes{padding:8px 14px;border:none;border-radius:999px;background:var(--accent-grad);color:#fff;font-weight:700;font-size:13px;cursor:pointer}.notice__no{padding:6px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-muted);font-size:13px;cursor:pointer}.login__input.is-wrong{border-color:var(--danger)}.examples{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:10px}.examples li+li{padding-top:10px;border-top:1px solid var(--border)}.example__save{margin-left:6px;padding:0 6px;min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:#7f7f7f2e;color:inherit;opacity:.7;cursor:pointer;vertical-align:middle}.example__save.is-on{opacity:1;background:var(--accent-soft);color:var(--accent)}.pick__sentence{margin:12px 0 0;padding:12px 10px;border-radius:16px;background:var(--surface-raised);font-size:18px;line-height:2}.pick__word{margin:0 -2px;padding:2px 4px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:color-mix(in srgb,var(--accent) 55%,transparent);text-underline-offset:4px}.pick__word.is-on{background:var(--accent-soft);color:var(--accent);text-decoration:none}.pick__word.is-added{text-decoration-style:solid;text-decoration-color:var(--accent)}.wordcard{margin-top:14px;padding:14px 16px;border:1px solid var(--border);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft)}.wordcard__pos{margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:600;vertical-align:middle}.wordcard__base{margin:4px 0 0;font-size:13px;color:var(--text-muted)}.wordcard__in{margin:8px 0 0;padding-left:10px;border-left:3px solid var(--accent);font-size:14px;line-height:1.5}.wordcard__add{margin-top:14px;width:100%;padding:11px 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:999px;background:var(--accent-grad);color:#fff;font-size:15px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-soft)}.wordcard__add.is-on,.wordcard__add:disabled{background:var(--accent-soft);color:var(--accent);box-shadow:none;cursor:default}.replyBar--editing{border-color:var(--accent);background:var(--accent-soft)}.bubble__edited{font-size:11px;font-style:italic;opacity:.75}.chat__older{align-self:center;padding:4px 0 8px;color:var(--text-muted);font-size:12px;text-align:center}.chat__olderButton{padding:6px 14px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--text-muted);font-size:12px;cursor:pointer}.chat__day{display:flex;align-items:center;gap:10px;align-self:stretch;margin:10px 0 2px;color:var(--text-muted);font-size:12px;font-weight:600}.chat__day:before,.chat__day:after{content:"";flex:1;height:1px;background:color-mix(in srgb,var(--border) 70%,transparent)}.chat__day time{flex:0 0 auto;padding:4px 12px;border-radius:999px;background:color-mix(in srgb,var(--surface) 80%,transparent);white-space:nowrap}.chat__older+.chat__day{margin-top:0}.call{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:max(64px,env(safe-area-inset-top)) 24px max(48px,env(safe-area-inset-bottom));background:linear-gradient(160deg,var(--accent-soft) 0%,var(--surface) 70%);animation:call-in .2s ease-out}.call__who{margin-top:12vh;text-align:center}.call__spacer{flex:1;min-height:0}.call__face{width:96px;height:96px;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-raised);box-shadow:var(--shadow-soft);color:var(--accent);font-size:40px;font-weight:700;line-height:1}.call__name{margin:0;font-size:30px;font-weight:700;color:var(--text)}.call__line{margin:10px 0 0;font-size:16px;color:var(--text-muted);font-variant-numeric:tabular-nums}.call__hint{margin:14px auto 0;max-width:280px;font-size:13px;line-height:1.5;color:var(--text-muted)}.call__keys{display:flex;flex-wrap:wrap;justify-content:center;gap:28px;row-gap:12px;align-items:center;max-width:100%;padding:0 4px}.call__key{display:inline-flex;align-items:center;justify-content:center;width:64px;height:64px;border:1px solid var(--border);border-radius:50%;background:var(--surface-raised);color:var(--text);box-shadow:var(--shadow-soft);cursor:pointer}.call__key--accept,.call__key--hangup{border-color:transparent}.call__key--accept{background:#34c759;color:#fff}.call__key--hangup{background:#ff3b30;color:#fff}.call__key--mute.is-on{background:var(--accent);color:#fff}@keyframes call-in{0%{opacity:0;transform:scale(1.03)}}.call__key--accept{position:relative}.call__key--accept:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid #34c759;animation:call-pulse 1.6s ease-out infinite;pointer-events:none}@keyframes call-pulse{0%{opacity:.7;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}@media(prefers-reduced-motion:reduce){.call,.call__key--accept:after{animation:none}}.call__remote{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;background:#101418;opacity:0;pointer-events:none}.call--video.is-showing .call__remote{opacity:1}.call--video .call__who,.call--video .call__keys,.call--video .call__captions{position:relative;z-index:2}.call--video .call__who{z-index:4;pointer-events:none}.call--video .call__keys{z-index:6}.call--video.is-showing .call__who,.call--video.is-showing .call__line,.call--video.is-showing .call__name{color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.55)}.call--video.is-showing .call__line{color:#ffffffd9}.call__me{position:absolute;border-radius:16px;overflow:hidden;background:#101418;box-shadow:var(--shadow-soft);z-index:3;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.call__me.is-dragging{cursor:grabbing;box-shadow:0 8px 28px #00000059}.call__meVideo{width:100%;height:100%;object-fit:cover;display:block}.call__meVideo.is-mirrored,.call__remote.is-mine{transform:scaleX(-1)}.call--video .call__keys{gap:10px;row-gap:10px}.call--video .call__key{width:50px;height:50px;flex:0 0 auto}.call--video.is-showing .call__key{background:#14181c8c;border-color:#ffffff38;color:#fff}.call--video.is-showing .call__key--hangup{background:#ff3b30}.call--video.is-showing .call__key.is-on{background:var(--accent);border-color:transparent}.call--video.is-showing .call__captions .caption{background:#14181c99}.call--video.is-showing .caption__said{color:#fff}.call--video.is-showing .caption--mine .caption__said{color:#ffffffbf}.fresh{position:fixed;top:max(10px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:80;display:flex;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:10px 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface-raised);box-shadow:var(--shadow-soft);cursor:pointer;animation:fresh-in .22s ease-out}.fresh__text{font-size:13px;color:var(--text);white-space:nowrap}.fresh__go{font-size:13px;font-weight:700;color:var(--accent);white-space:nowrap}@keyframes fresh-in{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.fresh{animation:none}}.callChat__list{position:relative;z-index:5;width:100%;max-width:520px;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}.callChat__line{margin:0;align-self:flex-start;max-width:88%;padding:8px 13px;border-radius:16px;background:#14181c9e;color:#fff;font-size:15px;line-height:1.45}.callChat__line.is-mine{align-self:flex-end;background:var(--accent)}.callChat__waiting{opacity:.6;font-size:12px}.callChat__form{position:relative;z-index:5;display:flex;align-items:center;gap:8px;width:100%;max-width:520px;margin-bottom:12px}.callChat__input{flex:1;min-width:0;padding:11px 16px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#14181cb8;color:#fff;font-size:16px;outline:none}.callChat__input::placeholder{color:#ffffff80}.callChat__input:focus{border-color:var(--accent)}.callChat__send,.callChat__close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:50%;background:var(--accent);color:#fff;cursor:pointer}.callChat__close{background:#14181c99}.doodle{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:4;pointer-events:none;touch-action:none}.doodle.is-drawing{pointer-events:auto;cursor:crosshair}.call__erase{position:relative;z-index:5;align-self:center;margin-top:auto;margin-bottom:14px;padding:8px 18px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#14181c99;color:#fff;font-size:13px;font-weight:600;cursor:pointer}.call__captions{width:100%;max-width:520px;margin:0 0 10px;display:flex;flex-direction:column;justify-content:flex-end;gap:12px;overflow:hidden}.caption{margin:0;padding:10px 14px;border-radius:16px;background:color-mix(in srgb,var(--surface) 82%,transparent);animation:caption-in .18s ease-out}.caption--mine{align-self:flex-end;max-width:82%;background:transparent;padding:2px 4px;text-align:right}.caption--saying .caption__said{opacity:.6}.caption__said{display:block;font-size:16px;line-height:1.45;color:var(--text)}.caption--mine .caption__said{font-size:14px;color:var(--text-muted)}.caption__meaning{display:block;margin-top:4px;font-size:17px;font-weight:600;line-height:1.45;color:var(--accent)}.caption__meaning--failed{font-size:13px;font-weight:500;font-style:italic;color:var(--text-muted)}.caption--mine .caption__meaning{font-size:15px;font-weight:500}@keyframes caption-in{0%{opacity:0;transform:translateY(6px)}}.call__key--caption.is-on,.call__key--voice.is-on{background:var(--accent);color:#fff;border-color:transparent}@media(prefers-reduced-motion:reduce){.caption{animation:none}}.calls{list-style:none;margin:0;padding:0 16px 24px;display:flex;flex-direction:column;gap:10px}.calls__item{border:1px solid var(--border);border-radius:18px;background:var(--surface-raised);overflow:hidden}.calls__head{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 16px;border:none;background:none;text-align:left;cursor:pointer}.calls__when{font-size:15px;font-weight:600;color:var(--text)}.calls__meta{font-size:13px;color:var(--text-muted);font-variant-numeric:tabular-nums}.calls__lines{list-style:none;margin:0;padding:4px 16px 12px;display:flex;flex-direction:column;gap:14px;border-top:1px solid var(--border)}.calls__line.is-mine{padding-left:20px}.calls__who{font-size:12px;font-weight:600;color:var(--text-muted)}.calls__said{margin:2px 0 0;font-size:15px;line-height:1.5;color:var(--text)}.calls__meaning{margin:3px 0 0;font-size:14px;line-height:1.5;color:var(--accent)}.calls__loading{margin:0;padding:12px 16px;font-size:13px;color:var(--text-muted);border-top:1px solid var(--border)}.calls__delete{width:100%;padding:12px;border:none;border-top:1px solid var(--border);background:none;color:var(--danger, #ff3b30);font-size:13px;cursor:pointer}.screen__hint{margin:8px 0 0;font-size:13px;color:var(--text-muted)}.library{height:85vh;display:flex;flex-direction:column}.library__tabs{flex:0 0 auto;margin-bottom:4px}.library__count{margin-left:6px;opacity:.65;font-size:12px}.library>.cards,.library>.album,.library>.chips:not(.library__tabs),.library>.shelves,.library>.page__empty{flex:0 0 auto}.chat__icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--surface) 70%,transparent);color:var(--accent);cursor:pointer}.bubble.is-found>.bubble__body,.bubble.is-found>.bubble__photo,.bubble.is-found{animation:found 2.6s ease-out}@keyframes found{0%,60%{filter:drop-shadow(0 0 0 var(--accent))}10%,45%{filter:drop-shadow(0 0 10px var(--accent))}to{filter:none}}@media(prefers-reduced-motion:reduce){.bubble.is-found{animation:none;outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--radius)}}.chat__toTail{position:absolute;left:50%;bottom:86px;transform:translate(-50%);padding:9px 18px;border:none;border-radius:999px;background:var(--accent-grad);color:#fff;font-size:13px;font-weight:700;box-shadow:var(--shadow);cursor:pointer;z-index:3}.chat{position:relative}.search{height:85vh;display:flex;flex-direction:column}.hits{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.hit{width:100%;padding:11px 14px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:16px;background:var(--surface);color:inherit;text-align:left;cursor:pointer}.hit__who{display:flex;align-items:baseline;gap:8px;font-size:12px;font-weight:700;color:var(--accent)}.hit__when{font-weight:400;color:var(--text-muted)}.hit__text{font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.hit__text mark{padding:0 2px;border-radius:4px;background:var(--accent-soft);color:var(--accent);font-weight:700}.search__more{align-self:center;margin-top:12px}
