:root{--paper:#f4efe6;--ink:#1c1915;--seal:#c2412d;--line:#1c191524;--card:#fffcf7f0;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);color:var(--ink);background:var(--paper);font-family:PingFang SC,Hiragino Sans GB,Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif;font-size:16px;line-height:1.45}*{box-sizing:border-box}[hidden]{display:none!important}html,body{background:var(--paper);overscroll-behavior:none;touch-action:manipulation;height:100%;margin:0;position:fixed;inset:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--seal);outline-offset:2px}#app{flex-direction:column;height:100dvh;display:flex}#stage{background:radial-gradient(120% 70% at 50% 0%, #ffffff8c, transparent 55%), var(--paper);flex:1;min-height:0;position:relative}#paper{touch-action:none;width:100%;height:100%;display:block}body[data-demo=true][data-mode=draw] #stage{cursor:none}#preview{top:calc(12px + var(--safe-t));object-fit:cover;z-index:2;background:#2a2622;border-radius:14px;width:84px;height:112px;position:absolute;right:12px;transform:scaleX(-1);box-shadow:0 8px 24px #1c19152e}#preview.is-off{opacity:0;pointer-events:none}#cursor{z-index:40;pointer-events:none;width:64px;height:64px;margin:-32px 0 0 -32px;position:fixed}#cursor svg{filter:drop-shadow(0 1px 1px #1c191573);width:100%;height:100%}#cursor .track{fill:#f4efe659;stroke:#f7f1e6;stroke-width:2px}#cursor .arc{fill:none;stroke:var(--seal);stroke-width:3.5px;stroke-linecap:round;stroke-dasharray:150.8;stroke-dashoffset:150.8px;transform-origin:32px 32px;transform:rotate(-90deg)}#cursor .pupil{fill:#0000;stroke:var(--ink);stroke-width:2px}#cursor.pen-down .pupil{fill:var(--pen,var(--ink));stroke:none}#status-wrap{z-index:3;top:calc(10px + var(--safe-t));pointer-events:none;flex-direction:column;gap:4px;max-width:calc(100% - 120px);display:flex;position:absolute;left:12px}#status,#distance,#demo-banner,#hint,#toast,.tip,.fine,.error{margin:0}#status{background:var(--card);border:1px solid var(--line);border-radius:999px;align-self:flex-start;padding:6px 12px;font-size:14px}#distance{padding-left:4px;font-size:13px}#hint{z-index:3;left:12px;right:12px;top:calc(52px + var(--safe-t));background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;display:flex;position:absolute}#hint p{flex:1;font-size:14px}#hint button,.cal-bar button,.sheet-bar button,#actions button,.row button,.switch{border:1px solid var(--line);background:#fffdf8;border-radius:14px;min-height:48px;padding:8px 12px}#hint button{flex:none;min-height:40px}#demo-banner{z-index:3;color:#f4efe6;background:#1c1915c7;border-radius:999px;max-width:calc(100% - 24px);padding:6px 10px;font-size:12px;position:absolute;bottom:12px;left:12px}#debug{z-index:4;white-space:pre-wrap;background:#fffcf7eb;border-radius:10px;max-width:min(280px,70%);margin:0;padding:8px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.35;position:absolute;bottom:8px;left:8px}#dock{padding:10px 10px calc(10px + var(--safe-b));border-top:1px solid var(--line);background:#fbf7f0f5;flex-direction:column;gap:8px;display:flex}.swatches,.row,.actions{gap:8px;display:flex}.swatches>*,.row>*,.actions>*{flex:1;min-width:0}.actions{grid-template-columns:1.35fr 1fr 1fr;display:grid}.tool,.switch{min-height:52px;position:relative;overflow:hidden}.tool .label,.switch .label{z-index:1;position:relative}.dwell{background:var(--seal);pointer-events:none;width:0%;height:4px;position:absolute;bottom:0;left:0}.swatch{border:2px solid #0000;border-radius:999px;min-height:48px;font-size:15px}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--paper), 0 0 0 4px var(--ink)}.choice[aria-pressed=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pen.is-down{background:var(--seal);color:#fff;border-color:#0000}.tool.is-armed{border-color:var(--seal);color:var(--seal);background:#f8e4de}#gate,#calibrate{z-index:30;background:var(--paper);position:fixed;inset:0}#gate{padding:calc(24px + var(--safe-t)) 22px calc(24px + var(--safe-b));justify-content:center;align-items:flex-start;display:flex;overflow:auto}.gate-card{width:min(100%,420px);margin:auto}.lang-grid{grid-template-columns:1fr 1fr;gap:8px;margin:14px 0 4px;display:grid}.lang-grid button{border:1px solid var(--line);background:#fff;border-radius:14px;min-height:56px;font-size:18px}.lang-grid button.is-on{border-color:var(--seal);color:var(--seal);background:#f8e4de}.eyebrow{letter-spacing:.18em;margin:0 0 8px;font-size:13px}h1,h2{font-family:Iowan Old Style,Palatino,Songti SC,Noto Serif SC,serif;font-weight:500}h1{letter-spacing:.06em;margin:0;font-size:64px;line-height:1}h2{margin:0;font-size:28px}.lead{margin:12px 0;font-size:18px}.tip{color:#1c1915c7}.warn{color:var(--seal)}.error{color:var(--seal);min-height:1.4em}.gate-actions{flex-direction:column;align-items:flex-start;gap:4px;margin-top:22px;display:flex}.primary{background:var(--ink);width:min(100%,360px);min-height:56px;color:var(--paper);border:none;border-radius:16px;font-size:18px}.ghost{text-underline-offset:4px;background:0 0;border:none;min-height:48px;padding:8px 0;text-decoration:underline}button:disabled{opacity:.55}.cal-bar{padding:calc(10px + var(--safe-t)) 12px 0;justify-content:space-between;align-items:center;gap:8px;display:flex}.cal-bar p{font-variant-numeric:tabular-nums;margin:0}.cal-bar button{min-width:88px}#cal-help{text-align:center;pointer-events:none;margin:10px 20px 0}#cal-dot{--p:0;background:conic-gradient(var(--seal) calc(var(--p) * 1%), #1c19151f 0);z-index:2;border:none;border-radius:50%;place-items:center;width:96px;height:96px;margin:0;padding:0;display:grid;position:absolute;transform:translate(-50%,-50%)}#cal-dot .core{background:var(--seal);width:28px;height:28px;box-shadow:0 0 0 8px var(--paper);border-radius:50%}.sheet{z-index:35;background:#1c191547;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet-card{width:min(560px,100%);max-height:min(92dvh,780px);padding:8px 16px calc(18px + var(--safe-b));background:#fbf7f0;border-radius:22px 22px 0 0;flex-direction:column;gap:10px;display:flex;overflow:auto}.sheet-bar{justify-content:space-between;align-items:center;gap:12px;display:flex}.switch{text-align:left;width:100%}.field{flex-direction:column;gap:6px;font-size:15px;display:flex}.field input[type=range]{width:100%;height:36px}.field select{border:1px solid var(--line);background:#fffdf8;border-radius:12px;min-height:48px;padding:0 10px}.fine{color:#1c1915ad;font-size:14px}#save-image{object-fit:contain;background:var(--paper);border:1px solid var(--line);border-radius:12px;width:100%;max-height:48dvh}#toast{z-index:50;left:50%;bottom:calc(18px + var(--safe-b));background:var(--ink);max-width:min(440px,100% - 24px);color:var(--paper);text-align:center;pointer-events:none;border-radius:999px;padding:10px 14px;position:fixed;transform:translate(-50%)}body[data-mode=comm] #status-wrap,body[data-mode=comm] #hint,body[data-mode=comm] #paper{display:none}body[data-mode=comm] #preview{z-index:8}body[data-mode=draw] #care-open,body[data-mode=draw] #lang-open{display:none}#comm{z-index:5;padding:calc(8px + var(--safe-t)) 10px calc(8px + var(--safe-b));background:radial-gradient(120% 70% at 50% 0%, #ffffff8c, transparent 55%), var(--paper);flex-direction:column;gap:8px;display:flex;position:absolute;inset:0}#comm-top{min-height:0;padding:4px 96px 0 72px}#said{letter-spacing:.02em;min-height:2.4em;margin:0;font-size:clamp(28px,7vw,48px);font-weight:650;line-height:1.15}#said.is-placeholder{color:#1c1915b8;font-size:clamp(16px,3.6vw,22px);font-weight:500}#said-note,#comm-empty,#compose,#comm-demo{margin:4px 0 0}#said-note,#comm-demo{color:#1c19159e;font-size:13px}#comm-empty{font-size:18px}#compose{align-items:baseline;gap:12px;font-size:20px;display:flex}#compose .py{letter-spacing:.04em;color:var(--seal);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}#tiles{flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:12px;min-height:0;display:grid}#tiles[data-count="1"]{grid-template-rows:1fr;grid-template-columns:1fr}#tiles[data-count="2"]{grid-template-rows:1fr}#tiles[data-count="3"]{grid-template-rows:1fr 1fr}#tiles .tile,#quick .quick,#nav .nav-btn{--p:0;text-align:center;background:#fffdf8;border:2px solid #1c191529;border-radius:22px;place-items:center;font-weight:650;line-height:1.2;display:grid;position:relative}#nav .nav-btn:only-child{grid-column:1/-1}#tiles .tile{min-height:72px;padding:10px;font-size:clamp(26px,6vw,40px)}#tiles .tile.is-long{font-size:clamp(20px,4.4vw,30px)}#tiles .tile.is-alert{border-color:var(--seal);color:var(--seal);background:#f8e4de}#nav{grid-template-columns:1fr 1fr;gap:8px;display:grid}#nav[hidden]{display:none}#nav .nav-btn{border-radius:16px;min-height:52px;font-size:20px}#quick{grid-template-columns:1fr 1fr 1.15fr;gap:10px;display:grid}#quick .quick{min-height:76px;font-size:clamp(28px,7vw,40px)}#quick .call{background:var(--seal);color:#fff;border-color:#0000}.ring{border-radius:inherit;background:conic-gradient(var(--seal) calc(var(--p) * 100%), transparent 0);-webkit-mask-composite:xor;pointer-events:none;padding:6px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}#quick .call .ring{background:conic-gradient(#fff calc(var(--p) * 100%), transparent 0)}#tiles .label,#quick .quick,#nav .nav-btn{z-index:1;position:relative}#finger-bar{z-index:46;top:calc(8px + var(--safe-t));pointer-events:none;gap:8px;display:flex;position:fixed;left:10px;right:10px}#finger-bar button{pointer-events:auto;border:1px solid var(--line);background:#fffdf8f0;border-radius:999px;min-width:64px;min-height:44px;font-size:15px}#gaze-fix{margin-left:auto}#resume-cal{z-index:47;left:12px;right:12px;bottom:calc(12px + var(--safe-b));border:1px solid var(--line);background:#fffdf8f7;border-radius:16px;grid-template-columns:1fr 1fr;gap:8px;padding:14px;display:grid;position:fixed}#resume-cal p{grid-column:1/-1;margin:0}#resume-cal button{min-height:52px}#quick-fix{z-index:55;background:var(--paper);position:fixed;inset:0}#quick-dot{background:var(--seal);border:none;border-radius:50%;width:84px;height:84px;margin:-42px 0 0 -42px;position:absolute;top:50%;left:50%}#simple{z-index:28;padding:calc(56px + var(--safe-t)) 12px calc(12px + var(--safe-b));background:var(--paper);flex-direction:column;gap:8px;display:flex;position:fixed;inset:0}#simple.is-flash{box-shadow:inset 0 0 0 14px var(--seal)}#simple.is-locked .simple-dots{opacity:.35}.simple-menu{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.simple-grid{flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:8px;display:grid}.simple-grid button,.simple-item,.simple-emergency{border:1px solid var(--line);background:#fff;border-radius:18px;font-size:clamp(22px,5vw,36px)}.simple-grid button.is-on,.simple-emergency.is-on,.simple-item{outline:4px solid var(--seal)}.simple-emergency{background:var(--seal);color:#fff;min-height:72px}.simple-item{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.simple-item h2{margin:0;font-size:clamp(42px,11vw,88px)}.simple-icon{font-size:42px}.simple-dots{letter-spacing:.3em;font-size:18px}.simple-banner{text-align:center;min-height:28px;font-size:18px}.simple-banner.is-on{color:var(--seal)}.simple-banner p{margin:0}.simple-actions{justify-content:center;gap:8px;margin-top:6px;display:flex}.simple-actions button{border:1px solid var(--line);background:#fff;border-radius:999px;min-width:72px;min-height:44px}.wide{border:1px solid var(--ink);background:#fff;border-radius:16px;width:min(100%,360px);min-height:56px;font-size:18px}#need-banner{z-index:48;top:calc(58px + var(--safe-t));background:var(--ink);color:var(--paper);border-radius:16px;align-items:center;gap:10px;padding:10px 12px;display:flex;position:fixed;left:10px;right:10px}#need-banner p{flex:1;margin:0;font-size:16px;line-height:1.35}#need-banner button{min-height:44px;color:var(--ink);background:#fff;border:none;border-radius:999px;padding:0 14px}#tutorial{z-index:60;background:var(--paper);padding:calc(12px + var(--safe-t)) 12px calc(12px + var(--safe-b));position:fixed;inset:0;overflow:auto}.tutorial-card{flex-direction:column;gap:12px;display:flex}.tutor-stage{place-items:center;min-height:220px;display:grid}.tutor-stage-inner{justify-content:center;align-items:center;gap:12px;width:min(100%,520px);min-height:200px;display:flex;position:relative}.tutor-stage-inner.is-snap{grid-template-columns:1fr 1fr;display:grid}.tutor-dot{background:var(--seal);border:none;border-radius:50%;width:112px;height:112px}.tutor-sentence,.tutor-hint{border:1px solid var(--line);background:#fff;border-radius:18px;place-items:center;min-width:140px;min-height:96px;padding:16px;font-size:28px;display:grid}.tutor-hint{background:0 0;border:none;margin:0}.tutor-cursor{background:var(--ink);pointer-events:none;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;position:absolute}.tutor-actions{gap:12px;display:flex}.tutor-actions button{border:1px solid var(--line);background:#fff;border-radius:14px;min-width:96px;min-height:48px}.simple-finger{justify-content:space-between;display:flex}.simple-finger button{border-radius:14px;min-width:84px;min-height:56px;font-size:28px}.simple-readout{text-align:center;font-size:40px}.simple-log{margin:0;padding-left:18px}#quick-help,#quick-cancel{position:absolute;left:50%;transform:translate(-50%)}#quick-help{top:calc(24px + var(--safe-t));margin:0;font-size:20px}#quick-cancel{bottom:calc(24px + var(--safe-b));min-width:140px;min-height:48px}#alarm{z-index:70;background:var(--seal);color:#fff;text-align:center;place-items:center;padding:24px;animation:.7s steps(2,end) infinite alarm-flash;display:grid;position:fixed;inset:0}#alarm h2{color:#fff;margin:8px 0 24px;font-size:clamp(40px,10vw,72px)}.alarm-kicker{letter-spacing:.16em;margin:0;font-size:16px}#alarm-dismiss{min-width:min(100%,320px);min-height:64px;color:var(--ink);background:#fff;border:none;border-radius:16px;font-size:20px}@keyframes alarm-flash{50%{background:#1c1915}}#care{z-index:56}#care .sheet-card{gap:12px}#care h3{margin:8px 0 0;font-family:inherit;font-size:18px}.care-block,.care-import,.care-cat,.care-phrase,.care-add{border:1px solid var(--line);background:#fffdf8;border-radius:14px}.care-block,.care-import{text-align:left;width:100%;min-height:48px;padding:10px 12px}.care-cat{flex-direction:column;gap:8px;padding:10px;display:flex}.care-cat-head,.care-phrase,.care-add{align-items:center;gap:6px;display:flex}.care-phrase,.care-add{padding:6px}.care-cat input,.care-add input{border:1px solid var(--line);background:#fff;border-radius:10px;flex:1;min-width:0;min-height:40px;padding:0 8px}.care-mini{border:1px solid var(--line);background:#fff;border-radius:10px;flex:none;min-height:40px;padding:0 8px}.care-import{cursor:pointer;align-items:center;display:flex}.care-import input{opacity:0;width:1px;height:1px;position:absolute}@media (width>=720px){.sheet{align-items:center}.sheet-card{border-radius:22px;margin:24px}}@media (orientation:landscape) and (height<=520px){#app{flex-direction:row}#dock{border-top:none;border-left:1px solid var(--line);width:min(440px,48vw);overflow:auto}h1{font-size:48px}#said{min-height:0;font-size:28px}#quick .quick{min-height:56px}#tiles .tile{font-size:24px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}#alarm{animation:none}}
