/* Poster composition: deliberate scattered positions, fixed for the year. */
.calendar-page{max-width:none;padding:0 clamp(12px,2.4vw,44px)}
.masthead{height:67px}.rally-layout{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);padding-bottom:0}.briefing{grid-column:1;grid-row:1;padding:15px 0 14px}.briefing h1{font-size:clamp(28px,3vw,44px)}.briefing .kicker{font-size:8px;margin-bottom:5px}.lead{margin-top:7px;font-size:11px}.event-plate{display:none}.pitwall{display:none}.calendar-board{grid-row:2}.board-heading{height:32px;border-top:0}.board-count{display:block;font:10px Arial,sans-serif;letter-spacing:0}.board-heading h2{font-size:12px}.briefing>.action{width:auto;flex-shrink:0;margin:0;font-size:12px;padding:13px 20px}.start-grid{display:block;position:relative;background:#afc0c4 url('/winter-scene.webp') center 58%/cover no-repeat;border:7px solid #fffaf0;outline:1px solid #c6c1ad;border-radius:2px;overflow:hidden;padding:0;box-shadow:0 4px 12px #1c322615;isolation:isolate}
.door,.door[data-locked=true],.door:nth-child(6n)[data-locked=true],.door[data-locked=true]:last-child{position:absolute;left:var(--x);top:var(--y);width:var(--w);height:var(--h);min-width:52px;min-height:49px;transform:translate(-50%,-50%) rotate(var(--tilt));background:#f6f0e3ed;color:#264336;border:1px solid #7b8d76;border-radius:2px;box-shadow:2px 3px 0 #19312535;overflow:visible}
.door:after,.door[data-locked=true]:after{border:1px dashed #54745c88;inset:4px}.door:before,.door:last-child:before{content:'';display:none}
.door:nth-child(3n),.door:nth-child(3n)[data-locked=true]{background:#a3332ced;color:#fff4d8;border-color:#6c3326}
.door:nth-child(4n),.door:nth-child(4n)[data-locked=true]{background:#214b3cef;color:#fff4d8;border-color:#163b2b}
.door:nth-child(3n):after,.door:nth-child(4n):after{border-color:#efdfb980}
.door[data-day="24"],.door[data-day="24"][data-locked=true]{background:#e1c88df5;color:#42361d;border-color:#997532}
.door .num{font-size:clamp(28px,4.4vh,51px);text-shadow:none;letter-spacing:.5px}.door .stage{display:none!important}
.door .mini,.door[data-locked=true] .mini,.door[data-locked=true]:last-child .mini{color:inherit;opacity:.9;font-size:8px;margin-top:3px}
.door-icon,.door[data-locked=true] .door-icon,.door:last-child .door-icon{top:7px;right:7px;width:9px;height:9px;color:inherit;opacity:.8}
.door.today,.door.today[data-locked=false]{border:3px solid #f3cb61;box-shadow:0 0 0 3px #7a4f26,3px 6px 0 #18322344}
.door.today .mini{color:inherit}.door:hover,.door[data-locked=true]:hover,.door.today:hover{transform:translate(-50%,-50%) rotate(0deg) scale(1.08);z-index:3;filter:brightness(1.07)}
.door[data-locked=true]:hover .mini{color:inherit}.door:focus-visible{z-index:4;outline:3px solid white;outline-offset:3px}.door.is-opened .door-icon{opacity:1}.board-footer{height:28px}.page-footer{height:28px}.privacy-banner{padding:4px 0;font-size:9px}.privacy-banner button{font-size:19px;height:24px}.rally-layout .key{font-size:9px}.masthead .text-button{font-size:11px}
.door:nth-child(1){--x:7.7%;--y:13%;--w:8.2%;--h:17%;--tilt:-2deg}
.door:nth-child(2){--x:24%;--y:8.8%;--w:7.4%;--h:13.5%;--tilt:1.5deg}
.door:nth-child(3){--x:40.5%;--y:17%;--w:9.2%;--h:15%;--tilt:-1deg}
.door:nth-child(4){--x:57%;--y:10.5%;--w:7.8%;--h:17%;--tilt:2deg}
.door:nth-child(5){--x:74%;--y:16.5%;--w:8.7%;--h:14%;--tilt:-1.5deg}
.door:nth-child(6){--x:91.5%;--y:10%;--w:8.4%;--h:18%;--tilt:1deg}
.door:nth-child(7){--x:10%;--y:36%;--w:7.4%;--h:13.5%;--tilt:1.5deg}
.door:nth-child(8){--x:28%;--y:32%;--w:9.2%;--h:15%;--tilt:-1deg}
.door:nth-child(9){--x:45%;--y:41%;--w:7.8%;--h:17%;--tilt:2deg}
.door:nth-child(10){--x:62%;--y:33%;--w:8.7%;--h:14%;--tilt:-1.5deg}
.door:nth-child(11){--x:78%;--y:40%;--w:8.4%;--h:18%;--tilt:1deg}
.door:nth-child(12){--x:92%;--y:34%;--w:8.2%;--h:17%;--tilt:-2deg}
.door:nth-child(13){--x:6.5%;--y:61%;--w:9.2%;--h:15%;--tilt:-1deg}
.door:nth-child(14){--x:22%;--y:58%;--w:7.8%;--h:17%;--tilt:2deg}
.door:nth-child(15){--x:39%;--y:65%;--w:8.7%;--h:14%;--tilt:-1.5deg}
.door:nth-child(16){--x:55%;--y:56%;--w:8.4%;--h:18%;--tilt:1deg}
.door:nth-child(17){--x:73%;--y:65%;--w:8.2%;--h:17%;--tilt:-2deg}
.door:nth-child(18){--x:90%;--y:58%;--w:7.4%;--h:13.5%;--tilt:1.5deg}
.door:nth-child(19){--x:11%;--y:86%;--w:7.8%;--h:17%;--tilt:2deg}
.door:nth-child(20){--x:29%;--y:89%;--w:8.7%;--h:14%;--tilt:-1.5deg}
.door:nth-child(21){--x:46%;--y:85%;--w:8.4%;--h:18%;--tilt:1deg}
.door:nth-child(22){--x:63%;--y:90%;--w:8.2%;--h:17%;--tilt:-2deg}
.door:nth-child(23){--x:79%;--y:85%;--w:7.4%;--h:13.5%;--tilt:1.5deg}
.door:nth-child(24){--x:93%;--y:88%;--w:9.2%;--h:15%;--tilt:-1deg}
@media(max-width:800px){.masthead{height:56px}.briefing{padding:12px 0 9px}.briefing h1{font-size:clamp(26px,5vw,36px)}.briefing .lead{font-size:10px;max-width:330px;margin-top:5px}.briefing .kicker{font-size:7px}.board-heading{height:29px;gap:10px}.board-count{font-size:8px;max-width:140px;text-align:right}.board-heading .key{display:none}.briefing>.action{padding:9px;font-size:9px;max-width:112px;line-height:1.4}.start-grid{border:4px solid #fffaf0;background-position:54% center}.door,.door[data-locked=true],.door:nth-child(6n)[data-locked=true],.door[data-locked=true]:last-child{width:var(--mw);height:var(--mh);left:var(--mx);top:var(--my);min-width:44px;min-height:44px}.door .num{font-size:clamp(27px,4.5vh,40px)}.door .mini{font-size:7px;margin-top:2px}.door-icon,.door[data-locked=true] .door-icon{width:8px;height:8px;top:5px;right:5px}.door:after{inset:3px}.board-footer{height:26px;font-size:8px}.page-footer{height:26px}.privacy-banner{font-size:8px;gap:7px;line-height:1.4}.briefing .kicker{max-width:240px}.privacy-banner button{height:24px}}
.door:nth-child(1){--mx:13%;--my:8.5%;--mw:18%;--mh:12%}
.door:nth-child(2){--mx:38%;--my:10%;--mw:19%;--mh:12.5%}
.door:nth-child(3){--mx:63%;--my:7%;--mw:17.5%;--mh:11.5%}
.door:nth-child(4){--mx:87%;--my:10%;--mw:18.5%;--mh:12%}
.door:nth-child(5){--mx:13%;--my:25%;--mw:19%;--mh:12.5%}
.door:nth-child(6){--mx:38%;--my:24%;--mw:17.5%;--mh:11.5%}
.door:nth-child(7){--mx:63%;--my:27%;--mw:18.5%;--mh:12%}
.door:nth-child(8){--mx:87%;--my:25%;--mw:18%;--mh:12%}
.door:nth-child(9){--mx:13%;--my:41%;--mw:17.5%;--mh:11.5%}
.door:nth-child(10){--mx:38%;--my:43%;--mw:18.5%;--mh:12%}
.door:nth-child(11){--mx:63%;--my:40%;--mw:18%;--mh:12%}
.door:nth-child(12){--mx:87%;--my:43%;--mw:19%;--mh:12.5%}
.door:nth-child(13){--mx:13%;--my:59%;--mw:18.5%;--mh:12%}
.door:nth-child(14){--mx:38%;--my:57%;--mw:18%;--mh:12%}
.door:nth-child(15){--mx:63%;--my:60%;--mw:19%;--mh:12.5%}
.door:nth-child(16){--mx:87%;--my:58%;--mw:17.5%;--mh:11.5%}
.door:nth-child(17){--mx:13%;--my:75%;--mw:18%;--mh:12%}
.door:nth-child(18){--mx:38%;--my:77%;--mw:19%;--mh:12.5%}
.door:nth-child(19){--mx:63%;--my:74%;--mw:17.5%;--mh:11.5%}
.door:nth-child(20){--mx:87%;--my:77%;--mw:18.5%;--mh:12%}
.door:nth-child(21){--mx:13%;--my:92%;--mw:19%;--mh:12.5%}
.door:nth-child(22){--mx:38%;--my:91%;--mw:17.5%;--mh:11.5%}
.door:nth-child(23){--mx:63%;--my:92%;--mw:18.5%;--mh:12%}
.door:nth-child(24){--mx:87%;--my:91%;--mw:18%;--mh:12%}
/* Datorskärmar upp till 900 px höga: kompakt rubrik så att kalendern får mer av skärmen. */
@media(max-height:900px) and (min-width:801px){.masthead{height:54px}.briefing{padding:8px 0 6px;align-items:center}.briefing .kicker,.briefing .lead{display:none}.briefing h1{font-size:clamp(26px,2.4vw,34px)}.board-heading{height:26px}.board-footer{height:24px}.page-footer{height:24px}.start-grid{border-width:5px}}
@media(max-height:620px) and (min-width:801px){.masthead{height:48px}.briefing{padding:9px 0 7px}.briefing h1{font-size:30px}.briefing .lead,.briefing .kicker{display:none}.board-heading{height:26px}.board-footer{height:24px}.page-footer{height:24px}.privacy-banner{font-size:8px;padding:2px 0}.door .num{font-size:28px}.door .mini{display:none}.door,.door[data-locked=true]{min-height:38px}}
@media(max-height:600px) and (max-width:800px){.briefing{padding:8px 0}.briefing .kicker{display:none}.briefing .lead{font-size:9px}.masthead{height:47px}.door .num{font-size:25px}.door .mini{display:none}.door,.door[data-locked=true]{min-height:40px}.board-footer{height:24px}}

.start-grid{perspective:1000px}.door.opening,.door.opening:hover{animation:hatch-open .56s ease-in forwards;pointer-events:none;transform-origin:0 50%}.studio-enter #paint{animation:paper-zoom .5s cubic-bezier(.2,.75,.25,1)}
@keyframes hatch-open{0%{transform:translate(-50%,-50%) rotate(var(--tilt)) rotateY(0)}65%{opacity:1}100%{transform:translate(-50%,-50%) rotate(var(--tilt)) rotateY(-115deg);opacity:.15}}
@keyframes paper-zoom{from{opacity:0;transform:scale(.55)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.door.opening,.studio-enter #paint{animation:none!important}}

.studio.studio-preparing{visibility:hidden}.studio.studio-preparing::backdrop{background:transparent;backdrop-filter:none}
.reveal-stage{position:fixed;inset:0;max-width:none;max-height:none;width:100%;height:100svh;margin:0;padding:0;border:0;background:transparent;overflow:hidden;box-shadow:none;outline:0}
.reveal-stage::backdrop{background:#0c241f44;backdrop-filter:none}
.reveal-paper{position:fixed;background:white;border:1px solid #f9f7ed;transform-origin:center;overflow:hidden;will-change:width,height,left,top;box-shadow:0 4px 12px #11241e40}
.reveal-paper img{display:block;width:100%;height:100%;object-fit:fill}
.reveal-cover{position:fixed;display:flex;align-items:center;justify-content:center;font:clamp(28px,4.4vh,51px) Impact,'Arial Narrow',Arial,sans-serif;border:1px solid #8e947b;border-radius:2px;transform-origin:left center;backface-visibility:visible;will-change:transform}
.reveal-cover:after{content:'';position:absolute;inset:4px;border:1px dashed currentColor;opacity:.5}
.skip-reveal{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);padding:10px 17px;background:#fffaf0ed;border:1px solid #a6a58d;color:#274536;font:11px Arial,sans-serif;border-radius:3px;white-space:nowrap}
.door.anticipating{filter:brightness(1.06);box-shadow:0 0 0 2px #e2c989,2px 3px 0 #19312535}
@media(prefers-reduced-motion:reduce){.reveal-stage{display:none}}

/* Keep 44px targets separate on short portrait phone viewports. */
@media(max-width:800px){
.door:nth-child(1){--my:8.1%;--mx:13%;--tilt:-0.6deg}
.door:nth-child(2){--my:8.9%;--mx:38%;--tilt:0.5deg}
.door:nth-child(3){--my:8.3%;--mx:63%;--tilt:-0.3deg}
.door:nth-child(4){--my:8.8%;--mx:87%;--tilt:0.7deg}
.door:nth-child(5){--my:25.5%;--mx:12%;--tilt:0.5deg}
.door:nth-child(6){--my:24.9%;--mx:37%;--tilt:-0.3deg}
.door:nth-child(7){--my:25.4%;--mx:64%;--tilt:0.7deg}
.door:nth-child(8){--my:24.7%;--mx:88%;--tilt:-0.6deg}
.door:nth-child(9){--my:41.5%;--mx:14%;--tilt:-0.3deg}
.door:nth-child(10){--my:42.0%;--mx:39%;--tilt:0.7deg}
.door:nth-child(11){--my:41.3%;--mx:62%;--tilt:-0.6deg}
.door:nth-child(12){--my:42.1%;--mx:87%;--tilt:0.5deg}
.door:nth-child(13){--my:58.6%;--mx:12%;--tilt:0.7deg}
.door:nth-child(14){--my:57.9%;--mx:38%;--tilt:-0.6deg}
.door:nth-child(15){--my:58.7%;--mx:64%;--tilt:0.5deg}
.door:nth-child(16){--my:58.1%;--mx:88%;--tilt:-0.3deg}
.door:nth-child(17){--my:74.5%;--mx:13%;--tilt:-0.6deg}
.door:nth-child(18){--my:75.3%;--mx:37%;--tilt:0.5deg}
.door:nth-child(19){--my:74.7%;--mx:62%;--tilt:-0.3deg}
.door:nth-child(20){--my:75.2%;--mx:87%;--tilt:0.7deg}
.door:nth-child(21){--my:91.9%;--mx:14%;--tilt:0.5deg}
.door:nth-child(22){--my:91.3%;--mx:39%;--tilt:-0.3deg}
.door:nth-child(23){--my:91.8%;--mx:64%;--tilt:0.7deg}
.door:nth-child(24){--my:91.1%;--mx:88%;--tilt:-0.6deg}
}

/* Liggande mobil: alla 24 luckor syns utan att man behöver scrolla. */
@media(orientation:landscape) and (max-height:500px){.calendar-page{min-height:0}.masthead{height:48px}.briefing{padding:4px 0;align-items:center}.briefing .action{padding:6px 10px;font-size:10px;min-height:0}.privacy-banner button{font-size:16px;line-height:1;height:20px}.briefing h1{font-size:22px}.briefing .lead,.briefing .kicker{display:none}.board-heading{height:22px}.board-footer{display:none}.page-footer{height:20px}.privacy-banner{padding:1px 0;font-size:8px}#doors .door{min-height:32px;min-width:44px}#doors .door .num{font-size:21px}#doors .door .mini{display:none}#doors .door-icon{top:4px;right:4px}}
