:root{--bg-img:url(/parchment-bg.jpg);--surface:#fffaf1;--surface-2:#f7ead2;--ink:#33263f;--ink-soft:#5b4a73;--accent:#c84f7f;--accent-2:#3f9fae;--accent-3:#8a63d9;--font-head:"Pirata One", cursive;--font-body:"Cinzel", serif;--radius:22px;--border-weight:3px;font:16px/145% var(--font-body);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--bg-img) center/cover fixed no-repeat;min-height:100vh;margin:0}h1,h2,h3{font-family:var(--font-head);margin:0 0 .4em}button{font-family:var(--font-body)}.admin-login-screen{text-align:center;max-width:420px;margin:0 auto;padding:40px 20px}.admin-login-card{background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);text-align:left;flex-direction:column;gap:12px;padding:24px;display:flex;box-shadow:6px 6px #33263f99}.admin-login-card label{font-weight:700}.admin-login-card input{border:var(--border-weight) solid var(--ink);font:18px var(--font-body);border-radius:14px;outline:none;padding:10px 14px}.admin-login-error{color:var(--accent);margin:0;font-weight:700}.admin-login-submit{background:var(--accent-3);color:#fff;border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:999px;align-self:center;padding:10px 26px;font-size:18px;font-weight:700;box-shadow:4px 4px #33263f99}.stage{max-width:640px;margin:0 auto}.stage-nav{justify-content:center;align-items:center;gap:16px;margin-bottom:14px;display:flex}.stage-nav-arrow{background:var(--surface);border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:50%;width:40px;height:40px;font-size:18px;font-weight:700;box-shadow:3px 3px #33263f99}.stage-nav-label{color:var(--surface);text-shadow:1px 1px #33263f99;font-weight:700}.stage-polaroid{background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:10px;padding:14px 14px 28px;box-shadow:6px 6px #33263f99}.stage-photo-wrap{border-radius:4px;position:relative;overflow:hidden}.stage-photo-wrap--placing{cursor:crosshair}.stage-photo{-webkit-user-select:none;user-select:none;width:100%;display:block}.stage-marker{position:absolute;transform:translate(-50%,-50%)}.stage-marker-badge{border:2.5px solid var(--ink);background:var(--surface);width:30px;height:30px;color:var(--ink);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:700;display:flex;box-shadow:2px 2px #33263f99}.stage-marker-badge--claimed{background:var(--ink-soft);color:var(--surface)}.admin-editor-screen{text-align:center;max-width:720px;margin:0 auto;padding:24px 20px 60px}.admin-editor-error,.admin-editor-loading{text-align:center;color:var(--surface);padding:40px;font-weight:700}.admin-editor-place-toggle{background:var(--accent-3);color:#fff;border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:999px;margin-bottom:10px;padding:8px 18px;font-weight:700;box-shadow:3px 3px #33263f99}.admin-editor-place-toggle--active{background:var(--accent)}.admin-editor-hint{color:var(--surface);margin:0 0 10px;font-weight:700}.admin-marker-popover{width:230px}.admin-claims-list{flex-direction:column;gap:4px;margin:0 0 10px;padding:0;font-size:13px;list-style:none;display:flex}.admin-claims-list li{align-items:center;gap:6px;display:flex}.admin-claims-empty{color:var(--ink-soft)}.admin-inline-form{flex-direction:column;gap:8px;display:flex}.admin-inline-form label{font-size:13px;font-weight:700}.admin-inline-form input,.admin-inline-form select{border:2px solid var(--ink);font:inherit;border-radius:10px;padding:6px 10px}.admin-claimcontrol-prompt{margin:0;font-weight:700}.admin-form-actions{justify-content:flex-end;gap:8px;display:flex}.admin-form-actions button{border:2px solid var(--ink);cursor:pointer;background:var(--surface-2);border-radius:999px;padding:6px 14px;font-weight:700}.admin-form-error{color:var(--accent);margin:0;font-size:13px;font-weight:700}.admin-place-form{background:var(--surface);border:var(--border-weight) solid var(--ink);text-align:left;z-index:5;border-radius:16px;flex-direction:column;gap:8px;width:200px;padding:14px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:5px 5px #33263f99}.admin-place-form label{font-size:13px;font-weight:700}.admin-place-form input{border:2px solid var(--ink);font:inherit;border-radius:10px;padding:6px 10px}.family-admin-screen{max-width:700px;margin:0 auto;padding:10px 20px 60px}.family-admin-error,.family-admin-loading{text-align:center;color:var(--surface);padding:40px;font-weight:700}.family-admin-table{border-collapse:collapse;background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);width:100%;overflow:hidden;box-shadow:6px 6px #33263f99}.family-admin-table th,.family-admin-table td{text-align:left;border-bottom:2px solid var(--surface-2);vertical-align:middle;padding:10px 12px}.family-admin-table th{background:var(--surface-2);font-weight:700}.family-admin-table tr:last-child td{border-bottom:none}.family-admin-avatar{color:#fff;border:2px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin-right:8px;font-size:13px;font-weight:700;display:inline-flex}.family-admin-locked{color:var(--accent);font-weight:700}.family-admin-ok{color:var(--accent-2);font-weight:700}.family-admin-reset-btn{border:2px solid var(--ink);background:var(--accent-3);color:#fff;cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:700}.family-admin-reset-btn:disabled{opacity:.6;cursor:default}.master-list-screen{max-width:900px;margin:0 auto;padding:10px 20px 60px;overflow-x:auto}.master-list-error,.master-list-loading{text-align:center;color:var(--surface);padding:40px;font-weight:700}.master-list-table{border-collapse:collapse;background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);width:100%;overflow:hidden;box-shadow:6px 6px #33263f99}.master-list-table th,.master-list-table td{text-align:left;border-bottom:2px solid var(--surface-2);vertical-align:top;padding:10px 12px}.master-list-table th{background:var(--surface-2);font-weight:700}.master-list-table tr:last-child td{border-bottom:none}.master-list-empty{color:var(--ink-soft)}.master-list-claims{flex-direction:column;gap:4px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.master-list-claims li{align-items:center;gap:6px;display:flex}.master-list-claimed{color:var(--ink-soft);font-weight:700}.master-list-open{color:var(--accent-2);font-weight:700}.master-list-input,.master-list-textarea{border:2px solid var(--ink);width:100%;min-width:140px;font:inherit;box-sizing:border-box;resize:vertical;border-radius:10px;padding:6px 10px}.master-list-edit-btn{border:2px solid var(--ink);background:var(--accent-3);color:#fff;cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 14px;font-weight:700}.master-list-edit-actions{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.master-list-edit-actions button{border:2px solid var(--ink);cursor:pointer;background:var(--surface-2);white-space:nowrap;border-radius:999px;padding:6px 14px;font-weight:700}.master-list-error-inline{color:var(--accent);margin:0;font-size:13px;font-weight:700}.admin-shell-header{justify-content:space-between;align-items:center;max-width:900px;margin:0 auto;padding:20px 20px 0;display:flex}.admin-shell-header h1{color:var(--surface);text-shadow:1px 1px #33263f99;font-size:22px}.admin-shell-logout{border:var(--border-weight) solid var(--ink);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:700}.admin-shell-tabs{justify-content:center;gap:10px;max-width:900px;margin:0 auto;padding:14px 20px;display:flex}.admin-shell-tab{border:var(--border-weight) solid var(--ink);background:var(--surface-2);cursor:pointer;border-radius:999px;padding:8px 18px;font-weight:700}.admin-shell-tab--active{background:var(--accent-3);color:#fff;box-shadow:3px 3px #33263f99}.picker-screen{text-align:center;max-width:720px;margin:0 auto;padding:40px 20px}.picker-subtitle{color:var(--ink-soft);margin-bottom:28px}.picker-error{color:var(--accent);font-weight:700}.picker-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;display:grid}.picker-card{background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:10px;padding:18px 10px;transition:transform .1s;display:flex;box-shadow:4px 4px #33263f99}.picker-card:hover,.picker-card:focus-visible{outline:none;transform:translate(-2px,-2px);box-shadow:6px 6px #33263f99}.picker-avatar{color:#fff;border:3px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:26px;font-weight:700;display:flex}.picker-name{color:var(--ink);font-size:18px;font-weight:700}.picker-admin-link{color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border:none;margin:28px auto 0;font-size:13px;text-decoration:underline;display:block}.picker-device-notice{background:var(--surface-2);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);max-width:420px;color:var(--ink-soft);margin:20px auto 0;padding:12px 18px;font-size:14px;box-shadow:3px 3px #33263f99}.browser-screen{text-align:center;max-width:720px;margin:0 auto;padding:30px 20px 60px}.browser-header{justify-content:center;align-items:center;gap:16px;margin-bottom:4px;display:flex}.browser-header h1{margin:0}.browser-logout{border:var(--border-weight) solid var(--ink);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 14px;font-weight:700}.browser-mine-panel{background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);text-align:left;z-index:10;max-width:260px;padding:12px 14px;position:fixed;top:20px;right:20px;box-shadow:5px 5px #33263f99}.browser-mine-panel h2{text-align:center;margin:0 0 8px;font-size:20px}.browser-mine-table{border-collapse:collapse;width:100%;font-size:13px}.browser-mine-table td{border-top:1px solid var(--surface-2);padding:4px 6px}.browser-mine-table tr:first-child td{border-top:none}.browser-mine-table td:last-child{text-align:right;white-space:nowrap;color:var(--ink-soft);font-weight:700}.browser-error,.browser-loading{text-align:center;color:var(--surface);padding:40px;font-weight:700}.browser-banner{background:var(--accent);color:#fff;border-radius:999px;margin:0 0 16px;padding:8px 18px;font-weight:700;display:inline-block;box-shadow:3px 3px #33263f99}.browser-guide-btn{background:var(--surface);border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:10px;margin-bottom:16px;padding:8px 20px 8px 8px;font-size:15px;font-weight:700;display:inline-flex;box-shadow:4px 4px #33263f99}.browser-guide-icon{object-fit:cover;border:2px solid var(--ink);border-radius:50%;width:34px;height:34px}.browser-guide-backdrop{z-index:20;background:#33263fa6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.browser-guide-modal{background:var(--surface-2);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);text-align:left;max-width:420px;max-height:85vh;padding:28px 24px;position:relative;overflow-y:auto;box-shadow:7px 7px #33263f99}.browser-guide-modal p{margin:0 0 14px;font-size:17px;line-height:155%}.browser-guide-modal p:last-child{margin-bottom:0}.browser-guide-list{margin:0 0 14px;padding-left:22px;font-size:17px;line-height:155%}.browser-guide-list li{margin-bottom:4px}.browser-guide-close{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;font-size:22px;position:absolute;top:10px;right:14px}.marker-dots{flex-wrap:wrap;justify-content:center;gap:3px;max-width:60px;margin-top:3px;display:flex;position:absolute;top:100%;left:50%;transform:translate(-50%)}.marker-dot{border:1.5px solid var(--ink);border-radius:50%;width:10px;height:10px}.marker-dot--fight{border-width:2.5px}.marker-popover{background:var(--surface);border:var(--border-weight) solid var(--ink);text-align:left;z-index:5;border-radius:16px;width:220px;padding:14px;position:absolute;top:calc(100% + 18px);left:50%;transform:translate(-50%);box-shadow:5px 5px #33263f99}.marker-popover-close{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;font-size:18px;position:absolute;top:6px;right:10px}.marker-popover-desc{margin:0 0 4px;padding-right:18px;font-weight:700}.marker-popover-history{color:var(--ink-soft);margin:0 0 10px;font-size:13px}.marker-popover-claimed{color:var(--ink-soft);margin:0;font-weight:700}.marker-popover-actions{flex-direction:column;gap:8px;display:flex}.marker-tier-btn{border:2.5px solid var(--ink);cursor:pointer;background:var(--surface-2);border-radius:999px;padding:7px 10px;font-size:14px;font-weight:700;box-shadow:2px 2px #33263f99}.marker-tier-btn--active{color:#fff}.landing-screen{text-align:center;background-image:linear-gradient(#33263f99 0%,#33263f26 40%,#33263fb3 100%),url(/api/background);background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;align-items:center;padding:48px 24px;display:flex;position:fixed;inset:0}.landing-title{color:#fff;text-shadow:3px 3px #33263fcc;max-width:820px;margin:0;font-size:clamp(28px,6vw,48px)}.landing-begin{background:var(--accent);color:#fff;border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:999px;padding:16px 36px;font-size:22px;font-weight:700;transition:transform .1s;box-shadow:5px 5px #33263f99}.landing-begin:hover,.landing-begin:focus-visible{outline:none;transform:translate(-2px,-2px);box-shadow:7px 7px #33263f99}.lockout-screen{text-align:center;background:var(--ink);color:#fff;border-radius:var(--radius);max-width:440px;margin:60px auto;padding:40px 28px;box-shadow:6px 6px #d8b559b3}.lockout-doodle{font-size:70px}.lockout-screen h1{color:#e8bb5e;-webkit-text-stroke:1px var(--ink);font-size:34px}.gate-screen{text-align:center;max-width:480px;margin:0 auto;padding:40px 20px}.gate-card{background:var(--surface);border:var(--border-weight) solid var(--ink);border-radius:var(--radius);text-align:left;flex-direction:column;gap:14px;padding:28px;display:flex;box-shadow:6px 6px #33263f99}.gate-card label{font-size:20px;font-weight:700}.gate-card input{border:var(--border-weight) solid var(--ink);font:18px var(--font-body);border-radius:14px;outline:none;padding:10px 14px}.gate-tries{color:var(--ink-soft);font-size:14px}.gate-submit{background:var(--accent-2);color:#fff;border:var(--border-weight) solid var(--ink);cursor:pointer;border-radius:999px;align-self:center;padding:10px 26px;font-size:18px;font-weight:700;box-shadow:4px 4px #33263f99}.gate-error{color:var(--accent);margin:0;font-weight:700}
