:root{font-family:"Trebuchet MS","Arial Rounded MT Bold",system-ui,sans-serif;color-scheme:only light;--accent:#ef4f83;--accent-dark:#b9275d;--secondary:#57a765;--secondary-dark:#397b46;--ink:#6a321b;--paper:rgba(255,248,218,.96);--portrait:.45}*{box-sizing:border-box}html,body{position:fixed;inset:0;margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{display:grid;place-items:center;background:#28222d}#game-shell{position:relative;width:min(100vw,calc(100svh * var(--portrait)));height:min(100svh,calc(100vw / var(--portrait)));overflow:hidden;isolation:isolate;background:#f6d9c8;box-shadow:0 0 40px #0007}.flow-screen{position:absolute;inset:0;z-index:20;display:none;place-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));background:center/cover no-repeat}.flow-screen.visible{display:grid}#start-screen{background-image:linear-gradient(#27112733,#27112766),var(--start-bg)}#end-screen{background-image:linear-gradient(#27112733,#27112766),var(--end-bg)}.card{width:min(92%,470px);max-height:97%;padding:clamp(14px,3.7cqw,22px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;border:clamp(3px,.9cqw,5px) solid var(--accent);border-radius:clamp(22px,6cqw,36px);background:var(--paper);color:var(--ink);text-align:center;box-shadow:0 8px 0 var(--accent-dark),0 18px 44px #24142455}.card::-webkit-scrollbar{display:none}.eyebrow{margin:0;font-size:clamp(11px,3cqw,14px);font-weight:900;letter-spacing:.1em}.title-art{display:block;width:min(78%,350px);max-height:11svh;object-fit:contain;margin:4px auto}#intro{margin:4px auto 8px;font-weight:800}.mascot-stage{position:relative;width:min(40%,180px);aspect-ratio:1/1.15;margin:4px auto;overflow:visible}.mascot-stage .mascot,.mascot-stage .photo-mask{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.photo-mask{overflow:hidden;pointer-events:none}.photo-mask img{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:cover;transform:translate(calc(-50% + var(--photo-x,0px)),calc(-50% + var(--photo-y,0px))) scale(var(--photo-zoom,1));transform-origin:center}.fields{display:grid;gap:7px;text-align:left}.fields label span,.photo-panel label span{display:block;margin-bottom:3px;font-size:clamp(12px,3.2cqw,15px);font-weight:900}input,textarea,select{width:100%;border:2px solid var(--accent);border-radius:13px;background:#fffdf6;color:var(--ink);font:700 clamp(14px,3.5cqw,16px) inherit;outline:none}input,select{height:43px;padding:0 12px}textarea{min-height:58px;padding:9px 12px;resize:none}#message-field.locked{opacity:.58}#message-note{display:block;margin-top:3px}.primary,.secondary,.home,.soft{display:grid;width:100%;min-height:42px;margin-top:10px;padding:0 16px;place-items:center;border:0;border-radius:999px;color:#fff;text-decoration:none;font:900 clamp(14px,3.6cqw,17px) inherit;cursor:pointer}.primary{background:var(--accent);box-shadow:0 4px 0 var(--accent-dark)}.secondary{background:var(--secondary);box-shadow:0 4px 0 var(--secondary-dark)}.home{background:#8d1209;box-shadow:0 4px 0 #5e0905}.soft{background:#806a97;box-shadow:0 4px 0 #594668}.danger{background:#b34d55}.link-button{border:0;background:none;color:var(--accent-dark);font-weight:900;cursor:pointer}.note{font-size:11px;margin:10px 0 0}.mode-hidden{display:none!important}#game-layer{position:absolute;inset:0}#game-layer[aria-hidden="true"]{display:none}.game-placeholder{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:20px;background:linear-gradient(#6aa6ce,#f5c88e);color:white;text-align:center}#game-back{position:absolute;z-index:15;left:4%;top:12%;width:54px;height:54px;border:0;border-radius:50%;font-size:28px;font-weight:900}h1,h2{margin:6px auto;color:var(--accent)}#end-message{font-weight:800}.modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom));background:#160d1cdd}.modal[hidden]{display:none}.photo-panel{width:min(94vw,520px);max-height:96svh;overflow:auto;scrollbar-width:none;padding:18px;border:4px solid var(--accent);border-radius:28px;background:#fff8da;color:var(--ink);text-align:center}.photo-panel::-webkit-scrollbar{display:none}.editor-stage{width:min(72vw,360px);margin:6px auto;touch-action:none}.modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-actions>*{margin-top:10px}@media(max-width:699px){#game-shell{width:100vw;height:100svh}}@media(max-height:680px){.card{padding:11px 15px}.preview-stage{max-height:17svh}.note{margin-top:6px}}
