:root{--ink: #001f46;--muted: #5c6b7a;--line: #e3e8f0;--paper: #ffffff;--canvas: #f5f7fb;--glass: rgba(255, 255, 255, .72);--glass-edge: inset 0 1px 0 rgba(255, 255, 255, .95), 0 8px 24px rgba(0, 31, 70, .08);--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);color-scheme:light;font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Segoe UI,sans-serif;color:var(--ink);background:var(--canvas)}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100%}body{min-height:100dvh;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;background:var(--paper)}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.page{position:relative;z-index:1;width:min(100%,430px);min-height:100dvh;margin:0 auto;padding:calc(8px + var(--safe-top)) calc(16px + var(--safe-right)) calc(16px + var(--safe-bottom)) calc(16px + var(--safe-left));background:radial-gradient(140px 90px at 12% 78px,rgba(0,31,70,.22),transparent 70%),radial-gradient(180px 110px at 88% 36px,rgba(90,140,196,.28),transparent 72%),radial-gradient(220px 140px at 48% 160px,rgba(0,31,70,.1),transparent 74%),linear-gradient(180deg,#d5e2f2 0px,#f7f9fc 240px,var(--paper) 240px);display:flex;flex-direction:column;gap:10px}.top{display:grid;grid-template-columns:40px minmax(0,1fr) auto 40px;align-items:center;gap:6px}.icon-button,.search-go{padding:0}.icon-button svg,.search-go svg,.primary svg,.vocab h3 svg{display:block}.top .icon-button{width:40px;height:40px;color:#fff;background:var(--ink);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px #ffffff61,0 8px 18px #001f4629;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6)}.search{position:relative;min-width:0}.search input{width:100%;height:40px;padding:0 40px 0 12px;border:1px solid rgba(0,31,70,.12);border-radius:999px;background:#ffffffb8;color:var(--ink);font-size:14px}.search-go{position:absolute;top:4px;right:4px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:50%;background:var(--ink);color:#fff}.search-go svg{display:block;width:16px;height:16px}.search-go:disabled{opacity:.55}.search input:focus{outline:2px solid var(--ink);outline-offset:1px}.picker{max-width:7.6em;height:40px;padding:0 22px 0 10px;border:1px solid rgba(255,255,255,.42);border-radius:999px;color:#fff;font-size:13px;font-weight:650;appearance:none;background-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='white' stroke-width='1.6' stroke-linecap='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center;background-size:10px 7px;box-shadow:inset 0 1px #ffffff61,0 8px 18px #001f4629;backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6)}.picker option{color:var(--ink);background:#fff}.brand{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0}.brand h1,.sheet-head h2,.speech h2,.vocab h3{margin:0}.brand h1{font-size:clamp(16px,4.8vw,20px);letter-spacing:.06em;line-height:1.2}.brand p,.date,.english-title,.tip,.sign,.footer,.status{margin:0}.brand p,.sheet-head p{margin:2px 0 0;color:var(--muted);font-size:12px}.date{color:var(--muted);font-size:12px;line-height:1.3;text-align:right;white-space:nowrap}.icon-button,.tab,.primary,.minor button,.choice-row button,.text-button,.sentence{border:0;background:transparent}.icon-button{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;color:var(--ink);background:#ffffff6b;border:1px solid rgba(0,31,70,.12);box-shadow:inset 0 1px #fff,0 8px 18px #001f4614;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}.icon-button svg,.primary svg,.vocab h3 svg{width:20px;height:20px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:999px;background:#ffffff47;border:1px solid rgba(255,255,255,.72);box-shadow:inset 0 1px #fffffff2,inset 0 -1px #001f4614,0 10px 28px #001f4624;backdrop-filter:blur(22px) saturate(1.8);-webkit-backdrop-filter:blur(22px) saturate(1.8)}.tab{min-height:42px;border-radius:999px;color:var(--ink)}.tab[aria-selected=true]{background:var(--ink);color:#fff;box-shadow:inset 0 1px #ffffff47}.card{border:1px solid rgba(0,31,70,.1);border-radius:20px;background:#fff;box-shadow:inset 0 1px #fff,0 8px 22px #001f460f;padding:14px 14px 12px}.speech h2{font-size:clamp(20px,5.4vw,24px);line-height:1.3}.english-title{margin-top:4px;color:var(--muted);font-size:13px;line-height:1.4}.block{margin-top:12px}.tag{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border-radius:999px;background:#e8eef6;color:var(--ink);font-size:12px;font-weight:650}.label-row{display:flex;align-items:center;justify-content:space-between}.speaker[aria-pressed=true]{background:var(--ink);color:#fff}.block p,.sentence{margin:6px 0 0;font-size:16px;line-height:1.65}.sentence{display:block;width:100%;padding:8px 10px;text-align:left;border-radius:12px}.sentence.is-speaking{background:#e7eef8;color:var(--ink);box-shadow:inset 0 0 0 1px #001f4614}.news-source{margin:10px 0 0;padding:8px 10px;border-radius:12px;background:#001f460d;color:var(--muted);font-size:12px;line-height:1.45}.news-source a{color:var(--ink);text-decoration:underline;text-underline-offset:2px;word-break:break-word}.news-source small{color:#8a5a2b}.word-head{display:flex;align-items:center;gap:2px;min-width:0}.word-speak{width:32px;height:32px;flex:0 0 auto;box-shadow:none;border:1px solid var(--ink);background:#fff;color:var(--ink)}.word-speak svg{width:16px;height:16px}.word-speak.is-speaking{background:var(--ink);color:#fff}.word-save{width:32px;height:32px;flex:0 0 auto;box-shadow:none;border:1px solid var(--ink);background:#fff;color:var(--ink)}.word-save svg{width:16px;height:16px}.word-save[aria-pressed=true]{color:var(--ink)}.vocab-list{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:12px}.vocab-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.vocab h3{display:flex;align-items:center;gap:8px;font-size:16px}.vocab ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}.vocab li{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-top:12px;border-top:1px solid var(--line);font-size:14px}.word-title{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.vocab strong{font-size:17px;line-height:1.35;white-space:nowrap}.word-actions{display:flex;align-items:center;gap:2px;flex:0 0 auto}.ipa{color:var(--muted);line-height:1.45}.meaning{line-height:1.45}.vocab small{color:var(--muted);line-height:1.5}.actions{display:grid;gap:10px}.primary{min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:var(--ink);color:#fff;font-size:17px}.primary:disabled{opacity:.55}.minor{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px}.minor button,.text-button{min-height:44px;color:var(--ink);text-decoration:underline;text-underline-offset:3px}.minor button:disabled{opacity:.4}.status,.note,.error,.loading{font-size:14px;line-height:1.5}.status,.note{color:var(--muted);text-align:center}.error{color:#8d2b2b}.footer{color:var(--muted);text-align:center;font-size:13px}.sheet{width:min(430px,calc(100vw - 24px));max-height:min(88dvh,720px);margin:auto;padding:0;border:1px solid rgba(255,255,255,.88);border-radius:24px;background:#ffffff7a;color:var(--ink);box-shadow:inset 0 1px #fffffff5,inset 0 -1px #001f460d,0 22px 50px #001f462e;backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8)}.sheet::backdrop{background:#08244e47;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.sheet-panel{max-height:min(88dvh,720px);overflow:auto;padding:14px 14px calc(16px + var(--safe-bottom));display:flex;flex-direction:column;gap:8px}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:2px}.sheet-head h2{font-size:22px;line-height:1.2}.sheet-head .icon-button{width:40px;height:40px;flex:0 0 auto}.choice{margin:0;padding:10px;border:1px solid rgba(0,31,70,.08);border-radius:16px;background:#ffffffd1;min-width:0}.choice legend{float:left;width:100%;padding:0;margin:0 0 8px;font-size:13px;font-weight:650;line-height:1.3;color:var(--ink)}.choice-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:6px;margin:0;clear:both;padding:4px;border-radius:999px;background:#001f460d}.choice-row button{min-width:0;min-height:38px;padding:6px 4px;border-radius:999px;border:0;background:transparent;font-size:12px;line-height:1.2;white-space:nowrap}.choice-row button[aria-pressed=true]{background:var(--ink);color:#fff;box-shadow:inset 0 1px #ffffff38}.tip,.sign{margin:0;text-align:center}.tip{margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.sign{font-family:Songti SC,"Noto Serif SC",serif;font-size:14px;line-height:1.4;color:var(--ink)}.ai-panel{margin:0;padding:0 10px;border:1px solid rgba(0,31,70,.08);border-radius:16px;background:#ffffffd1}.ai-panel summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;cursor:pointer;font-size:13px;font-weight:650;list-style:none}.ai-panel summary::-webkit-details-marker{display:none}.ai-panel summary:after{content:"";width:7px;height:7px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);transform:rotate(-45deg);opacity:.55;flex:0 0 auto}.ai-panel[open] summary:after{transform:rotate(45deg);margin-top:-2px}.ai-panel[open]{padding-bottom:10px}.ai-panel p{margin:6px 0 0;font-size:13px;line-height:1.45}.ai-panel .text-button{margin-top:4px}.guidance{color:var(--muted)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.tabs,.icon-button,.sheet,.ai-panel{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}@media(min-width:768px){.page{min-height:min(100dvh,900px)}}@media(prefers-reduced-transparency:reduce){.card,.tabs,.icon-button,.sheet,.choice,.choice-row button{background:#fff;backdrop-filter:none;-webkit-backdrop-filter:none}}@media(max-width:340px){.picker{max-width:5.6em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{body{background:#fff}.top .icon-button,.tabs,.actions,.sheet,.speaker,.footer{display:none}.page{width:auto;box-shadow:none}}
