:root{--bg:#f7f4ed;--ink:#243c32;--surface:#fff;--soft-green:#dce8da;--clay:#a6533e;--soft-clay:#f3ded3;--petal:#f9a8d4;--butter:#f4d77a;--ink-2:#52645a;--outline:#718477;--radius-card:28px;--pad:20px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:ui-rounded,Hiragino Maru Gothic ProN,-apple-system,BlinkMacSystemFont,Hiragino Sans,Yu Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:0}input,select,textarea{font:inherit;color:inherit;-webkit-user-select:text;user-select:text}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.screen{min-height:100dvh;padding:calc(var(--safe-top) + 8px) var(--pad) calc(var(--safe-bottom) + 16px);flex-direction:column;display:flex}.header{flex:none;justify-content:space-between;align-items:center;gap:12px;height:56px;display:flex}.grow{flex:1}.center{flex-direction:column;justify-content:center;align-items:center;display:flex}.icon-btn{background:var(--surface);border-radius:28px;place-items:center;width:56px;height:56px;display:grid;box-shadow:0 1px #243c3214}.icon-btn.small{width:48px;height:48px}.icon-btn svg{width:28px;height:28px}.big-btn{background:var(--ink);color:#fff;border-radius:40px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:80px;font-size:24px;font-weight:700;transition:transform .1s;display:flex}.big-btn:active,.tile:active,.grade:active,.icon-btn:active{transform:scale(.98)}.big-btn.secondary{background:var(--surface);color:var(--ink);min-height:64px;font-size:20px}.big-btn svg{width:32px;height:32px}.prompt{text-align:center;margin:8px 0;font-size:26px;font-weight:600;line-height:1.35}.answer-word{text-align:center;font-size:40px;font-weight:700;line-height:1.2}.card{background:var(--surface);border-radius:var(--radius-card);padding:var(--pad);flex-direction:column;align-items:center;gap:12px;width:100%;max-width:420px;display:flex;position:relative;overflow:hidden}.card .art{place-items:center;width:240px;max-width:70vw;height:240px;max-height:70vw;display:grid;position:relative}.card .art img{object-fit:contain;width:100%;height:100%}.glyph{font-size:128px;font-weight:700;line-height:1}.glyph.word{font-size:80px}.swatch{border-radius:40px;width:200px;height:200px;box-shadow:inset 0 0 0 2px #243c321f}.grownup{border-top:1px solid var(--outline);-webkit-user-select:none;user-select:none;flex-direction:column;gap:8px;margin-top:12px;padding:10px 0 0;display:flex}.grownup .label{color:var(--ink-2);justify-content:space-between;align-items:center;font-size:13px;display:flex}.grownup .row{gap:12px;display:flex}.grade{border-radius:22px;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:72px;font-size:20px;font-weight:700;display:flex}.grade small{color:var(--ink-2);font-size:13px;font-weight:500}.grade.again{background:var(--soft-clay)}.grade.good{background:var(--soft-green)}.grade.plain{background:var(--surface)}.grade:disabled{opacity:.4}.hint-text{color:var(--ink-2);font-size:15px;line-height:1.45}.linkish{color:var(--ink-2);padding:8px;font-size:15px;text-decoration:underline}.people{flex-wrap:wrap;justify-content:center;gap:24px;display:flex}.person{flex-direction:column;align-items:center;gap:8px;display:flex}.person .ava{border-radius:64px;place-items:center;width:128px;height:128px;display:grid;overflow:hidden}.person .ava svg{width:100px;height:100px}.person .nm{font-size:24px;font-weight:600;line-height:1.3}@media (width<=340px){.people{gap:16px}.person .ava{width:112px;height:112px}}.tiles{justify-content:center;gap:16px;width:100%;display:flex}.tile{background:var(--surface);border-radius:24px;place-items:center;width:167px;height:200px;display:grid}.tile img{object-fit:contain;width:144px;height:144px}@media (width<=340px){.tile{width:132px;height:176px}.tile img{width:112px;height:112px}}.skin{pointer-events:none;position:absolute;inset:0}.skin .l,.skin .r{width:51%;position:absolute;top:0;bottom:0}.skin .l{left:0}.skin .r{right:0}.skin.peekaboo .l,.skin.peekaboo .r{background:var(--soft-green);border-radius:50%/60% 60% 40% 40%}.skin.peekaboo .l{animation:.4s ease-out forwards slideL}.skin.peekaboo .r{animation:.4s ease-out forwards slideR}.skin.curtain .l,.skin.curtain .r{background:var(--soft-clay)}.skin.curtain .l{animation:.5s ease-in-out forwards slideL}.skin.curtain .r{animation:.5s ease-in-out forwards slideR}.skin.box .lid{background:var(--butter);border-radius:18px;animation:.6s ease-out forwards lid;position:absolute;inset:0}.zoom-in{animation:.45s ease-out both zoom}@keyframes slideL{to{transform:translate(-105%)}}@keyframes slideR{to{transform:translate(105%)}}@keyframes lid{40%{opacity:1;transform:translateY(-24px)}to{opacity:0;transform:translateY(-24px)}}@keyframes zoom{0%{opacity:0;transform:scale(.86)}to{opacity:1;transform:scale(1)}}.fade-in{animation:.18s ease-out both fade}@keyframes fade{0%{opacity:0}to{opacity:1}}.settle{animation:.3s ease-out both settle}@keyframes settle{0%{transform:translateY(-14px)scale(1.08)}to{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.garden{aspect-ratio:3/4;background:linear-gradient(#eaf2e6 0 55%,#cfe0c9 55% 100%);border-radius:32px;width:100%;max-width:420px;position:relative;overflow:hidden}.garden .spot{aspect-ratio:1;place-items:center;width:22%;display:grid;position:absolute;transform:translate(-50%,-50%)}.garden .spot.empty.active{border:3px dashed var(--outline);border-radius:50%}.garden .spot svg{width:100%;height:100%}.stickers{justify-content:center;gap:16px;display:flex}.sticker-choice{background:var(--surface);border-radius:28px;place-items:center;width:96px;height:96px;display:grid}.sticker-choice svg{width:72px;height:72px}.sticker-choice.sel{box-shadow:0 0 0 4px var(--petal)}.parent{background:var(--bg)}.parent h1{margin:4px 0 12px;font-size:22px}.parent h2{color:var(--ink);margin:22px 0 8px;font-size:17px}.parent .sub{color:var(--ink-2);margin-left:6px;font-size:13px;font-weight:400}.panel{background:var(--surface);border-radius:18px;flex-direction:column;gap:10px;padding:14px 16px;font-size:17px;line-height:1.5;display:flex}.panel .line{justify-content:space-between;align-items:center;gap:12px;min-height:44px;display:flex}.panel .line+.line{border-top:1px solid #eeeae1}.panel input[type=text],.panel input[type=month],.panel select,.panel input[type=number]{background:#fff;border:1px solid #d9d4c8;border-radius:10px;min-width:0;padding:8px 10px}.pill{background:var(--soft-green);border-radius:999px;padding:8px 14px;font-size:15px;font-weight:600}.pill.warn{background:var(--soft-clay)}.pill.ghost{background:0 0;border:1px solid #d9d4c8}.muted{color:var(--ink-2);font-size:15px}.stat{font-size:28px;font-weight:700}.stats{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stats .panel{gap:2px}.pin-dots{justify-content:center;gap:14px;margin:18px 0;display:flex}.pin-dots span{border:2px solid var(--ink);border-radius:8px;width:16px;height:16px}.pin-dots span.on{background:var(--ink)}.keypad{grid-template-columns:repeat(3,64px);justify-content:center;gap:16px;display:grid}.keypad button{background:var(--surface);border-radius:32px;width:64px;height:64px;font-size:26px;font-weight:600}.hold-ring{place-items:center;width:48px;height:48px;display:grid;position:relative}.hold-ring svg.ring{position:absolute;inset:0;transform:rotate(-90deg)}.toast{left:50%;bottom:calc(var(--safe-bottom) + 24px);background:var(--ink);color:#fff;z-index:50;border-radius:14px;padding:10px 16px;font-size:15px;position:fixed;transform:translate(-50%)}.sheet-backdrop{z-index:40;background:#243c3259;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--bg);width:100%;padding:24px var(--pad) calc(var(--safe-bottom) + 24px);border-radius:28px 28px 0 0;flex-direction:column;gap:16px;display:flex}.ava-art>svg{width:100%;height:100%;display:block}.grade{white-space:nowrap;padding:0 6px}.row .grade:nth-child(3):last-child{font-size:17px}.row:has(>.grade:nth-child(3)) .grade{font-size:17px}
