:root{color-scheme:light;--ink:#203348;--muted:#63768b;--blue:#246ddd;--line:#dce5ee;--page:#f4f8fc;font-family:Inter,"Segoe UI","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;color:var(--ink);background:var(--page)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation;border:1px solid var(--line);border-radius:10px;background:white;color:var(--ink);padding:10px 14px}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,summary:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #438ded;outline-offset:3px}button:hover{filter:brightness(.98)}button:active{filter:brightness(.93)}.site-header{max-width:1200px;margin:auto;min-height:76px;display:flex;align-items:center;justify-content:space-between;padding:12px max(24px,env(safe-area-inset-left)) 12px max(24px,env(safe-area-inset-right));gap:16px}.wordmark{text-decoration:none;display:flex;align-items:center;font-weight:800;letter-spacing:-1.8px;font-size:29px}.wordmark span{color:var(--blue)}.wordmark small{font:700 9px/1 system-ui;letter-spacing:.8px;margin-left:9px;padding:5px 6px;border:1px solid #c5d9f3;border-radius:5px;color:#3868a3}.site-header nav{display:flex;align-items:center;gap:22px;font-size:13px}.site-header nav button{border:0;background:none;padding:10px 0}.site-header nav a{text-decoration:none}.workspace{max-width:1170px;margin:0 auto;display:grid;grid-template-columns:minmax(220px,1fr) 360px minmax(230px,1fr);gap:38px;padding:22px 24px 46px;align-items:start}.intro{padding-top:62px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.5px;color:#7b90a8;margin:0 0 16px}.intro h1{font-size:clamp(27px,2.8vw,38px);line-height:1.45;letter-spacing:-1px;margin:0 0 20px;font-weight:650}.intro-copy{color:var(--muted);font-size:14px;line-height:1.9;max-width:240px}.intro-line{display:flex;align-items:center;gap:8px;font-size:11px;color:#6a7f96;margin-top:22px}.version{border-left:1px solid #c7d4e1;padding-left:8px}.live-dot{width:5px;height:5px;background:#63929d;border-radius:50%}.keyboard-guide{border-top:1px solid var(--line);margin-top:42px;padding-top:20px;max-width:235px}.keyboard-guide h2{font-size:12px;font-weight:600;margin:0 0 16px}.keyboard-guide dl{margin:0}.keyboard-guide dl div{display:flex;justify-content:space-between;align-items:center;margin:8px 0;font-size:11px;color:var(--muted)}.keyboard-guide dd{margin:0}kbd{display:inline-block;min-width:21px;padding:3px 5px;background:white;border:1px solid #d3deea;border-bottom-width:2px;border-radius:4px;font:10px system-ui;margin-right:2px}.keyboard-guide p{font-size:11px;line-height:1.8;color:#8797a9;margin-top:16px}.calculator-area{min-width:0}.shell{position:relative;width:100%;padding:21px 17px 29px;border:3px solid #41464d;border-radius:30px 30px 50px 50px / 27px 27px 60px 60px;background:linear-gradient(103deg,#a2a8ae 0%,#f1f2f2 6%,#d5d9dc 23%,#e2e4e6 50%,#c2c7cb 82%,#f1f2f3 96%,#939ba2 100%);box-shadow:inset 0 2px 2px #fff,inset 0 -5px 7px #6f757b55,0 3px 0 #111820,0 20px 34px -15px #28394e5c;isolation:isolate;user-select:none;-webkit-user-select:none;touch-action:manipulation}.hardware-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 3px}.hardware-logo{font-size:23px;letter-spacing:-1.3px;font-weight:850;color:#292f35}.hardware-head em{display:block;font-family:Georgia,serif;font-size:11px;margin-top:5px;color:#343c45;white-space:nowrap}.solar-panel{width:115px;height:42px;border:4px solid #8c9092;border-radius:7px;background:repeating-linear-gradient(90deg,transparent 0 23px,#332421 24px 25px),linear-gradient(150deg,#604135,#392e29);box-shadow:0 1px 1px white,inset 0 2px 6px #1e1919;flex-shrink:0}.hardware-subline{display:flex;justify-content:space-between;color:#5c6972;font-size:7px;letter-spacing:1.1px;margin:13px 5px 8px}.screen-bezel{padding:8px;border-radius:11px 11px 17px 17px;background:linear-gradient(155deg,#92999d,#eef0ef 70%,#a8aeb2);box-shadow:inset 0 2px 4px #41494c80,0 1px 0 #fff;margin-bottom:17px}#lcd{display:block;width:100%;height:auto;aspect-ratio:588/245;border-radius:5px;border:1px solid #566863;background:#d7e2dc;box-shadow:inset 0 2px 6px #273a3055}.control-deck{position:relative;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,54px);column-gap:5px;row-gap:5px;margin-bottom:5px}.key-slot{min-width:0;display:flex;flex-direction:column;justify-content:flex-end;position:relative}.legend{height:13px;display:flex;align-items:center;justify-content:space-between;white-space:nowrap;font-family:Arial,sans-serif;font-size:8px;line-height:1;color:#846631;padding:0 2px;pointer-events:none}.legend .alpha{color:#973b46}.legend .alt{color:#497366}.key{display:block;width:100%;min-width:0;height:40px;padding:0;border:1px solid #353a40;border-radius:12px 12px 15px 15px / 9px 9px 15px 15px;background:linear-gradient(160deg,#575d65 0%,#363b43 56%,#2b3139 100%);box-shadow:inset 0 1px 2px #ffffff5c,0 2px 1px #1a202bc4,0 3px 3px #6f757b75;color:#f5f6f8;font-family:Arial,sans-serif;font-weight:600;font-size:17px;white-space:nowrap;line-height:1;touch-action:manipulation}.key.long-label{font-size:12px}.key.is-down{filter:brightness(1.28);box-shadow:inset 0 1px 3px #151b25;transform:translateY(1px)}.key-slot[data-id=SHIFT] .key,.key-slot[data-id=ALPHA] .key,.key-slot[data-id=MODE] .key,.key-slot[data-id=ON] .key{background:linear-gradient(155deg,#aeb2b4,#737b82);color:#202930;font-size:10px;font-weight:700;border-color:#676d73;border-radius:45% 35% 38% 35%}.key-slot[data-id=SHIFT] .legend{color:#896825}.key-slot[data-id=ALPHA] .legend{color:#953e4b}.key-slot[data-id=PROG] .key,.key-slot[data-id=FMLA] .key{background:linear-gradient(145deg,#f39b39,#c15b17);border-color:#9a4e23;font-size:13px}.key-slot[data-id=AC] .key,.key-slot[data-id=DEL] .key{color:#f1a0a6}.replay-pad{position:relative;grid-column:3/5;grid-row:1/3;align-self:end;height:105px;border-radius:50%;border:1px solid #747d84;background:radial-gradient(circle at 35% 20%,#b8bcbf,#8d969d 75%);box-shadow:inset 0 1px 2px #f1f3f3,0 2px 2px #4f575c77}.replay-pad>span{position:absolute;top:46px;left:0;width:100%;text-align:center;font-size:7px;font-weight:700;letter-spacing:.4px;color:#5f6972;pointer-events:none}.replay-pad .key{position:absolute;width:36px;height:36px;border:0;background:transparent;box-shadow:none;font-size:13px;color:#e6e9eb;text-shadow:0 1px 2px #37414b;border-radius:40%}.replay-pad [data-key=UP]{top:0;left:calc(50% - 18px)}.replay-pad [data-key=DOWN]{bottom:0;left:calc(50% - 18px)}.replay-pad [data-key=LEFT]{top:34px;left:0}.replay-pad [data-key=RIGHT]{top:34px;right:0}.function-deck{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-bottom:6px}.number-deck{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px}.number-deck .key{height:44px;font-size:22px;border-radius:12px 12px 17px 17px;background:linear-gradient(150deg,#333b47,#1c2431);font-weight:500}.number-deck .key.long-label{font-size:16px}.status{display:block;text-align:center;font-size:12px;color:#9a4637;line-height:1.7}.status:empty{display:none}.calculator-hint{text-align:center;color:#8290a0;font-size:10px;line-height:1.7;margin:16px -4px 0}.companion{padding-top:62px;min-width:0}.studio-card{padding:25px 22px;background:linear-gradient(135deg,#e8f1fc,#edf5fc);border:1px solid #d6e5f5;border-radius:19px}.card-icon{display:inline-flex;color:#4181ce;background:#fff9;border:1px solid #d0e0f4;border-radius:10px;align-items:center;justify-content:center;width:40px;height:40px;font:20px Georgia;margin-bottom:22px}.card-icon span{color:#83a9db}.studio-card .eyebrow{font-size:8px;margin-bottom:10px}.studio-card h2{font-size:20px;letter-spacing:-.7px;margin:0 0 10px}.studio-card p:not(.eyebrow){font-size:12px;color:#69829a;line-height:1.9;margin-bottom:20px}.primary{background:#246ddd;color:white;border:1px solid #246ddd;box-shadow:0 3px 8px #246ddd18;font-weight:600}.studio-card .primary{width:100%;display:flex;justify-content:space-between;align-items:center;font-size:12px;min-height:44px}.studio-card small{display:block;text-align:center;color:#8497ac;font-size:10px;margin-top:12px}.help-card{padding:26px 3px}.help-card h2{font-size:13px;margin:0 0 15px}.help-card details{font-size:12px;border-bottom:1px solid var(--line);padding:13px 0;line-height:1.8}.help-card summary{cursor:pointer;color:#597086}.help-card details p{font-size:12px;color:var(--muted)}.site-footer{max-width:1122px;margin:0 auto;padding:25px 0 max(24px,env(safe-area-inset-bottom));border-top:1px solid var(--line);font-size:10px;color:#8393a4;display:flex;align-items:center;justify-content:space-between;gap:22px;line-height:1.9}.site-footer strong{font-size:15px;color:#52677c;margin-right:12px}.site-footer p{margin:0}.legal{display:flex;gap:15px}.skip-link{position:absolute;top:-90px;padding:12px;background:white;z-index:100}.skip-link:focus{top:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
dialog{width:min(700px,calc(100% - 32px));max-height:calc(var(--visual-height,100dvh) - 32px);padding:0;border:1px solid #d6e0ea;border-radius:20px;color:var(--ink);box-shadow:0 30px 90px #1c31434d;overflow:auto;overscroll-behavior:contain}dialog[open]{display:flex;flex-direction:column}dialog::backdrop{background:#182c4670;backdrop-filter:blur(3px)}body:has(dialog[open]){overflow:hidden}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:22px 25px 17px;border-bottom:1px solid var(--line);flex-shrink:0}.dialog-header .eyebrow{font-size:9px;margin:0 0 5px}.dialog-header h2{font-size:22px;margin:0}.close-button{font-size:27px;width:44px;height:44px;line-height:1;padding:0;background:#f4f7fb;border-color:transparent;flex-shrink:0}.dialog-content{padding:20px 25px;overflow:auto;min-height:0;overscroll-behavior:contain}.slot-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.slot-tabs button{min-height:44px}.slot-tabs button[aria-pressed=true]{background:#e9f2ff;color:#1f65c7;border-color:#78a5e3;font-weight:700}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;margin:18px 0 15px;font-size:12px;gap:10px}.editor-toolbar label{display:flex;gap:9px;align-items:center}select{font-size:16px;background:white;border:1px solid var(--line);padding:8px;border-radius:7px;min-height:44px;color:var(--ink);max-width:130px}#program-bytes{font-size:11px;color:var(--muted);white-space:nowrap}.editor-label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}textarea{display:block;box-sizing:border-box;resize:vertical;width:100%;min-height:165px;height:210px;max-height:50vh;padding:13px;border:1px solid #cbd9e6;border-radius:10px;background:#f8fafc;color:#203b53;font:16px/1.8 "SFMono-Regular",Consolas,monospace;tab-size:2}.symbol-palette{display:flex;gap:5px;flex-wrap:wrap;margin-top:10px}.symbol-palette button{padding:6px 10px;min-width:36px;min-height:36px;font-size:13px;background:#f2f6fa}.editor-tip,.draft-status{font-size:11px;color:#7b8b9c;line-height:1.7;margin:10px 0 0}#program-feedback{display:block;font-size:12px;color:#416f5c;line-height:1.7;margin-top:10px;white-space:pre-wrap}#program-feedback[data-error=true]{color:#a74335}.dialog-actions{display:flex;justify-content:space-between;gap:12px;padding:16px 25px max(16px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:white;flex-shrink:0}.secondary-actions,.save-actions{display:flex;gap:7px}.dialog-actions button{font-size:12px;min-height:44px;white-space:nowrap}.secondary-actions button{border-color:transparent;padding:8px;color:#677d94}
@media(min-width:1600px){.workspace{padding-top:48px}.intro,.companion{padding-top:80px}}
@media(max-width:1050px){.workspace{grid-template-columns:minmax(320px,360px) minmax(230px,310px);justify-content:center;gap:26px}.intro{grid-column:1/-1;padding-top:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px}.intro .eyebrow{width:100%;margin-bottom:0}.intro h1{font-size:23px;margin:0}.desktop-only,.intro-copy,.keyboard-guide{display:none}.intro-line{margin:0;font-size:10px}.companion{padding-top:24px}.site-footer{margin:0 24px}}
@media(max-width:680px){.site-header{min-height:60px;padding:9px max(14px,env(safe-area-inset-right)) 9px max(14px,env(safe-area-inset-left));gap:10px}.wordmark{font-size:25px}.wordmark small{font-size:8px;margin-left:7px}.site-header nav{gap:12px;font-size:11px}.site-header nav button{max-width:100px;white-space:nowrap}.workspace{display:flex;flex-direction:column;align-items:center;gap:20px;padding:8px max(12px,env(safe-area-inset-right)) 30px max(12px,env(safe-area-inset-left))}.intro{display:block;padding:0;width:100%;max-width:380px;text-align:center}.intro .eyebrow{font-size:8px;margin:0 0 7px}.intro h1{font-size:19px;letter-spacing:0}.intro-line{display:none}.calculator-area{width:100%;max-width:370px}.shell{padding:19px 13px 26px}.companion{padding:0;width:100%;max-width:400px}.studio-card{padding:20px}.card-icon{float:right;margin:0}.studio-card p:not(.eyebrow){margin-bottom:15px}.studio-card h2{font-size:21px}.help-card{padding-top:26px}.site-footer{display:block;text-align:center;margin:0 16px;padding:22px 8px max(24px,env(safe-area-inset-bottom))}.site-footer p{margin:12px 0}.legal{justify-content:center}.calculator-hint{font-size:9px;margin-top:12px}.keyboard-guide{display:none}.hardware-logo{font-size:22px}.legend{font-size:8px;padding:0 1px}.dialog-header{padding:15px 16px 12px}.dialog-header h2{font-size:19px}.dialog-content{padding:15px 16px}.dialog-actions{padding:11px 16px max(12px,env(safe-area-inset-bottom));flex-direction:column;gap:5px}.secondary-actions{justify-content:space-between}.save-actions{display:grid;grid-template-columns:1fr 1fr}.secondary-actions button{min-height:32px}.dialog-actions .save-actions button{min-height:44px}dialog{width:calc(100% - 16px);max-height:calc(var(--visual-height,100dvh) - 16px);border-radius:15px}.editor-toolbar{font-size:11px;gap:5px}.editor-toolbar label{gap:5px}textarea{height:180px;min-height:130px}.symbol-palette button{min-height:38px}.editor-tip{font-size:10px}}
@media(max-width:359px){.shell{padding-left:10px;padding-right:10px}.key{font-size:15px}.key.long-label{font-size:10px}.legend{font-size:7px}.site-header nav{gap:8px;font-size:10px}.hardware-head em{font-size:9px}.solar-panel{width:100px}.replay-pad .key{width:32px}.intro h1{font-size:17px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.key.is-down{transform:none}}
.shell{padding-top:16px;padding-bottom:22px}.hardware-subline{margin-top:8px;margin-bottom:5px}.screen-bezel{margin-bottom:12px}.control-deck{grid-template-rows:repeat(2,51px);row-gap:4px;margin-bottom:4px}.replay-pad{height:100px}.replay-pad>span{top:44px}.replay-pad [data-key=LEFT],.replay-pad [data-key=RIGHT]{top:32px}.legend{height:11px}.function-deck,.number-deck{row-gap:3px}.function-deck{margin-bottom:4px}.calculator-hint{margin-top:12px}
@media(max-width:680px){.intro h1{font-size:16px}.intro .eyebrow{margin-bottom:3px;font-size:7px}.workspace{gap:12px}.shell{padding-top:15px;padding-bottom:22px}}
.replay-pad{height:110px}.replay-pad>span{top:48px}.replay-pad [data-key=LEFT],.replay-pad [data-key=RIGHT]{top:36px;height:34px}
/* Second visual pass: rounded silver body and shallow caps, from owner photo proportions.
   Core, canvas dimensions, key identifiers and event mapping are unchanged. */
.shell{padding:14px 17px 23px;border-radius:32px 32px 62px 62px / 28px 28px 65px 65px;background:linear-gradient(100deg,#959b9e 0%,#eef0ed 5%,#d4d8d5 21%,#e6e8e4 49%,#cbd0ce 83%,#f0f1ec 96%,#92999b 100%)}
.hardware-logo{font-family:Arial,sans-serif;font-size:22px;letter-spacing:-1px}.hardware-head{align-items:center}.hardware-head em{font-size:10px;margin-top:5px}.solar-panel{width:140px;height:39px;border-width:4px;border-radius:8px}.hardware-subline{font-size:6px;margin:7px 4px 5px;letter-spacing:.65px}.screen-bezel{padding:8px 7px 9px;border-radius:10px 10px 18px 18px;margin-bottom:10px;background:linear-gradient(170deg,#737d78,#e7e9df 80%,#c0c6c1)}
.control-deck{grid-template-rows:repeat(2,45px);row-gap:4px;column-gap:6px;margin-bottom:5px}.control-deck .key{height:30px}.control-deck .legend{height:13px;justify-content:center;padding:0;font-size:7px}.key-slot[data-id=SHIFT] .legend{color:#846631}.key-slot[data-id=ALPHA] .legend{color:#973b46}.key-slot[data-id=MODE] .legend,.key-slot[data-id=ON] .legend{color:#313a39;font-size:6px}.key-slot[data-id=SHIFT] .key{border-radius:55% 45% 28% 45%;transform:rotate(3deg)}.key-slot[data-id=ALPHA] .key{border-radius:50% 45% 25% 42%;transform:rotate(3deg)}.key-slot[data-id=MODE] .key{border-radius:40% 55% 45% 25%;transform:rotate(-3deg)}.key-slot[data-id=ON] .key{border-radius:45% 55% 42% 25%;transform:rotate(-5deg)}
.key{height:33px;border-radius:12px 12px 17px 17px / 9px 9px 15px 15px;font-size:16px;background:linear-gradient(150deg,#555957,#333937 65%,#242b29);box-shadow:inset 0 1px 2px #ffffff5c,0 2px 1px #18221ec4,0 3px 3px #6f757b50}.key.long-label{font-size:11px}.key-slot[data-id=PROG] .key,.key-slot[data-id=FMLA] .key{font-size:12px;border-radius:10px 10px 15px 15px;background:linear-gradient(145deg,#efa54a,#c57329)}
.replay-pad{height:92px;border-radius:48%;background:radial-gradient(circle at 35% 20%,#aeb4ad,#858e85 80%)}.replay-pad>span{top:40px;font-size:7px}.replay-pad .key{font-size:0;width:32px;height:30px;text-shadow:none}.replay-pad .key::before{content:'';display:block;width:0;height:0;margin:auto;border:5px solid transparent;filter:drop-shadow(0 1px 1px #5a635b)}.replay-pad [data-key=UP]{top:0;left:calc(50% - 16px)}.replay-pad [data-key=DOWN]{bottom:0;left:calc(50% - 16px)}.replay-pad [data-key=LEFT],.replay-pad [data-key=RIGHT]{top:31px;height:30px}.replay-pad [data-key=UP]::before{border-bottom-color:#d4d9d0;transform:translateY(-3px)}.replay-pad [data-key=DOWN]::before{border-top-color:#d4d9d0;transform:translateY(3px)}.replay-pad [data-key=LEFT]::before{border-right-color:#d4d9d0;transform:translateX(-3px)}.replay-pad [data-key=RIGHT]::before{border-left-color:#d4d9d0;transform:translateX(3px)}
.function-deck{column-gap:6px;row-gap:4px;margin-bottom:5px}.legend{font-size:7px;height:12px;font-variant-emoji:text}.number-deck{column-gap:8px;row-gap:5px}.number-deck .key{height:40px;border-radius:12px 12px 20px 20px / 9px 9px 16px 16px;background:linear-gradient(155deg,#333735,#171d1b);font-size:24px}.number-deck .key.long-label{font-size:15px}.number-deck .key-slot[data-id=AC] .key,.number-deck .key-slot[data-id=DEL] .key{font-size:19px}.key-slot{isolation:isolate}.key.is-down{transform:translateY(1px)}
@media(max-width:680px){.shell{padding:13px 13px 22px}.solar-panel{width:43%;min-width:110px}.hardware-head em{font-size:9px}.calculator-area{max-width:350px}.function-deck .key{height:34px}.function-deck .key-slot{min-height:46px}.number-deck .key-slot{min-height:54px}.legend{font-size:7px}.control-deck .legend{font-size:7px}.control-deck .key-slot[data-id=MODE] .legend{font-size:6px}}
@media(max-width:359px){.shell{padding-left:10px;padding-right:10px}.legend{font-size:6px}.key.long-label{font-size:10px}.solar-panel{min-width:95px}.hardware-head em{font-size:8px}.function-deck{column-gap:4px}.number-deck{column-gap:6px}}
/* Always-visible physical mode legends; no computational state changes. */
.legend .alt{color:#276451;font-size:6px}.legend .complex,.lower-legend .complex{color:#69516c;border-left:1px solid currentColor;border-right:1px solid currentColor;padding:0 1px;font-size:6px;line-height:1}.lower-legend{height:10px;display:flex;align-items:center;justify-content:center;gap:2px;pointer-events:none;font:7px/1 Arial,sans-serif}.lower-legend .stat{color:#245a8e;font-size:6px;border-left:1px solid currentColor;border-right:1px solid currentColor;padding:0 2px}.key-slot[data-id=EXE] .legend{justify-content:center}.key-slot[data-id=EXE] .legend:empty{height:12px}.key-slot[data-id=ADD] .legend,.key-slot[data-id=SUB] .legend{gap:1px;font-size:6px}.key-slot[data-id=RECIP] .legend{justify-content:space-between}.function-deck .key-slot:has(.lower-legend){min-height:55px}
@media(max-width:359px){.legend .alt,.legend .complex{font-size:5px}.key-slot[data-id=ADD] .legend,.key-slot[data-id=SUB] .legend{font-size:5px}}

/* Same faceplate and measured hit regions as the Private calculator. */
.shell[data-skin="photo-private-layout"]{padding:0;border:0;border-radius:0;aspect-ratio:881/1785;background:url('./assets/fx-50fh-ii-generated-transparent.png') center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(0 18px 28px rgba(22,28,30,.28));}
.shell[data-skin="photo-private-layout"] #lcd{position:absolute;display:block;border:0;box-shadow:none;border-radius:2px;aspect-ratio:auto;}
.shell[data-skin="photo-private-layout"] .key{position:absolute;padding:0;margin:0;min-width:0;min-height:0;border:0;border-radius:34%/40%;background:transparent;box-shadow:none;color:transparent;transform:none;}
.shell[data-skin="photo-private-layout"] .key::after{content:'';position:absolute;inset:0;border-radius:inherit;opacity:0;background:linear-gradient(#ffffff14,#0f12123d);box-shadow:inset 0 2px 4px #0005;pointer-events:none;}
.shell[data-skin="photo-private-layout"] .key.is-down::after,.shell[data-skin="photo-private-layout"] .key:active::after{opacity:1;}
.shell[data-skin="photo-private-layout"] .key:focus-visible{outline:2px solid #2674e8;outline-offset:1px;}

/* Public uses the same centered page shell as Private. */
body{background:linear-gradient(#41443d09 1px,transparent 1px),linear-gradient(90deg,#41443d09 1px,transparent 1px),#e9eaec;background-size:24px 24px;}
.page{min-height:100dvh;display:grid;place-items:center;padding:max(14px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));}
.calculator{display:flex;flex-direction:column;align-items:center;width:min(398px,92vw,calc((100dvh - 112px)*881/1785));}
.studio-open{display:flex;align-items:center;justify-content:center;width:min(100%,360px);min-height:46px;margin-top:10px;padding:10px 16px;border:1px solid #b8cfc5;border-radius:12px;background:#e5f3ed;color:#1f5c48;font-size:14px;font-weight:700;box-shadow:0 5px 18px #254c3a14;}
.compact-help{width:100%;margin-top:12px;color:#5c6965;font-size:11px;line-height:1.7;}
.compact-help summary{cursor:pointer;text-align:center;}
@media(max-width:680px){.calculator{width:min(398px,calc(100vw - 32px));}}
