@import url('/lab/studio.css');
body{overflow:auto;min-height:100dvh;background:#101113;color:#eeeae3}a{color:inherit;text-decoration:none}.topbar{position:relative}.event-nav{margin-left:auto;display:flex;align-items:center;gap:28px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.event-nav a{color:#a4a7aa}.event-nav a:hover,.event-nav a[aria-current]{color:#e3e4e7}.entry{min-height:calc(100dvh - 74px);display:grid;place-items:center;background:radial-gradient(ellipse at 50% 30%,#2b30303b,transparent 58%);position:relative;padding:50px 24px 85px}.entry:before{content:'';position:absolute;inset:35px;border:1px solid #ffffff09;pointer-events:none}.entry-inner{width:min(460px,100%);text-align:center}.bliss-mark{width:280px;height:72px;object-fit:contain;filter:invert(1);mix-blend-mode:screen;margin:0 auto 40px}.entry h1{font-size:clamp(34px,4.6vw,66px);font-weight:500;letter-spacing:-.055em;line-height:1.05;margin:0 -50px 20px}.entry .subline{font-size:16px;color:#a8aaa5;margin-bottom:48px}.entry form{text-align:left;max-width:320px;margin:auto}label.eyebrow{display:block;margin-bottom:12px}.event-input{width:100%;padding:15px 16px;border-radius:10px;border:1px solid #ffffff24;background:#ffffff05;color:white;font:inherit;font-size:16px}.cta{display:block;width:100%;padding:16px;margin-top:14px;border-radius:10px;background:#e3e4e7;color:#182017;font-weight:650;letter-spacing:.13em}.cta:hover:not(:disabled){background:#34363c;color:#172111}.event-feedback{min-height:22px;color:#bdc5b2;font-size:13px;line-height:1.5}.entry-footer{position:absolute;bottom:27px;left:50px;right:50px;display:flex;justify-content:space-between;font-size:10px;color:#757973;letter-spacing:.16em}.admin-shell{max-width:1220px;margin:70px auto;padding:0 36px}.admin-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:32px}.admin-heading h1{font-size:42px;letter-spacing:-.04em;font-weight:500;margin:10px 0}.admin-tabs{display:flex;gap:8px;border-bottom:1px solid #ffffff16;padding-bottom:16px;margin-bottom:28px}.admin-tabs button{padding:12px 22px;border-radius:24px;color:#aaa}.admin-tabs button.active{background:#e3e4e7;color:#182017}.control-card{border:1px solid #ffffff18;border-radius:20px;padding:28px;background:#ffffff03;margin-bottom:20px}.control-card h2{font-size:20px;font-weight:500;margin-top:0}.admin-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-actions button,.admin-actions a,.small-button{border:1px solid #ffffff25;border-radius:8px;padding:11px 16px;display:inline-block}.player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.submission{border:1px solid #ffffff18;border-radius:16px;overflow:hidden;background:#ffffff03;padding:16px}.submission img{width:100%;height:180px;object-fit:contain;background:radial-gradient(#323631,#131615);border-radius:9px}.submission h3{font-size:19px;margin:18px 0 5px;overflow-wrap:anywhere}.submission p{color:#a4aaa0;font-size:12px;overflow-wrap:anywhere}.submission .admin-actions button{font-size:11px;padding:9px}.submission[data-visible=false]{opacity:.55}.login{max-width:370px;margin:100px auto;padding:20px}.login h1{font-size:30px}.wall-body{overflow:hidden}.wall-body .topbar{position:absolute;z-index:2;width:100%;background:transparent;border:0}.wall-stage{position:absolute;inset:74px 0 50px;background-size:cover;background-position:center}.wall-stage canvas{width:100%;height:100%;display:block}.wall-labels{position:absolute;inset:0;pointer-events:none}.wall-label{position:absolute;text-align:center;transform:translate(-50%,0);max-width:24%;overflow-wrap:anywhere;text-shadow:0 2px 15px black}.wall-label strong{font-size:14px;font-weight:500}.wall-label small{display:block;color:#b9bdb5;font-size:11px;margin-top:5px}.wall-empty{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.wall-empty h1{font-weight:450;font-size:50px;letter-spacing:-.05em;margin:0}.wall-empty p{color:#a5aaa0}.wall-footer{position:absolute;bottom:18px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:center;color:#afb4aa;font-size:11px;letter-spacing:.08em}.winner-label{position:absolute;top:5%;width:100%;text-align:center;color:#e3e4e7;letter-spacing:.5em;font-size:14px;pointer-events:none}.wall-label.winner strong{font-size:26px}.wall-label.winner small{font-size:16px}.submit-dialog{width:min(440px,92vw);padding:30px;border:1px solid #ffffff24;border-radius:20px;color:#f2f0eb;background:#1b1e1cf2;backdrop-filter:blur(30px)}.submit-dialog::backdrop{background:#000a;backdrop-filter:blur(8px)}.submit-dialog h2{font-size:30px;font-weight:500;letter-spacing:-.04em}.submit-dialog .helper{line-height:1.6}.submit-dialog .event-input{margin:12px 0}.mode-player #open-save{background:#e3e4e7;color:#182017}.mode-player .stage-caption h1{font-size:32px}.mode-player .project-title>span:last-child{color:#c1c3c9}.admin-back{font-size:11px;margin-right:18px;color:#a9b49f}.personal-list .saved-point{padding:15px 0}.connection{max-width:65%}button,a,input{touch-action:manipulation}@media(max-width:800px){.player-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-nav{gap:16px}.event-nav .optional{display:none}.admin-shell{padding:0 20px}.entry h1{margin-left:0;margin-right:0}.project-title{display:none}.entry-footer{left:25px;right:25px}.wall-label strong{font-size:11px}.wall-label small{font-size:10px}}

body.mode-player,body.mode-admin{overflow:hidden}body.mode-player .topbar,body.mode-admin .topbar{position:absolute}body.mode-player .section-tabs,body.mode-admin .section-tabs{padding:6px;background:#ffffff03;border-radius:12px;margin:16px 18px 0}body.mode-player .section-tabs button,body.mode-admin .section-tabs button{border-radius:8px}body.mode-player .panel-footer,body.mode-admin .panel-footer{background:#12151380}.mode-player .stage-caption{opacity:.65}.wall-label.winner{max-width:70%}

.admin-back{margin-left:22px;white-space:nowrap}

.cta,.mode-player #open-save,.admin-tabs button.active{background:linear-gradient(145deg,#ffffff18,#ffffff03),rgba(7,8,11,.82);color:#f5f5f7;border:1px solid #ffffff30;box-shadow:inset 0 1px 0 #ffffff16,0 8px 28px #0004;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.cta:hover:not(:disabled),.mode-player #open-save:hover:not(:disabled){background:#292b30;color:white}
.event-nav a:hover,.event-nav a[aria-current],.winner-label{color:#eeeef2}.event-feedback,.admin-back{color:#b9bbc2}
.wall-stage{inset:64px 0 32px}.wall-label strong{font-size:11px}.wall-label small{font-size:9px;margin-top:3px}.wall-label.winner strong{font-size:17px}.wall-label.winner small{font-size:11px}.wall-footer{font-size:9px;bottom:10px}.winner-label{top:1%;font-size:11px}
@media(max-width:700px){.mode-player .topbar .admin-back{margin-left:auto;margin-right:10px;font-size:10px}.mode-player #open-save{margin-left:0;min-height:44px}.wall-label strong{font-size:10px}.wall-label small{font-size:9px}.wall-stage{inset:62px 0 32px}}

.bliss-mark{filter:none;mix-blend-mode:normal;height:auto;max-width:80%}

.board-picker{max-width:760px;margin:28px auto;padding:20px;text-align:center}.board-picker h1{font-size:clamp(28px,6vw,46px);margin:12px}.board-picker #model-preview{height:45dvh;min-height:230px;max-height:480px;background:radial-gradient(ellipse at center,#282c30,transparent 70%)}.board-picker canvas{display:block;width:100%;height:100%}.board-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:18px 0}.board-choices button{padding:14px 20px;border:1px solid #ffffff35;border-radius:16px;background:#101114;color:#ddd}.board-choices button.active{background:#ffffff20;border-color:#fff;color:#fff}.board-picker .cta{width:min(100%,420px)}.board-picker>a{display:block;margin:18px;color:#aaa}.model-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid #ffffff22}.model-row input{flex:1;min-width:150px}.model-upload{display:grid;gap:14px}.admin-tabs{flex-wrap:wrap}

/* Clip the single-board carousel at the projection edges. */
.wall-stage,.wall-labels{overflow:hidden}.wall-label{width:90%;max-width:90%;will-change:left}.wall-label strong{font-size:16px}.wall-label small{font-size:12px}
