html,body{margin:0;min-height:100%;background:#2f1b31}
#root{visibility:hidden}
#kp-stage{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#2f1b31;overflow:auto}
#kp-stage[hidden]{display:none}
.kp-screen{position:relative;width:min(100vw,calc(100vh * .45));aspect-ratio:1080/2400;overflow:hidden;background:#64caff;font-family:"Source Sans 3",Arial,sans-serif}
.kp-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:10;pointer-events:none}
.kp-photo-mask{position:absolute;z-index:5;overflow:hidden;pointer-events:none}.kp-photo-mask.ellipse{border-radius:50%}.kp-photo-mask canvas{position:absolute;inset:0;width:100%;height:100%}
.kp-layer{position:absolute;z-index:20;box-sizing:border-box;display:flex;align-items:center;white-space:pre-wrap;overflow:hidden;font-family:"Source Sans 3",Arial,sans-serif;font-weight:700}
.kp-layer.center{justify-content:center;text-align:center}.kp-layer.left{justify-content:flex-start;text-align:left}
.kp-layer:has(textarea){overflow:visible}.kp-control{border:0;background:transparent;outline:none;font:inherit;color:inherit;width:100%;height:100%;padding:0;box-sizing:border-box}
textarea.kp-control{resize:none;overflow:hidden;padding-right:18%;padding-bottom:1.15em}
.kp-message-counter{position:absolute;right:3%;bottom:10%;z-index:2;font-size:.58em;line-height:1;color:#71371f;white-space:nowrap;pointer-events:none}.kp-message-counter.max{color:#c9273f}
select.kp-control{appearance:none;cursor:pointer}
button.kp-layer,button.kp-layer:hover,button.kp-layer:active{min-width:0;margin:0;border:0;border-radius:0;padding-top:0;padding-bottom:0;background:transparent;background-image:none;box-shadow:none;text-shadow:none;cursor:pointer;appearance:none}
.kp-slider-host{position:absolute;z-index:250;height:2.9166667%;display:flex;align-items:center;padding:0 1.2962963%;box-sizing:border-box}.kp-slider{width:100%;accent-color:#ed4b86;cursor:pointer;margin:0;padding:0;box-shadow:none}.kp-slider::-webkit-slider-thumb{width:var(--thumb-size);height:var(--thumb-size)}.kp-slider::-moz-range-thumb{width:var(--thumb-size);height:var(--thumb-size)}
.kp-file{display:none}
.kp-notice-shade{position:absolute;inset:0;z-index:500;display:grid;place-items:center;padding:8%;box-sizing:border-box;background:#2f1b318c}.kp-notice{width:82%;box-sizing:border-box;padding:7% 6%;border:3px solid #fff5de;border-radius:5%;background:#fff4dd;color:#71371f;text-align:center}.kp-notice p{margin:0 0 6%;font-size:clamp(14px,3.2vw,26px);line-height:1.25;font-weight:700}.kp-notice button{min-width:35%;padding:3% 6%;border:0;border-radius:999px;background:#ef5682;color:white;font-weight:700}
#kp-skip{position:absolute;z-index:45;left:7%;bottom:2.6%;border:0;background:transparent;color:#fff;font:900 clamp(9px,2vw,14px)/1 Arial,sans-serif;text-shadow:0 2px 3px #000;cursor:pointer;padding:1%;display:block;white-space:nowrap}.kp-recipient #kp-skip{display:none}
.kp-recipient .glide-back-button{display:none!important}
@media(max-aspect-ratio:9/20){.kp-screen{width:100vw;height:auto}}

/* v40: fixed portrait layout, scroll-proof focus, native message editing. */
html,body{position:fixed;inset:0;width:100%;height:100%;overflow:clip!important}
#kp-stage{overflow:clip!important}
.kp-screen{width:var(--kp-width,min(100vw,calc(100svh * .45)));height:var(--kp-height,auto);overflow:clip!important}
#root,.game,.page-shell{overflow:clip!important}
#root{position:fixed;inset:0}
textarea.kp-control{padding:0;border-radius:0;overflow:hidden}
input.kp-control,textarea.kp-control{user-select:text;-webkit-user-select:text;touch-action:manipulation}
.kp-control::placeholder{color:inherit;opacity:1}
.kp-layer.right{justify-content:flex-end;text-align:right}
button,img,canvas{-webkit-touch-callout:none;-webkit-user-drag:none;user-select:none;-webkit-user-select:none}
button{touch-action:manipulation}
.player-face-window img{object-fit:fill!important}
.hud-bottom p{font-size:clamp(8px,2.1cqw,14px);line-height:1.12;padding:0;max-height:80%;overflow-wrap:anywhere}
#kp-skip{bottom:1.1%;left:3%;padding:2%}
@media(pointer:fine){.kp-screen{width:var(--kp-desktop-width)!important;height:var(--kp-desktop-height)!important}.game{width:var(--kp-game-width)!important;height:var(--kp-game-height)!important}}

.kp-loading{position:absolute;inset:0;z-index:500;display:grid;place-items:center;background:#092d45b3;color:white;font:bold 16px Arial;text-align:center}

/* v41 readable gameplay copy and visible-viewport alignment */
.hud-bottom p{font-size:clamp(12px,4.4cqw,24px);max-height:80%;width:86%;line-height:1.15}
.kp-game-locked #root .page-shell{min-height:0;width:100%;height:100%}
.kp-game-locked #root .game{width:var(--kp-game-width);height:var(--kp-game-height)}
