*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#0d0a12;color:#e8e2d8;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-size:16px;line-height:1.5;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0;width:100%;height:100%}#canvas{position:absolute;inset:0;width:100%;height:100%;display:block;cursor:default}#canvas:active{cursor:grabbing}#overlay{position:absolute;inset:0;pointer-events:none;z-index:10}.splash{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background-image:url(/assets/splash.webp);background-size:cover;background-position:center;background-color:#0a070e;background-blend-mode:normal;z-index:100;transition:opacity 1.2s ease-out}.splash:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,#1a14228c,#0a070ed1 80%);z-index:0}.splash.fading{opacity:0;pointer-events:none}.splash-inner{position:relative;z-index:1;text-align:center;color:#e8d8c8;max-width:32rem;padding:0 2rem}.splash-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:400;letter-spacing:.02em;color:#f0e4d4;margin-bottom:.5rem}.splash-subtitle{font-style:italic;font-size:clamp(1rem,2vw,1.2rem);opacity:.65;letter-spacing:.05em;margin-bottom:4rem}.splash-loading{font-size:.95rem;opacity:.4;font-style:italic;letter-spacing:.08em}.prompt-stack{position:absolute;pointer-events:none;display:flex;flex-direction:column;align-items:center;gap:.42rem;animation:prompt-fade-in .2s ease-out}.object-preview-menu{flex-direction:column;align-items:center;gap:.28rem;padding:.55rem .65rem;background:#120c18f0;border:1px solid rgba(190,170,210,.28);border-radius:.5rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000073,inset 0 1px #fffaf00f}.object-preview-art svg{width:7.75rem;height:7.75rem;display:block;shape-rendering:geometricPrecision}.object-preview-title{font-size:.84rem;letter-spacing:.08em;text-transform:uppercase;color:#e8dac8d1;font-style:normal;font-weight:500;max-width:11rem;text-align:center;line-height:1.28}.object-preview-desc{font-size:.78rem;font-weight:400;letter-spacing:.02em;text-transform:none;color:#c8bcafe0;max-width:13rem;text-align:center;line-height:1.4;margin-top:.12rem}.prompt{position:relative;background:#0f0a12c7;color:#f0e4d4;padding:.45rem .9rem;border-radius:.3rem;font-size:1.05rem;pointer-events:none;white-space:nowrap;border:1px solid rgba(180,160,200,.18);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);font-style:italic;letter-spacing:.02em}.prompt-key{display:inline-block;background:#fff0dc1f;padding:.06rem .48rem;border-radius:.2rem;margin-right:.5rem;font-family:SF Mono,Monaco,Menlo,monospace;font-size:.92rem;font-style:normal;letter-spacing:0}@keyframes prompt-fade-in{0%{opacity:0}to{opacity:1}}.memory-dock{position:absolute;left:max(.75rem,env(safe-area-inset-left));bottom:max(1rem,env(safe-area-inset-bottom));z-index:12;display:flex;flex-direction:column;align-items:flex-start;gap:.38rem;pointer-events:none}.inspiration-hud-panel{pointer-events:none;width:min(13rem,calc(100vw - 1.5rem));padding:.38rem .48rem .42rem;background:#120c08eb;border:1px solid rgba(232,198,138,.28);border-radius:.42rem;box-shadow:0 3px 14px #0006,inset 0 1px #fffaeb0d}.inspiration-hud-label{display:block;text-align:center;font:italic .82rem Times New Roman,Georgia,serif;letter-spacing:.04em;color:#ecdcbcf5;text-shadow:0 0 1px rgba(12,8,6,.9),0 1px 2px rgba(12,8,6,.55);margin-bottom:.28rem}.inspiration-hud-track{height:1.05rem;border-radius:.5rem;background:#0a080ca6;border:1px solid rgba(80,60,50,.35);overflow:hidden;position:relative}.inspiration-hud-fill{height:100%;width:0%;min-width:0;border-radius:.42rem;position:relative;box-sizing:border-box}.inspiration-hud-sheen{position:absolute;left:0;top:0;width:100%;height:48%;border-radius:.42rem .42rem 0 0;opacity:.22;pointer-events:none}.memory-inventory-shell{display:flex;flex-direction:row;align-items:center;gap:.28rem;pointer-events:auto;transform:translate(var(--jx, 0px),var(--jy, 0px));will-change:transform;transition:opacity .35s ease,transform .08s linear}.memory-inventory-shell--empty{opacity:0;visibility:hidden;pointer-events:none}.memory-inventory-panel{display:flex;flex-direction:column;align-items:center;gap:.22rem;padding:.55rem .65rem .5rem;min-width:10.5rem;max-width:13rem;background:#120c18f0;border:1px solid rgba(190,170,210,.28);border-radius:.5rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000073,inset 0 1px #fffaf00f}.memory-inventory-view{display:flex;flex-direction:column;align-items:center;gap:.2rem;width:100%}.memory-inventory-panel .memory-inventory-desc.object-preview-desc{margin-top:.06rem;max-width:12rem}.memory-inventory-panel .object-preview-art svg{width:7.75rem;height:7.75rem;display:block;shape-rendering:geometricPrecision;filter:grayscale(.18) contrast(.94) brightness(1.02);opacity:.92}.memory-inventory-panel .object-preview-title{margin-top:.08rem}.memory-inventory-desk{font-size:.72rem;font-style:italic;letter-spacing:.03em;color:#b4a8c6e0;text-align:center;line-height:1.25}.memory-inventory--unease .memory-inventory-panel .object-preview-art svg{filter:grayscale(.32) contrast(.9) brightness(.97);opacity:.88}.memory-inventory-meta{width:100%;text-align:center;padding-top:.12rem;border-top:1px solid rgba(140,120,160,.15)}.memory-inventory-index{font-size:.72rem;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#b4a8bca6;font-family:SF Mono,Monaco,Menlo,monospace}.memory-nav{flex-shrink:0;width:2rem;height:2.6rem;border-radius:.35rem;border:1px solid rgba(190,170,210,.35);background:#16101eeb;color:#e8dac8e0;font-size:1.35rem;line-height:1;cursor:pointer;pointer-events:auto;transition:background .15s ease,border-color .15s ease,opacity .15s ease}.memory-nav:hover:not(:disabled){background:#241c30f2;border-color:#d2bee673}.memory-nav:disabled{opacity:.28;cursor:default}.memory-nav:focus-visible{outline:2px solid rgba(200,180,230,.55);outline-offset:2px}.dialogue{position:absolute;background:#f5ecd8eb;color:#2a1f18;padding:.5rem .9rem;border-radius:.4rem;font-size:.95rem;font-style:italic;pointer-events:none;white-space:nowrap;max-width:24rem;white-space:normal;text-align:center;box-shadow:0 4px 16px #00000059;transform:translate(-50%,-50%);letter-spacing:.01em;line-height:1.4;border:1px solid rgba(80,60,50,.15)}.dialogue:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#f5ecd8eb;border-bottom:0}.read-mode{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#140e1aeb,#08050cf7);pointer-events:auto;z-index:50;opacity:0;transition:opacity .35s ease-out}.read-mode.visible{opacity:1}.read-mode-page{position:relative;width:min(48rem,92vw);max-height:86vh;background:linear-gradient(120deg,#faf6ec,#f5ecd8 45%,#efe6d4);color:#2a1f18;border-radius:.4rem;padding:3rem 3.5rem;overflow-y:auto;box-shadow:0 30px 80px #0009,inset 0 1px #fffaeb66;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif;font-style:italic;font-size:1.05rem;line-height:1.65;letter-spacing:.005em;white-space:pre-wrap;scrollbar-width:thin;scrollbar-color:rgba(120,90,60,.4) transparent}.read-mode-page::-webkit-scrollbar{width:8px}.read-mode-page::-webkit-scrollbar-track{background:transparent}.read-mode-page::-webkit-scrollbar-thumb{background:#785a3c59;border-radius:4px}.read-mode-page:before{content:"";position:absolute;top:1.5rem;bottom:1.5rem;left:2.2rem;width:1px;background:#b4966e73}.read-mode-page p{margin-bottom:1rem}.read-mode-page p:last-child{margin-bottom:0}.read-mode-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-size:.85rem;color:#e8dac880;letter-spacing:.06em;font-style:italic}.read-mode-hint .prompt-key{margin-right:.4rem;background:#fff0dc1f;padding:.05rem .45rem;border-radius:.2rem;font-family:SF Mono,Monaco,Menlo,monospace;font-style:normal}.read-mode--tablet{background:radial-gradient(ellipse at center,#08060ef2,#000004fc)}.read-mode-page--tablet{background:linear-gradient(180deg,#14141a,#0a0a10);color:#d8e0e8;font-family:SF Pro Text,-apple-system,Helvetica Neue,sans-serif;font-style:normal;font-size:.95rem;line-height:1.5;letter-spacing:.005em;border:1px solid rgba(180,200,230,.1);box-shadow:0 30px 80px #000000b3,inset 0 1px #ffffff0a,0 0 28px #5078b42e;width:min(34rem,88vw);padding:2rem 2.4rem 2.4rem;max-height:80vh}.read-mode-page--tablet:before{display:none}.read-mode-page--tablet p{margin-bottom:.6rem;padding:.42rem .65rem;background:#ffffff0a;border-radius:.25rem;border-left:2px solid rgba(140,170,220,.45)}.read-mode-tablet-title{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:#aabedc8c;margin-bottom:1.1rem;padding-bottom:.55rem;border-bottom:1px solid rgba(180,200,230,.12)}.safe-closeup{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#120e16f0,#06040afa);pointer-events:auto;z-index:50;opacity:0;transition:opacity .35s ease-out}.safe-closeup.visible{opacity:1}.safe-closeup-panel{width:min(22rem,90vw);padding:1.75rem 1.5rem 1.5rem;border-radius:.45rem;background:linear-gradient(165deg,#2e323c,#1a1d24 55%,#12151c);border:1px solid rgba(140,150,170,.22);box-shadow:0 28px 70px #000000a6,inset 0 1px #ffffff0f;transition:transform .12s ease-out}.safe-closeup-panel.safe-closeup--wrong{animation:safe-closeup-shake .42s ease-out}@keyframes safe-closeup-shake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.safe-closeup-title{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#c8cddaa6;text-align:center;margin-bottom:.35rem}.safe-closeup-sub{font-size:.82rem;color:#b4b9c6c7;text-align:center;margin-bottom:1.25rem;line-height:1.35}.safe-closeup-display{display:flex;justify-content:center;gap:.65rem;margin-bottom:1.35rem;padding:.85rem .6rem;border-radius:.28rem;background:#06080ceb;border:1px solid rgba(90,100,120,.35);box-shadow:inset 0 2px 12px #0000008c}.safe-closeup-slot{font-family:SF Mono,Monaco,Menlo,Consolas,monospace;font-size:1.65rem;font-weight:500;color:#bee6ffeb;min-width:1.15rem;text-align:center;text-shadow:0 0 12px rgba(120,200,255,.35)}.safe-closeup-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-bottom:1.1rem}.safe-closeup-key{font-family:inherit;font-size:1.05rem;font-weight:600;padding:.62rem .25rem;border-radius:.28rem;border:1px solid rgba(110,120,140,.45);background:linear-gradient(180deg,#4a505c,#353a44);color:#ebeef5f2;cursor:pointer;transition:background .12s ease,transform .08s ease}.safe-closeup-key:hover{background:linear-gradient(180deg,#585f6e,#424854)}.safe-closeup-key:active{transform:scale(.96)}.safe-closeup-key--ghost{border:none;background:transparent;cursor:default;pointer-events:none}.safe-closeup-hint{text-align:center;font-size:.82rem;color:#c8bed273;letter-spacing:.04em}.safe-closeup-hint .prompt-key{margin-right:.35rem;background:#fff0dc1a;padding:.05rem .45rem;border-radius:.2rem;font-family:SF Mono,Monaco,Menlo,monospace}.mc-root{position:absolute;inset:0;pointer-events:none;z-index:20}.mc-joy-base{display:none;position:absolute;width:112px;height:112px;margin-left:-56px;margin-top:-56px;border-radius:50%;background:#fff5e614;border:1.5px solid rgba(255,245,230,.18);pointer-events:none;transition:opacity .16s ease;will-change:opacity}.mc-joy-knob{position:absolute;top:50%;left:50%;width:44px;height:44px;margin-left:-22px;margin-top:-22px;border-radius:50%;background:#fff5e647;border:1.5px solid rgba(255,245,230,.45);box-shadow:0 2px 12px #0006;transform:translate(-50%,-50%);transition:transform .04s linear;pointer-events:none}.mc-actions{position:absolute;bottom:max(28px,env(safe-area-inset-bottom,16px));right:max(28px,env(safe-area-inset-right,16px));display:flex;flex-direction:column;gap:14px;align-items:center;pointer-events:auto}.mc-btn{width:52px;height:52px;border-radius:50%;border:1.5px solid rgba(255,245,230,.3);background:#fff5e61a;color:#fff5e6b3;font-family:SF Mono,Monaco,Menlo,Consolas,monospace;font-size:1rem;font-weight:600;display:flex;align-items:center;justify-content:center;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:background .1s,border-color .1s,color .1s;box-shadow:0 2px 10px #00000059;user-select:none;-webkit-user-select:none}.mc-btn--pressed{background:#fff5e647;border-color:#fff5e699;color:#fff5e6}
