:root{color-scheme:light;--paper:#f7f5f2;--ink:#20201e;--line:#d5d1cb;--muted:#69655f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Jost','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #7b2d26;outline-offset:4px}header,footer{display:flex;justify-content:space-between;align-items:center;margin:0 5vw;padding:28px 0;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:15px;letter-spacing:.12em;font-weight:500}.brand span{color:var(--muted);font-size:11px;margin-left:16px}.back{font-size:12px}main{max-width:1120px;margin:70px auto 80px;padding:0 40px;display:grid;grid-template-columns:1fr 440px;gap:65px}.eyebrow{font-size:11px;letter-spacing:.2em;margin:0 0 30px;color:var(--muted)}h1{font-size:clamp(45px,5.5vw,76px);font-weight:400;line-height:1.08;letter-spacing:-.04em;margin:0 0 32px}h1 span{font-size:.78em}.story{font-size:14px;line-height:2.1;margin:0 0 25px}.caption{font-size:12px;line-height:2;color:var(--muted)}.signature{font-size:24px;letter-spacing:.05em;margin-top:36px}.signature span{color:var(--muted);padding:0 7px}.signature .dot{color:#7b2d26;padding:0}.instrument{min-width:0}.calculator{border:1px solid var(--line);padding:20px;border-radius:4px;background:#eeebe5}.display{background:var(--paper);padding:16px 18px 12px;margin-bottom:18px;min-width:0}.display-top{display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:.14em}.display-top button{background:none;border:0;font-size:11px;letter-spacing:0;padding:6px;color:var(--muted)}#count{margin-left:5px}#expression{text-align:right;min-height:23px;font-size:15px;color:var(--muted);margin:22px 0 0;overflow-wrap:anywhere}output{display:block;font-size:65px;text-align:right;line-height:1.25;font-variant-numeric:tabular-nums;letter-spacing:-.035em;overflow-wrap:anywhere}output.long{font-size:33px}#easter{height:18px;margin:5px 0 0;text-align:right;font-size:11px;color:#7b2d26;letter-spacing:.05em}.keys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.keys button{height:65px;border:1px solid transparent;border-radius:4px;font-size:26px;background:var(--paper);transition:background .12s,transform .12s}.keys .utility{font-size:19px;color:#5d5953;background:#e3dfd8}.keys .operator{background:#d9d5cd}.keys .equals{background:var(--ink);color:var(--paper)}.keys button:hover{border-color:#a8a197}.keys button:active,.keys button.pressed{transform:translateY(2px);background:#ccc5b9}.keys .equals:hover{background:#43413c}details{font-size:11px;line-height:1.9;color:var(--muted);margin-top:24px}summary{cursor:pointer;padding:8px 0}details p{margin:12px 0}#history{margin-top:24px;border-top:1px solid var(--line)}.history-head{display:flex;justify-content:space-between;align-items:center}h2{font-weight:400;font-size:14px}.history-head button{border:0;background:none;text-decoration:underline;font-size:11px;padding:10px 0}ol{padding:0;margin:0;list-style:none}li button{display:flex;justify-content:space-between;gap:20px;width:100%;border:0;border-bottom:1px solid var(--line);padding:13px 0;background:none;text-align:left;font-size:15px;overflow-wrap:anywhere}li button:hover{background:#eeebe5}.note,#empty{font-size:11px;line-height:1.8;color:var(--muted)}footer{border-top:1px solid var(--line);border-bottom:0;font-size:10px;letter-spacing:.09em;padding:25px 0}@media(max-width:760px){header{padding:22px 0}.brand{font-size:12px}.brand span{margin-left:5px;font-size:9px}main{grid-template-columns:1fr;max-width:500px;margin:36px auto 48px;padding:0 22px;gap:28px}.eyebrow{margin-bottom:16px}h1{font-size:38px;margin-bottom:20px}h1 br{display:none}h1 br:after{content:' '}h1 span{display:block;font-size:38px}h1{max-width:360px}.story{font-size:12px;line-height:1.8}.story br:first-child{display:none}.caption,.signature{display:none}.calculator{padding:15px}.keys button{height:58px}output{font-size:60px}footer{align-items:flex-start;flex-direction:column;gap:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
@media(max-width:400px){output.long{font-size:25px}}
