:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#2f302d;background:#f6f2e8;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root,.app-shell{width:100%;height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{overscroll-behavior:none;position:fixed}button{font:inherit;touch-action:manipulation}button:disabled{opacity:.42}.canvas-shell{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#f6f2e8;touch-action:none;user-select:none;-webkit-user-select:none}.logbook-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none}.mode-explore .logbook-canvas{cursor:grab}.mode-draw .logbook-canvas{cursor:crosshair}.floating-header{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;pointer-events:none}.floating-header>div,.mode-pill,.explore-actions,.leave-mark-button,.draw-toolbar,.draw-mode-banner{box-shadow:0 8px 30px #3831281f}.floating-header>div{display:grid;gap:2px;padding:10px 13px;border:1px solid rgba(75,66,54,.11);border-radius:14px;background:#fffdf7f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.eyebrow{display:block;color:#756d62;font-size:.72rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.mode-pill,.draw-mode-banner{max-width:calc(100vw - 32px);padding:9px 12px;border-radius:999px;background:#fffdf7f0;border:1px solid rgba(75,66,54,.11);font-size:.8rem;font-weight:750;text-align:center}.explore-actions{position:absolute;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));display:flex;gap:8px;transform:translate(-50%);padding:6px;border:1px solid rgba(75,66,54,.11);border-radius:16px;background:#fffdf7f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.leave-mark-button{position:absolute;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translate(-50%);min-width:min(330px,calc(100vw - 32px));padding:15px 22px;border:0;border-radius:16px;background:#384d3d;color:#fff;font-weight:800;cursor:pointer}.how-it-works-button{position:absolute;z-index:2;top:calc(max(14px,env(safe-area-inset-top)) + 53px);right:max(14px,env(safe-area-inset-right));min-height:42px;padding:8px 12px;border:1px solid rgba(75,66,54,.11);border-radius:999px;background:#fffdf7f0;box-shadow:0 8px 30px #3831281f;color:#4f514a;font-size:.8rem;font-weight:750;cursor:pointer}.secondary-button,.ghost-button,.primary-button,.size-button{min-height:42px;border-radius:11px;cursor:pointer}.secondary-button{border:0;padding:9px 12px;background:transparent;color:#373a34;font-weight:700;white-space:nowrap}.primary-button{border:0;padding:12px 16px;background:#384d3d;color:#fff;font-weight:800}.primary-button.compact{min-width:68px;padding:9px 12px}.ghost-button{border:1px solid rgba(75,66,54,.18);padding:8px 12px;background:#fffdf7;color:#373a34;font-weight:700}.draw-mode-banner{position:absolute;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);background:#384d3d;color:#fff}.draw-toolbar{position:absolute;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));margin:0 auto;max-width:600px;padding:9px;border-radius:18px;border:1px solid rgba(75,66,54,.12);background:#fffdf7f7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.toolbar-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.toolbar-row.secondary{margin-top:8px}.swatches,.brush-sizes,.eraser-sizes{display:flex;align-items:center;gap:7px}.swatch{width:30px;height:30px;padding:0;border:3px solid #fffdf7;border-radius:50%;box-shadow:0 0 0 1px #2f302d29}.swatch.selected{box-shadow:0 0 0 3px #8c7962}.size-button{width:42px;padding:0;display:grid;place-items:center;border:1px solid rgba(75,66,54,.16);background:#fffdf7}.size-button.selected{border-color:#384d3d;background:#f0eee5}.eraser-size-button{min-height:42px;min-width:68px;padding:8px 10px;border:1px solid rgba(75,66,54,.16);border-radius:11px;background:#fffdf7;color:#45463f;font-size:.78rem;font-weight:750;cursor:pointer}.eraser-size-button.selected{border-color:#384d3d;background:#e9eee7;color:#2c4835}.brush-dot{display:block;border-radius:50%;background:#2f302d}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#23211d52;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.welcome-modal{width:min(500px,100%);padding:28px;border-radius:24px;background:#fffdf7;box-shadow:0 24px 80px #23211d38}.welcome-modal h1{margin:6px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.8rem,7vw,2.7rem);font-weight:600;line-height:1.02}.welcome-modal p{color:#5d594f;line-height:1.6}.instruction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 0}.instruction-grid div{display:grid;gap:5px;min-width:0;padding:12px;border-radius:14px;background:#f2eee4}.instruction-grid span{color:#686157;font-size:.78rem;line-height:1.3}.welcome-modal .primary-button{width:100%}@media(max-width:520px){.instruction-grid{grid-template-columns:1fr}.welcome-modal{padding:23px}.swatch{width:26px;height:26px}.secondary-button{font-size:.82rem}}.contribution-note,.connection-note,.notice,.canvas-state{position:absolute;left:50%;transform:translate(-50%);border:1px solid rgba(75,66,54,.12);background:#fffdf7f2;box-shadow:0 8px 30px #3831281f;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.contribution-note{top:calc(max(14px,env(safe-area-inset-top)) + 74px);z-index:2;padding:9px 12px;border-radius:999px;color:#4f514a;font-size:.82rem;font-weight:700}.connection-note{top:calc(max(14px,env(safe-area-inset-top)) + 74px);z-index:2;width:max-content;max-width:calc(100vw - 32px);padding:8px 12px;border-radius:999px;color:#76582f;font-size:.78rem;font-weight:700}.notice{z-index:7;bottom:calc(178px + env(safe-area-inset-bottom));width:min(430px,calc(100vw - 32px));padding:11px 14px;border-radius:13px;color:#41413b;font-size:.86rem;font-weight:650;line-height:1.35;text-align:center}.notice-error{border-color:#843d363d;background:#fff6f2f7;color:#7c3d35}.canvas-state{z-index:8;top:50%;display:grid;gap:14px;width:min(340px,calc(100vw - 44px));padding:16px 19px;border-radius:17px;color:#5d594f;font-size:.9rem;font-weight:650;line-height:1.4;text-align:center}.state-card strong{color:#373a34;font-size:1rem}.tool-button{min-height:42px;padding:8px 10px;border:1px solid rgba(75,66,54,.18);border-radius:11px;background:#fffdf7;color:#373a34;font-weight:700;cursor:pointer}.tool-button.selected{border-color:#384d3d;background:#e9eee7;color:#2c4835}.history-button{min-width:54px}.eraser-cursor-preview{position:absolute;z-index:1;transform:translate(-50%,-50%);border:1.5px solid rgba(56,77,61,.72);border-radius:50%;background:#384d3d0d;box-shadow:0 0 0 1px #fffdf7b8;pointer-events:none}.confirmation-modal{width:min(430px,100%);padding:24px;border-radius:22px;background:#fffdf7;box-shadow:0 24px 80px #23211d38}.confirmation-modal h2{margin:0 0 9px;font-family:Georgia,Times New Roman,serif;font-size:1.55rem;font-weight:600}.modal-copy{color:#5d594f;line-height:1.55}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.danger-button{background:#8b4a42}@media(max-width:520px){.toolbar-row.secondary{display:grid;grid-template-columns:1fr auto auto}.toolbar-row.secondary .brush-sizes,.toolbar-row.secondary .eraser-sizes{grid-column:1 / -1;justify-content:center}.toolbar-row.secondary .tool-button{justify-self:start}.toolbar-row.secondary .history-button{justify-self:end}.notice{bottom:calc(220px + env(safe-area-inset-bottom))}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.admin-shell,.invalid-route{min-height:100%;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(30px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));overflow:auto;background:#f6f2e8}.admin-header,.admin-card,.invalid-route section{width:min(860px,100%);margin-inline:auto}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}.admin-header h1,.invalid-route h1{margin:4px 0 0;font-family:Georgia,Times New Roman,serif;font-weight:600}.admin-back{text-decoration:none}.admin-card,.invalid-route section{padding:clamp(20px,5vw,32px);border:1px solid rgba(75,66,54,.12);border-radius:22px;background:#fffdf7;box-shadow:0 12px 44px #3831281a}.admin-card h2{margin:0 0 8px;font-size:1.15rem}.admin-card p,.invalid-route p{color:#5d594f;line-height:1.55}.admin-login{width:min(460px,100%)}.admin-login form{display:grid;gap:14px;margin-top:20px}.admin-login label{display:grid;gap:6px;font-weight:700}.admin-login input{min-height:44px;padding:9px 11px;border:1px solid rgba(75,66,54,.24);border-radius:10px;background:#fff;color:#2f302d}.admin-section-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-section-header h2{margin:0}.admin-section-header p{margin:6px 0 0}.admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.admin-logbook-list,.admin-contribution-list{display:grid;gap:9px;margin-top:18px}.admin-logbook-list>div,.admin-contribution-list article{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:13px 14px;border-radius:13px;background:#f3efe5}.admin-logbook-list span,.admin-contribution-list span{display:block;margin-top:3px;color:#6b655b;font-size:.84rem}.contribution-heading{margin-top:30px}.contribution-heading a{text-decoration:none}.admin-delete{color:#824139}.admin-error{margin:16px auto 0;color:#8b4038!important;font-weight:700}.invalid-route{display:grid;place-items:center}.invalid-route section{width:min(460px,100%)}.invalid-route .primary-button{display:inline-block;margin-top:10px;text-decoration:none}@media(max-width:520px){.admin-header,.admin-section-header,.admin-contribution-list article{align-items:stretch;flex-direction:column}.admin-back,.admin-section-header>a,.admin-contribution-list button{text-align:center}.admin-actions{justify-content:stretch}.admin-actions button{flex:1}}
