@font-face{font-family:Geist;src:url(/fonts/geist-latin.woff2) format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;font-size:13px;color:#ddd;background:#202020}*{box-sizing:border-box}body,html{margin:0;width:100%;height:100%;overflow:hidden}button,input,select,textarea{font:inherit}button,input[type=number],input[type=text],select,textarea{color:#eee;background:#444;border:1px solid #666;border-radius:2px}button{padding:5px 8px;cursor:pointer}button:hover:not(:disabled){background:#555}button:disabled{opacity:.45;cursor:default}button.selected{background:#666;border-color:#aaa}a{color:#ddd}input[type=checkbox],progress{accent-color:#aaa}input[hidden]{display:none}.walkthrough-app{position:fixed;inset:0}.editor-app{display:grid;grid-template-columns:minmax(0,1fr) 300px;width:100%;height:100dvh}.viewport{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden}.canvas-host{position:absolute;inset:0}.canvas-host canvas{display:block;width:100%;height:100%;touch-action:none}.crosshair{top:50%;left:50%;width:4px;height:4px;transform:translate(-50%,-50%);border-radius:50%;background:#f7f2e9;opacity:.5;box-shadow:0 0 2px rgba(0,0,0,.55);z-index:4;-webkit-user-select:none;user-select:none}.crosshair,.memory-html-layer{position:absolute;pointer-events:none}.memory-html-layer{inset:0;z-index:1}.memory-card-anchor{width:0;height:0;pointer-events:none}.memory-card{position:absolute;left:0;top:0;width:480px;padding:18px;transform:translate(-50%,-100%);transform-origin:50% 100%;color-scheme:light;border-radius:26px;font-size:18px;font-weight:450;line-height:1.6;letter-spacing:-.015em}.memory-card,.memory-card *{pointer-events:none}.memory-card__photo{display:block;width:auto;height:auto;max-width:100%;max-height:320px;margin-inline:auto;border-radius:16px;box-shadow:0 3px 8px rgba(24,34,42,.1),0 8px 18px rgba(24,34,42,.12)}.memory-card__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:16px 6px 5px}.memory-card__text:first-child{margin-top:0}.memory-card__photo-error{margin:0;color:#666}.sea-glass{isolation:isolate;overflow:hidden;color-scheme:light;color:#29353c;font-family:Geist,Arial,Helvetica,sans-serif;background:linear-gradient(145deg,rgba(222,227,228,.86),rgba(185,195,199,.82));border:1px solid rgba(245,248,249,.68);box-shadow:0 24px 72px rgba(16,23,29,.19),0 4px 14px rgba(16,23,29,.12),inset 0 1px 0 rgba(255,255,255,.6),inset 0 -1px 0 rgba(75,89,103,.12)}.sea-glass:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit;background:url(/textures/glass-grain.svg) repeat;background-size:180px 180px;opacity:.2;mix-blend-mode:soft-light}.sea-glass>*{position:relative;z-index:1}.screen{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#202020;z-index:2}.welcome-screen{background:#0009}.basic-dialog{width:320px;max-width:100%;padding:20px;background:#292929;border:1px solid #666}.basic-dialog h1{font-size:20px;font-weight:500;margin:0 0 16px}.basic-dialog p{line-height:1.5;margin:12px 0;overflow-wrap:anywhere}.basic-dialog progress{width:100%;height:12px}.experience-screen{padding:24px;font-family:Geist,Arial,Helvetica,sans-serif;background:radial-gradient(ellipse at 50% 35%,rgba(79,92,103,.28),rgba(17,24,30,.54))}.experience-screen.welcome-screen{background:linear-gradient(180deg,rgba(23,31,37,.15),rgba(17,24,30,.4))}.experience-dialog{position:relative;width:376px;max-width:100%;padding:32px;border-radius:28px;backdrop-filter:blur(18px) saturate(.85);-webkit-backdrop-filter:blur(18px) saturate(.85);animation:surface-in .24s ease-out both}.experience-dialog h1{font-size:44px;font-weight:450;line-height:1.08;letter-spacing:-.065em;margin:0 0 30px}.experience-dialog p{font-size:14px;line-height:1.6;margin:0 0 20px;overflow-wrap:anywhere}.experience-dialog a{color:#813951;text-underline-offset:3px}.experience-dialog--anniversary{width:460px;text-align:center}.experience-dialog .anniversary-title{font-size:clamp(30px,5vw,40px);line-height:1.12;letter-spacing:-.055em;margin-bottom:18px}.anniversary-title span{display:block;color:#8b3c59}.experience-dialog .anniversary-subtitle{max-width:34ch;margin:0 auto 26px;color:#4e606a;font-size:14px;line-height:1.65;letter-spacing:-.01em}.anniversary-subtitle span{white-space:nowrap;font-weight:500;color:#80334f}.experience-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:0 16px;border-radius:13px;border:1px solid rgba(74,24,44,.22);background:#8b3c59;color:#fff4f8;font:500 15px Geist,Arial,Helvetica,sans-serif;letter-spacing:-.02em;box-shadow:0 3px 9px rgba(91,28,54,.16),inset 0 1px 0 rgba(255,255,255,.18);transition:background .15s ease,transform .15s ease,box-shadow .15s ease}.experience-button:hover:not(:disabled){background:#78324c;transform:translateY(-1px);box-shadow:0 5px 12px rgba(91,28,54,.2),inset 0 1px 0 rgba(255,255,255,.18)}.experience-button:active:not(:disabled){transform:translateY(0)}.experience-button:focus-visible{outline:2px solid #78324c;outline-offset:4px}.experience-controls{display:flex;justify-content:space-between;gap:14px;padding-top:20px;margin-top:24px;border-top:1px solid rgba(54,73,84,.14)}.experience-controls>span{display:flex;flex-direction:column;align-items:center;gap:7px;color:#52616a;font-size:11px}.experience-controls kbd{padding:5px 7px;border:1px solid rgba(248,251,252,.64);border-radius:6px;background:rgba(240,244,245,.28);box-shadow:0 1px 2px rgba(43,60,71,.07),inset 0 1px 0 rgba(255,255,255,.3);color:#3f505b;font:450 11px Geist,Arial,Helvetica,sans-serif;letter-spacing:.02em}.experience-loading-label{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:10px;color:#53636d;font-size:12px;font-weight:450;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.experience-progress{display:block;width:100%;height:4px;border:0;border-radius:4px;overflow:hidden;background:rgba(58,76,86,.14)}.experience-progress::-webkit-progress-bar{border-radius:4px;background:rgba(58,76,86,.14);box-shadow:inset 0 1px 2px rgba(28,45,54,.08)}.experience-progress::-webkit-progress-value{border-radius:4px;background:#8b3c59}.experience-progress::-moz-progress-bar{border-radius:4px;background:#8b3c59}.memory-progress{position:absolute;top:24px;right:24px;z-index:2;pointer-events:none;font-family:Geist,Arial,Helvetica,sans-serif}.memory-progress *{pointer-events:none;-webkit-user-select:none;user-select:none}.memory-progress__surface{display:flex;align-items:center;gap:14px;padding:12px 15px;border-radius:17px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transform-origin:100% 0}.memory-progress__label{font-size:12px;font-weight:450;color:#53636c;white-space:nowrap}.memory-progress__values{display:flex;align-items:baseline;gap:5px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.memory-progress__number{display:inline-block;min-width:1ch;font-size:20px;font-weight:600;letter-spacing:-.04em;color:#80334f}.memory-progress__total{font-size:14px;font-weight:450;color:#61717b}.memory-progress__heart{display:block;flex-shrink:0;color:#8b3c59;transform-origin:50% 60%}.memory-progress__ripple{position:absolute;inset:0;border:2px solid #a85c79;border-radius:17px;opacity:0}.memory-progress__increment{position:absolute;top:-8px;right:12px;opacity:0;color:#ad6580;font-size:12px;font-weight:600;text-shadow:0 1px 5px rgba(255,255,255,.6)}.completion-confetti{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.completion-confetti[hidden]{display:none}@keyframes surface-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:480px){.memory-progress{top:16px;right:16px}.experience-dialog{padding:26px;border-radius:24px}.experience-dialog h1{font-size:39px}}@media (prefers-reduced-motion:reduce){.experience-dialog{animation:none}.experience-button{transition:none}}.debug-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:#2b2b2b;border-left:1px solid #666}.debug-header{display:flex;justify-content:space-between;align-items:center;padding:10px;border-bottom:1px solid #555}.debug-header strong{font-weight:600}.debug-header a{font-size:12px}.debug-toolbar{display:flex;gap:5px;flex-wrap:wrap;padding:7px 10px;border-bottom:1px solid #444}.debug-panels{min-height:0;flex:1 1;overflow:auto}.debug-panels details{border-bottom:1px solid #555}.debug-panels summary{padding:9px 10px;cursor:pointer;background:#363636;-webkit-user-select:none;user-select:none}.debug-section{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:10px}.debug-section>button{align-self:flex-start}.debug-row{display:flex;gap:5px;flex-wrap:wrap}.debug-field,.number-field{display:flex;justify-content:space-between;align-items:center;gap:10px}.debug-field select{min-width:0;max-width:165px;padding:4px}.debug-checkbox{display:flex;align-items:center;gap:6px;cursor:pointer}.debug-checkbox input{margin:0}.number-input{display:flex;gap:5px;align-items:center}.number-input input{width:78px;min-width:0;padding:4px}.number-input>span{width:24px;font-size:12px;color:#bbb}.debug-note,.debug-value{font-size:12px;line-height:1.4;margin:0;color:#bbb}.debug-value{font-family:monospace}.debug-regions{flex-direction:column;padding:0;margin:0;list-style:none}.debug-regions,.debug-regions li{display:flex;gap:5px}.debug-regions li>button:first-child{flex:1 1;text-align:left}.debug-text-field{display:flex;flex-direction:column;gap:5px}.debug-text-field input,.debug-text-field textarea{width:100%;padding:5px}.debug-text-field textarea{resize:vertical;min-height:90px}.memory-photo-preview{width:100%;max-height:180px;object-fit:contain;background:#202020}.debug-status{padding:9px 10px;border-top:1px solid #555;color:#ccc;font-size:12px;line-height:1.4}@media (max-width:650px){.editor-app{grid-template-columns:1fr;grid-template-rows:45dvh minmax(0,1fr)}.debug-panel{border-left:0;border-top:1px solid #666}}