:root{color:#f8f7f2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#171714;font-family:Inter,ui-rounded,SF Pro Rounded,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{overscroll-behavior:none;background:#171714;min-width:320px;min-height:100%}body{background:radial-gradient(circle at 50% 12%,#34332d 0,#0000 42%),#171714;min-width:320px;min-height:100svh;margin:0;display:grid;overflow:hidden}button{font:inherit}#root{width:100%}.calculator-app{--surface:#f2efdf;--surface-strong:#e5e0ca;--ink:#24231e;--muted:#24231e94;--line:#24231e24;--key-hover:#24231e12;width:min(100%,480px);height:min(100dvh,900px);min-height:min(100svh,900px);padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));color:var(--ink);background:var(--surface);grid-template-rows:auto minmax(112px,1fr) auto minmax(270px,43dvh) auto;gap:clamp(6px,1.2dvh,12px);margin:auto;transition:background-color .18s,color .18s;display:grid;overflow:hidden}.calculator-app[data-theme=A]{--surface:#f2efdf;--surface-strong:#e5e0ca;--ink:#24231e;--muted:#24231e94;--line:#24231e24;--key-hover:#24231e12}.calculator-app[data-theme=B]{--surface:#7f8f89;--surface-strong:#73847e;--ink:#fffdf7;--muted:#fffdf7a8;--line:#fff3;--key-hover:#ffffff17}.calculator-app[data-theme=C]{--surface:#403a32;--surface-strong:#373129;--ink:#fffdf8;--muted:#fffdf8a3;--line:#ffffff29;--key-hover:#ffffff14}.app-header{justify-content:space-between;align-items:center;min-height:34px;display:flex}.app-title{letter-spacing:.01em;margin:0;font-size:clamp(.92rem,3.7vw,1.05rem);font-weight:650}.calculator-mark{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:8px;font-size:.72rem;font-weight:600;display:inline-flex}.calculator-mark:before{content:"";background:currentColor;border-radius:50%;width:8px;height:8px}.display{border-bottom:1px solid var(--line);flex-direction:column;justify-content:flex-end;min-width:0;padding:clamp(8px,2dvh,20px) 4px;display:flex}.display-expression,.display-result{text-align:right;font-variant-numeric:tabular-nums lining-nums;max-width:100%;margin:0}.display-expression{overscroll-behavior-x:contain;width:100%;min-width:0;height:1.08em;color:var(--ink);scrollbar-width:none;touch-action:pan-x;white-space:nowrap;-webkit-overflow-scrolling:touch;font-size:clamp(1.55rem,7.3vw,2.55rem);line-height:1.08;overflow:auto hidden}.display-expression::-webkit-scrollbar{display:none}.display-expression-content{text-align:right;min-width:100%;display:inline-block}.display-expression.is-placeholder{color:var(--muted)}.display-result{overflow-wrap:anywhere;min-height:1.18em;margin-top:clamp(7px,1.2dvh,12px);font-size:clamp(1.75rem,8vw,2.9rem);font-weight:500;line-height:1.05}.display-error{color:var(--ink);text-align:right;margin:6px 0 0;font-size:.78rem}.reference-buttons,.calculator-switcher{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.reference-button,.switcher-button,.key{appearance:none;font:inherit;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:0;border-radius:12px}[data-tab-theme=A]{--tab-bg:#f2efdf;--tab-fg:#24231e}[data-tab-theme=B]{--tab-bg:#7f8f89;--tab-fg:#fffdf7}[data-tab-theme=C]{--tab-bg:#403a32;--tab-fg:#fffdf8}.reference-button{height:52px;min-height:52px;color:var(--tab-fg);background:var(--tab-bg);text-align:center;place-items:center;padding:2px 10px;transition:transform .1s,filter .1s;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #7f7f7f29}.reference-button:disabled{cursor:default;filter:saturate(.65);opacity:.48}.reference-value{font-variant-numeric:tabular-nums;letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:clamp(2rem,7vw,3rem);font-weight:500;line-height:.95;display:block;overflow:hidden}.reference-value.is-medium{font-size:clamp(1.55rem,5.8vw,2.35rem)}.reference-value.is-long{font-size:clamp(1.15rem,4.4vw,1.7rem)}.reference-value.is-extra-long{font-size:clamp(.8rem,3.2vw,1.25rem)}.keypad{grid-template-rows:repeat(5,minmax(48px,1fr));grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(3px,.8dvh,8px) clamp(5px,1.5vw,9px);min-height:0;display:grid}.key{min-width:0;min-height:48px;color:var(--ink);background:0 0;font-size:clamp(1.42rem,7vw,2.05rem);font-weight:430;transition:background-color 90ms,transform 90ms}.key.operator,.key.action{background:color-mix(in srgb, var(--surface-strong) 58%, transparent)}.key.equals{background:var(--ink);color:var(--surface)}.reference-button:not(:disabled):active,.switcher-button:active,.key:active{transform:scale(.95)}@media (hover:hover){.reference-button:not(:disabled):hover,.switcher-button:hover{filter:brightness(1.06)}.key:hover{background:var(--key-hover)}.key.equals:hover{background:color-mix(in srgb, var(--ink) 88%, var(--surface))}}.reference-button:focus-visible,.switcher-button:focus-visible,.key:focus-visible{outline:3px solid color-mix(in srgb, var(--ink) 72%, transparent);outline-offset:2px}.calculator-switcher{min-height:46px}.switcher-button{min-height:46px;color:var(--tab-fg);background:var(--tab-bg);letter-spacing:.03em;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;font-weight:700;transition:transform .1s,filter .1s;display:flex}.switcher-letter{border:1px solid;border-radius:50%;place-items:center;width:24px;height:24px;display:grid}@media (width>=540px){body{padding:20px}.calculator-app{border:1px solid #ffffff1a;border-radius:28px;height:min(100dvh - 40px,900px);min-height:0;box-shadow:0 24px 80px #00000047}}@media (height<=700px){.calculator-app{padding-top:max(6px, env(safe-area-inset-top));padding-bottom:max(6px, env(safe-area-inset-bottom));grid-template-rows:auto minmax(86px,1fr) auto minmax(240px,42dvh) auto;gap:4px}.reference-button{min-height:44px}.calculator-switcher,.switcher-button{min-height:42px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
