:root{color-scheme:light;--paper:#f3f0e6;--ink:#242722;--red:#e64d31}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:3px solid #164ad8;outline-offset:6px}.skip{position:absolute;top:-100px}.skip:focus{top:10px;background:white;padding:12px;z-index:9}header,main,footer{max-width:1440px;margin:auto;padding-left:52px;padding-right:52px}header{height:119px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #2427223b}.brand{font-size:25px;font-weight:950;line-height:.8;letter-spacing:-1.5px;position:relative}.brand span{font-size:12px;position:absolute;right:-14px;top:0}.header-label,.eyebrow,.number,.tag,.section-label,.open-note,.intro-aside p{font-family:monospace;letter-spacing:.08em;font-size:11px}.header-label{margin-left:auto;margin-right:90px}.nav{font-size:13px;font-weight:bold}.nav span{margin-left:20px;font-size:24px}.intro{padding:66px 0 55px;display:flex;justify-content:space-between;gap:40px}.eyebrow{font-weight:bold}.eyebrow span{display:inline-block;width:8px;height:8px;background:var(--red);border-radius:50%;margin-right:7px}h1{font-size:clamp(64px,7.6vw,108px);line-height:.94;letter-spacing:-.075em;margin:30px 0 26px;font-weight:800;position:relative}h1 em{font-family:Georgia,serif;font-weight:normal;letter-spacing:-.07em;color:var(--red)}.asterisk{display:inline-block;color:var(--red);font-size:108px;position:absolute;margin:0 0 0 42px;transform:rotate(10deg)}.lede{font-size:17px;line-height:1.6;color:#62645b}.intro-aside{align-self:center;padding:0 35px;text-align:center}.stamp{width:138px;height:138px;border:2px solid var(--red);border-radius:50%;display:flex;flex-direction:column;justify-content:center;color:var(--red);font-size:25px;line-height:.9;letter-spacing:-1px;font-weight:900;transform:rotate(13deg);margin:0 auto 24px}.stamp span{font-size:38px;margin-top:5px}#random{border:0;background:var(--ink);color:var(--paper);border-radius:2px;padding:17px 22px;font-size:14px;min-width:210px}#random span{margin-left:35px}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){#random:hover{background:var(--red)}}.intro-aside p{font-size:10px;letter-spacing:0;color:#74766c}.section-label{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--ink);padding:18px 0 24px}.section-label h2{font:inherit;font-weight:bold;margin:0}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.project{--accent:#9b3536;display:block;min-width:0;background:#faf8f1;border:1px solid #262a2426;border-radius:14px;overflow:hidden;transition:box-shadow .25s,transform .25s}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project:hover{transform:translateY(-4px);box-shadow:0 12px 28px #25282014}}.art{height:360px;position:relative;overflow:hidden;isolation:isolate;border-bottom:1px solid #262a241a}.tag{position:absolute;top:20px;left:22px;font-size:10px;letter-spacing:.12em;z-index:5;display:flex;align-items:center;gap:7px}.tag:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.art-note{position:absolute;left:12px;right:12px;bottom:18px;text-align:center;font:9px monospace;letter-spacing:.16em;z-index:5}.info{padding:25px 27px 27px;display:flex;gap:18px;align-items:center;justify-content:space-between;min-height:147px}.number{font-size:9px;letter-spacing:.08em;color:#737469}.info h3{font-size:28px;letter-spacing:-1px;margin:8px 0 7px;font-weight:750}.info p{font-size:13px;line-height:1.5;margin:0;color:#686a60;max-width:340px}.launch{display:flex;align-items:center;gap:17px;white-space:nowrap;border:1px solid #30372b33;border-radius:50px;padding:11px 15px;font-size:12px;transition:background .2s,color .2s;flex-shrink:0}.launch b{font-size:19px;font-weight:400}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.project:hover .launch{background:var(--ink);color:var(--paper);border-color:var(--ink)}}.candy-art{background:#f4d7d5;color:#9b3536}.candy-art:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,#fff3 0 29px,transparent 29px 58px);mask-image:linear-gradient(transparent,#000)}.socker-logo{position:absolute;top:42px;left:50%;height:205px;width:270px;object-fit:contain;transform:translateX(-50%) rotate(-5deg);mix-blend-mode:multiply}.sweet-row{position:absolute;left:50%;bottom:42px;display:flex;gap:10px;transform:translateX(-50%)}.sweet-row img{height:68px;width:68px;object-fit:cover;border-radius:0;box-shadow:0 4px 0 #ad827e44,0 9px 15px #783d3520;transform:rotate(-9deg)}.sweet-row img:nth-child(2){transform:translateY(-5px) rotate(3deg)}.sweet-row img:nth-child(3){transform:rotate(12deg)}.kapow{--accent:#222e59}.kapow-art{background:#f3c947;color:#263350}.kapow-art:before{content:'';position:absolute;width:330px;height:330px;left:50%;top:22px;transform:translateX(-50%);border:1px solid #bc7a1944;border-radius:50%;box-shadow:0 0 0 22px #f3c947,0 0 0 23px #bc7a1933,0 0 0 45px #f3c947,0 0 0 46px #bc7a1922}.cards{position:absolute;left:50%;top:64px;width:310px;height:240px;transform:translateX(-50%)}.cards img{position:absolute;width:138px;height:213px;object-fit:contain;filter:drop-shadow(1px 9px 5px #47381335);transition:transform .3s}.cards img:nth-child(1){left:4px;top:19px;transform:rotate(-19deg)}.cards img:nth-child(2){left:89px;top:0;z-index:2;transform:rotate(-2deg)}.cards img:nth-child(3){right:0;top:22px;transform:rotate(18deg);z-index:3}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.kapow:hover .cards img:first-child{transform:rotate(-23deg) translateX(-5px)}}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.kapow:hover .cards img:last-child{transform:rotate(23deg) translateX(5px)}}.coin-art{background:#b9d5ca;color:#294e45}.coin-title{position:absolute;top:69px;left:0;right:0;text-align:center;font-size:65px;font-weight:900;letter-spacing:-5px;line-height:1}.coin-subtitle{position:absolute;top:130px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-style:italic;font-size:16px}.coins{position:absolute;left:50%;top:188px;transform:translateX(-50%);display:flex;align-items:center;gap:2px}.coins img{width:105px;height:105px;filter:drop-shadow(1px 9px 3px #254e4530);transform:rotate(-12deg)}.coins img:nth-child(2){transform:translateY(-8px) rotate(5deg)}.coins img:nth-child(3){transform:rotate(15deg)}.house-art{background:#294b43;color:#e8e6c9}.house-art:before{content:'';position:absolute;inset:12px;border:1px solid #dfd8ac44;border-radius:3px}.house-word{position:absolute;top:62px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-size:32px;letter-spacing:1px}.house-word i{font-size:23px;letter-spacing:0}.house-cards{position:absolute;top:118px;left:50%;width:260px;height:194px;transform:translateX(-50%)}.house-cards img{position:absolute;width:102px;height:178px;object-fit:contain;border-radius:5px;filter:drop-shadow(2px 5px 4px #061f2755)}.house-cards img:nth-child(1){left:5px;top:8px;transform:rotate(-16deg)}.house-cards img:nth-child(2){left:79px;top:0;transform:rotate(-2deg)}.house-cards img:nth-child(3){right:3px;top:10px;transform:rotate(14deg)}.lucky-art{background:#c7c6e6;color:#363358}.lucky-word{position:absolute;top:57px;left:0;right:0;text-align:center;font-size:47px;letter-spacing:-2px;font-weight:850}.lucky-word span{display:block;font:9px monospace;letter-spacing:.16em;margin-top:12px}.dice{position:absolute;top:179px;left:calc(50% - 158px);width:106px;height:106px;border-radius:20px;background:#fcf6e4;box-shadow:5px 7px 0 #a8a1bc,8px 14px 15px #40396920;transform:rotate(-17deg);padding:17px;display:grid;grid-template-columns:repeat(3,1fr);z-index:2}.dice b{font-size:21px;display:grid;place-items:center;line-height:1}.flip{position:absolute;top:210px;left:calc(50% - 38px);width:92px;height:92px;border-radius:50%;border:6px double #a87937;background:#ebc77a;color:#94652c;display:grid;place-items:center;font-size:48px;box-shadow:3px 4px #a87937;transform:rotate(15deg);z-index:3}.d20{position:absolute;left:calc(50% + 42px);top:171px;width:115px;height:115px;background:#5a5483;clip-path:polygon(50% 0,95% 25%,95% 76%,50% 100%,5% 76%,5% 25%);transform:rotate(12deg)}.d20:before{content:'';position:absolute;inset:15px;background:linear-gradient(60deg,transparent 49%,#bbb4e0 50%,transparent 51%),linear-gradient(-60deg,transparent 49%,#bbb4e0 50%,transparent 51%);border:1px solid #bbb4e0;transform:rotate(30deg)}.d20 span{position:absolute;left:37px;top:43px;color:#fff8e5;font-size:30px;line-height:1;z-index:2}.delivery-art{background:#e2dcc8;color:#454c3c}.delivery-art:before{content:'';position:absolute;inset:26px 80px;border:1px dashed #8f957866;border-radius:50%;transform:rotate(-15deg)}.delivery-art .artwork>img{position:absolute;left:50%;top:53px;transform:translateX(-50%);width:235px;height:250px;object-fit:contain;mix-blend-mode:multiply}.open-note{font-size:10px;color:#7a7b71;margin:34px 0 50px}footer{border-top:1px solid #a5a69c;padding-top:28px;padding-bottom:30px;display:flex;justify-content:space-between;font-size:12px}footer strong{letter-spacing:-.5px}footer span{color:#77796d}@media(max-width:1000px){header,main,footer{padding-left:28px;padding-right:28px}.header-label{display:none}.asterisk{font-size:80px;margin-left:20px}.intro-aside{padding:0}.intro{gap:25px}h1{font-size:78px}.intro-aside .stamp{width:110px;height:110px}.info{padding:21px;align-items:flex-start}.launch{font-size:0;gap:0;padding:10px 13px;margin-top:20px}.launch b{font-size:20px}.info h3{font-size:26px}.grid{gap:24px}.coin-title{font-size:59px}.house-word{font-size:28px}.house-word i{font-size:20px}}@media(max-width:700px){header,main,footer{padding-left:20px;padding-right:20px}header{height:87px}.brand{font-size:22px}.intro{padding:37px 0 29px;display:block}h1{font-size:clamp(43px,10.7vw,65px);margin-top:26px}.asterisk{font-size:62px;margin:5px 0 0 19px}.lede{font-size:15px}.intro-aside{display:flex;align-items:center;gap:18px;text-align:left;margin-top:25px}.stamp{display:none}#random{min-width:165px;padding:15px 17px}#random span{margin-left:15px}.intro-aside p{max-width:100px;line-height:1.5}.grid{grid-template-columns:1fr;gap:25px}.art{height:340px}.tag{top:18px;left:19px;font-size:9px}.info{min-height:144px;padding:21px}.info h3{font-size:27px}.info p{font-size:13px}.socker-logo{top:33px;height:190px}.sweet-row{bottom:43px}.cards{top:54px}.coin-title{top:62px}.coin-subtitle{top:120px}.coins{top:175px}.coins img{width:94px;height:94px}.house-word{top:57px;font-size:27px}.house-cards{top:106px}.lucky-word{top:57px}.dice{left:calc(50% - 143px);width:95px;height:95px;top:175px;padding:15px}.d20{left:calc(50% + 32px);top:166px;width:105px;height:105px}.d20 span{left:32px;top:40px;font-size:27px}.flip{top:206px;width:82px;height:82px;font-size:43px}.delivery-art .artwork>img{height:235px;top:48px}.open-note{line-height:1.7}.section-label{font-size:10px}footer{flex-wrap:wrap;gap:20px;font-size:11px}footer span{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project,.cards img,.launch{transition:none}}
.candy-art{background:#f4e6bd}.socker-logo{mix-blend-mode:normal}.candy-art:before{mask-image:linear-gradient(transparent 45%,#000);background:repeating-linear-gradient(90deg,#fff3 0 29px,transparent 29px 58px)}
@media(max-width:700px){.cards{transform:translateX(-50%) scale(.83);top:47px}.launch{font-size:12px;gap:10px;padding:10px 12px}.info{gap:12px}.art-note{font-size:8px;letter-spacing:.12em}}

/* Nice Dice product palette */
.lucky-art{background:#152e29;color:#dbeddf}.lucky-art .dice{border-radius:12%;background:linear-gradient(135deg,#73ffce,#10c8ae 40%,#19e9b5 75%,#08a58e);box-shadow:inset 2px 2px 2px #c7ffe9aa,inset -2px -3px 3px #087c6f99,3px 5px #089584,0 0 24px #36f5ad66,0 12px 30px #25ef9b33;color:#f2ffe5;gap:10%;padding:19px}.lucky-art .dice b{font-size:0;border-radius:50%}.lucky-art .dice b:not(:empty){background:#eeffe6;box-shadow:inset 1px 1px 2px #2e8575aa,0 0 3px #bcffd577}.lucky-art .d20{background:#70ad82}.lucky-art .d20:before{border-color:#c6edc1}.lucky-art .d20 span{color:#efffe2}

/* TRES original print art */
.tres-art{background:#e8eddd;color:#734263}.tres-art:before{content:'';position:absolute;width:300px;height:300px;border:1px solid #c5ceb8;border-radius:50%;left:50%;top:28px;transform:translateX(-50%)}.tres-cards{position:absolute;left:50%;top:65px;width:300px;height:245px;transform:translateX(-50%)}.tres-cards img{position:absolute;width:128px;height:183px;border-radius:9px;box-shadow:0 9px 16px #50334c25;transition:transform .3s}.tres-cards img:nth-child(1){left:0;top:27px;transform:rotate(-18deg)}.tres-cards img:nth-child(2){left:86px;top:0;transform:rotate(-3deg);z-index:2}.tres-cards img:nth-child(3){right:0;top:29px;transform:rotate(17deg);z-index:3}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.tres:hover .tres-cards img:first-child{transform:rotate(-23deg) translateX(-4px)}}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.tres:hover .tres-cards img:last-child{transform:rotate(22deg) translateX(4px)}}@media(max-width:700px){.tres-cards{top:57px;transform:translateX(-50%) scale(.9)}}@media(prefers-reduced-motion:reduce){.tres-cards img{transition:none}}

/* Match the playable Nice Dice and product-photo pip proportions. */
.lucky-art .dice{display:block;padding:0;gap:0}.lucky-art .dice b{position:absolute;width:23%;height:23%;left:50%;top:50%;transform:translate(-50%,-50%)}
.lucky-art .dice b:nth-child(3n+1){left:24%}.lucky-art .dice b:nth-child(3n){left:76%}
.lucky-art .dice b:nth-child(-n+3){top:24%}.lucky-art .dice b:nth-child(n+7){top:76%}

/* Original Coin Set wordmark, extracted as vector glyphs from the print rules. */
.coin-logo{position:absolute;top:72px;left:50%;transform:translateX(-50%);width:min(76%,320px);height:auto}
.kapow-art .cards img{border-radius:6% / 3.87%}
@media(max-width:700px){.coin-logo{top:64px;width:min(76%,300px)}}

.lucky-art .flip.old-five{display:block;object-fit:cover;border:0;border-radius:50%;background:none;color:inherit;box-shadow:2px 3px 0 #72736d,3px 8px 10px #0005}

/* Keep all three objects on a shared scale, including on small screens. */
.lucky-objects{position:absolute;left:50%;top:168px;width:330px;height:150px;transform:translateX(-50%)}
.lucky-art .lucky-objects .dice{left:0;top:38px;width:80px;height:80px}
.lucky-art .lucky-objects .flip{left:87px;top:0;width:142.5px;height:142.5px}
.lucky-art .lucky-objects .d20{left:222px;top:22px;width:110px;height:110px}
.lucky-art .lucky-objects .d20 span{left:0;top:0;width:100%;height:100%;display:grid;place-items:center;font-size:29px}
@media(max-width:700px){.lucky-objects{top:163px;transform:translateX(-50%) scale(.84)}}

/* Complete D20: ten visible triangular faces with engraved-style numerals. */
.lucky-art .lucky-objects .d20{background:none;clip-path:none;filter:drop-shadow(2px 5px 3px #071e1a66)}
.lucky-art .lucky-objects .d20:before{display:none}
.lucky-art .lucky-objects .d20 svg{display:block;width:100%;height:100%;overflow:visible}

/* SWIPE: original wordmark and original card fronts. */
.swipe-art{background:linear-gradient(120deg,#ed3597,#fa7752);color:#262121}.swipe-logo{position:absolute;top:48px;left:50%;transform:translateX(-50%);width:210px;height:auto;border-radius:5px}.swipe-cards{position:absolute;top:151px;left:50%;width:260px;height:163px;transform:translateX(-50%)}.swipe-cards img{position:absolute;width:145px;height:145px;border:2px solid #262121;border-radius:16px;box-shadow:3px 5px 0 #262121;object-fit:cover;transition:transform .3s}.swipe-cards img:first-child{left:0;transform:rotate(-11deg)}.swipe-cards img:last-child{right:0;top:3px;transform:rotate(10deg)}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.swipe:hover .swipe-cards img:first-child{transform:rotate(-15deg) translateX(-4px)}}@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.swipe:hover .swipe-cards img:last-child{transform:rotate(14deg) translateX(4px)}}@media(max-width:700px){.swipe-logo{top:43px;width:190px}.swipe-cards{top:139px;transform:translateX(-50%) scale(.94)}}@media(prefers-reduced-motion:reduce){.swipe-cards img{transition:none}}

.skogen-art{background:#203e30;color:#f7f1da}.skogen-word{position:absolute;top:54px;left:0;right:0;text-align:center;font-family:Georgia,serif;font-weight:bold;font-size:48px;letter-spacing:8px}.skogen-tiles{position:absolute;top:145px;left:50%;width:290px;height:150px;transform:translateX(-50%)}.skogen-tiles img{position:absolute;width:112px;height:112px;box-shadow:0 6px 13px #0005;border-radius:0}.skogen-tiles img:nth-child(1){left:0;transform:rotate(-12deg)}.skogen-tiles img:nth-child(2){left:88px;top:12px;transform:rotate(3deg);z-index:2}.skogen-tiles img:nth-child(3){right:0;transform:rotate(13deg)}

/* Keep the complete 4–4 card, both values and all corners visible. */
.tres-cards img{object-fit:contain;background:#f6f7eb}
.tres-cards img:nth-child(2){z-index:4;top:-7px;width:142px;height:auto;left:79px;transform:rotate(-3deg)}

/* Stuglandet: original box, map artwork and wooden pieces. */
.stuglandet-art{background:radial-gradient(ellipse at 50% 56%,#faf4df,#e1e8cc);color:#294b3a}.stuglandet-art .art-note{letter-spacing:.09em}.stuglandet-scene{position:absolute;left:50%;top:42px;transform:translateX(-50%);width:370px;height:280px;mix-blend-mode:multiply}.stuglandet-box{position:absolute;left:-24px;top:-9px;width:278px;height:278px;object-fit:contain;mix-blend-mode:multiply}.stuglandet-tiles{position:absolute;right:1px;top:105px;display:grid;grid-template-columns:1fr 1fr;width:192px;gap:2px;padding:3px;background:#3c593d;transform:rotate(-11deg) skewY(4deg);box-shadow:1px 3px 0 #c6c4a8,2px 5px 0 #aaa98f,5px 12px 15px #31442a30}.stuglandet-tiles img{display:block;width:100%;aspect-ratio:1.5}.stuglandet-pieces{position:absolute;left:63px;bottom:2px;right:25px;display:flex;justify-content:space-between;align-items:flex-end;filter:drop-shadow(2px 5px 2px #30442a40)}.stuglandet-pieces img{width:58px;height:64px;object-fit:contain}.stuglandet-pieces img:nth-child(2){transform:translateY(7px) rotate(8deg)}.stuglandet-pieces img:nth-child(3){transform:rotate(-12deg);width:65px}
@media(max-width:700px){.stuglandet-scene{top:37px;transform:translateX(-50%) scale(.94)}.stuglandet-art .art-note{font-size:8px}}@media(max-width:380px){.stuglandet-scene{transform:translateX(-50%) scale(.82)}}

/* SAY WHAT: full-bleed original photography, without multiply darkening. */
.saywhat-art{background:#efdf63;color:#302e23}
.saywhat-box{position:absolute;display:block;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;mix-blend-mode:normal}
.saywhat-art .tag,.saywhat-art .art-note{text-shadow:0 1px 8px #efdf63}

/* Stuglandet: a product still life with room around the cottage and its pieces. */
.stuglandet-art{background:radial-gradient(ellipse at 46% 36%,#f9f5dc 0%,#e5ebd2 62%,#d5dfc1 100%);color:#294b3a}
.stuglandet-scene{top:47px;width:360px;height:268px;mix-blend-mode:normal}
.stuglandet-scene:before{content:'';position:absolute;left:20px;right:0;bottom:9px;height:25px;border-radius:50%;background:#52674522;filter:blur(10px)}
.stuglandet-box{left:-23px;top:-33px;width:320px;height:320px;z-index:2;mix-blend-mode:multiply}
.stuglandet-tiles{right:-2px;top:151px;width:158px;gap:1px;padding:2px;transform:rotate(-10deg);z-index:1;box-shadow:1px 2px 0 #c5c7a5,2px 4px 0 #a3ac8a,5px 10px 16px #31442a28}
.stuglandet-pieces{left:49px;right:-3px;bottom:-8px;z-index:3;filter:drop-shadow(1px 4px 2px #30442a30)}
.stuglandet-pieces img{width:64px;height:70px}
.stuglandet-pieces img:nth-child(2){transform:translateY(6px) rotate(7deg)}
.stuglandet-pieces img:nth-child(3){width:70px;transform:rotate(-10deg)}
@media(max-width:700px){.stuglandet-scene{top:39px;transform:translateX(-50%) scale(.94)}}
@media(max-width:380px){.stuglandet-scene{transform:translateX(-50%) scale(.82)}}

/* Original complete product photograph, on a quiet sage studio background. */
.stuglandet-art{background:#e7ecdf;color:#294b3a}
.stuglandet-product{position:absolute;display:block;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}

/* Shared menu response, including future project cards. Individual scale/translate
   preserve the original product artwork's positioning and rotations. */
:where(a,button){transition:color .2s ease,background-color .2s ease,box-shadow .2s ease,translate .25s ease}
.project{transition:translate .28s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease,border-color .2s ease}
.project .art img,.project .lucky-objects{transition:scale .35s cubic-bezier(.2,.7,.2,1),transform .3s ease}
.launch b,.nav span,#random span{display:inline-block;transition:translate .25s ease}
main a:not(.project),footer a{display:inline-block;text-underline-offset:4px}
@media(hover:hover) and (pointer:fine){
 .project:hover{transform:none;translate:0 -6px;box-shadow:0 14px 30px #25282020;border-color:#24272255}
 .project:hover .art img,.project:hover .lucky-objects{scale:1.035}
 .project:hover .launch{background:var(--ink);color:var(--paper);border-color:var(--ink)}
 .project:hover .launch b,#random:hover span{translate:3px -3px}
 .nav:hover span{translate:-3px 3px}
 :is(.brand,.nav,main a:not(.project),footer a):hover{color:var(--red);translate:0 -2px}
 #random:hover{translate:0 -3px;box-shadow:0 6px 14px #24272225}
 main a:not(.project):hover,footer a:hover{text-decoration:underline}
}
.project:focus-visible{translate:0 -6px;box-shadow:0 14px 30px #25282020}
.project:focus-visible .art img,.project:focus-visible .lucky-objects{scale:1.035}
.project:focus-visible .launch{background:var(--ink);color:var(--paper)}
.project:focus-visible .launch b,#random:focus-visible span{translate:3px -3px}
:is(.brand,.nav,main a:not(.project),footer a):focus-visible{color:var(--red)}
#random:focus-visible{background:var(--red)}
a:active,button:active{translate:0 1px}
.project:active{translate:0 -1px;box-shadow:0 3px 10px #25282020}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{transition:none!important;animation:none!important}
 a,button,.project .art img,.project .lucky-objects,.launch b,.nav span,#random span{translate:none!important;scale:none!important}
}

/* SJÖN, FYR and BERGNEIN use the games' original print artwork. */
.sjon-art{background:radial-gradient(ellipse at 50% 40%,#4b7682,#183c4e);color:#f7f3df}.sjon-logo{position:absolute;left:50%;top:28px;transform:translateX(-50%);width:136px;height:110px;object-fit:contain;mix-blend-mode:screen}.sjon-tiles{top:157px}
.fyr-art{background:radial-gradient(ellipse at 50% 40%,#c7e4dd,#91bec1);color:#21484b}.fyr-logo{position:absolute;left:50%;top:47px;transform:translateX(-50%);width:155px;height:90px;object-fit:contain;mix-blend-mode:multiply}.fyr-cards,.bergnein-cards{position:absolute;left:50%;top:151px;transform:translateX(-50%);width:270px;height:160px}.fyr-cards img{position:absolute;width:105px;height:155px;object-fit:cover;border-radius:8px;box-shadow:0 8px 15px #173b4b35}.fyr-cards img:nth-child(1),.bergnein-cards img:nth-child(1){left:0;top:12px;transform:rotate(-15deg)}.fyr-cards img:nth-child(2),.bergnein-cards img:nth-child(2){left:83px;top:-5px;transform:rotate(-1deg);z-index:2}.fyr-cards img:nth-child(3),.bergnein-cards img:nth-child(3){right:0;top:13px;transform:rotate(16deg);z-index:3}
.bergnein-art{background:#ec008c;color:#272624}.bergnein-logo{position:absolute;left:50%;top:66px;transform:translateX(-50%);width:min(82%,390px);height:auto}.bergnein-cards{top:139px;filter:drop-shadow(0 8px 7px #34192c55)}.bergnein-cards img{position:absolute;width:106px;height:164px;object-fit:cover;clip-path:polygon(5% 0,95% 0,100% 3%,100% 97%,95% 100%,5% 100%,0 97%,0 3%)}
@media(max-width:700px){.sjon-tiles{top:147px;transform:translateX(-50%) scale(.94)}.fyr-cards{top:139px;transform:translateX(-50%) scale(.94)}.fyr-logo{top:42px;width:145px}.bergnein-logo{top:62px}.bergnein-cards{top:130px;transform:translateX(-50%) scale(.94)}}
.sjon-art{background:radial-gradient(ellipse at 50% 40%,#dae4de,#a8c5cb);color:#214556}.sjon-logo{mix-blend-mode:multiply}

/* SAY WHAT: the entire box photograph, with original sample cards beside it. */
.saywhat-art{background:#eeda5d}
.saywhat-scene{position:absolute;inset:40px 0 35px;isolation:isolate}
.saywhat-scene .saywhat-box{inset:auto;left:-9%;top:0;width:104%;height:100%;object-fit:contain;object-position:center;mix-blend-mode:normal;mask-image:linear-gradient(90deg,transparent 0%,#000 8%,#000 92%,transparent 100%)}
.saywhat-sample-cards{position:absolute;right:6%;top:0;width:26%;height:100%;filter:drop-shadow(2px 12px 8px #72512740)}
.saywhat-sample-cards img{position:absolute;width:100%;aspect-ratio:1;object-fit:cover;border-radius:7%;border:0;clip-path:inset(1px round 7%)}
.saywhat-sample-cards img:first-child{top:15%;left:-12%;transform:rotate(-10deg);z-index:2}
.saywhat-sample-cards img:last-child{top:49%;right:-3%;transform:rotate(12deg)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .saywhat:hover .saywhat-sample-cards img:first-child{transform:translate(-3px,-7px) rotate(-13deg)}
 .saywhat:hover .saywhat-sample-cards img:last-child{transform:translate(4px,-3px) rotate(15deg)}
}
@media(max-width:700px){.saywhat-scene{inset:38px 0 32px}.saywhat-scene .saywhat-box{left:-12%;width:108%}.saywhat-sample-cards{right:5%;width:27%}.saywhat-sample-cards img:first-child{top:19%}.saywhat-sample-cards img:last-child{top:53%}}

/* Original Grand Hotel product mockup, with the whole box in view. */
.grandhotel-art{background:#d4dfd4;color:#244d3d}.grandhotel-photo{position:absolute;left:50%;top:54px;width:250px;height:265px;transform:translateX(-50%);overflow:hidden;mix-blend-mode:multiply}.grandhotel-photo img{position:absolute;width:620px;max-width:none;height:auto;left:50%;top:50%;transform:translate(-50%,-50%);transition:transform .35s ease}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.grandhotel:hover .grandhotel-photo img{transform:translate(-50%,-51%) rotate(-2deg)}}
@media(max-width:700px){.grandhotel-photo{top:48px;height:252px;width:235px}.grandhotel-photo img{width:585px}}
@media(prefers-reduced-motion:reduce){.grandhotel-photo img{transition:none}}

/* Two compact doors into the same searchable A–Ö catalogue. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.help-hub{margin:28px 0 12px;border-top:1px solid #243d3933;padding-top:20px}.help-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px}.help-shortcuts>button{display:flex;align-items:center;gap:15px;min-width:0;border:1px solid #243d3940;border-radius:10px;padding:20px;background:#e6e8db;color:#192b29;text-align:left;font:inherit;cursor:pointer;transition:background .2s,border-color .2s}.help-shortcuts>button:last-child{background:#233e36;color:#fffdf4}.help-icon{flex-shrink:0;width:36px;height:36px}.help-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.help-shortcuts strong{display:block;font-size:22px;letter-spacing:-.5px}.help-shortcuts small{display:block;margin-top:5px;font-size:12px;opacity:.75;line-height:1.4}.help-arrow{font-size:26px;margin-left:auto;transition:transform .2s}.table-shortcut{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;padding:14px 0;font-size:12px}.table-shortcut>span{opacity:.65}.table-shortcut a{text-underline-offset:3px}
#rules-library{width:min(760px,calc(100vw - 24px));max-height:85dvh;margin:auto;padding:28px;border:1px solid #203c332b;border-radius:18px;background:#f3f0e6;color:#192b29;box-shadow:0 20px 80px #081b2455;overflow:auto;overscroll-behavior:contain}
#rules-library::backdrop{background:#0e242ac4;backdrop-filter:blur(5px)}.rules-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.rules-dialog-top .eyebrow{margin:0;font-size:10px}.rules-dialog-top button{border:1px solid #243d3933;background:transparent;border-radius:50%;width:42px;height:42px;font-size:18px;color:inherit;cursor:pointer;flex-shrink:0}
#rules-title{font-size:clamp(30px,5vw,42px);letter-spacing:-1.5px;line-height:1.05;margin:15px 0 10px;max-width:19ch}#rules-description{font-size:14px;line-height:1.5;margin:0 0 18px;max-width:50ch}
.help-modes{display:flex;gap:4px;padding:4px;background:#dfe3d6;border-radius:8px;margin-bottom:14px}.help-modes button{flex:1;border:0;border-radius:5px;background:transparent;color:inherit;min-height:40px;font:inherit;font-size:13px;font-weight:700;cursor:pointer}.help-modes button[aria-pressed=true]{background:#233e36;color:#fffdf4;box-shadow:0 2px 3px #12251d20}
.rules-search{position:relative;display:block}.rules-search input{box-sizing:border-box;width:100%;font:inherit;font-size:16px;border:1px solid #243d3966;border-radius:8px;background:#fffdf6;padding:14px 46px 14px 15px;color:inherit}.rules-search>span:last-child{position:absolute;right:16px;top:11px;font-size:25px;pointer-events:none}.rules-list-heading{display:flex;justify-content:space-between;margin:20px 0 7px;font-size:11px;letter-spacing:1px}.rules-list-heading>span:first-child{font-weight:800}
.rules-games{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:0 22px;margin:0;padding:0}.rules-games li{min-width:0;border-top:1px solid #243d3926}.rules-games li>a{display:flex;align-items:center;gap:10px;min-height:54px;padding:8px 7px;text-decoration:none;border-radius:5px;transition:background .15s}.rules-games strong{font-size:15px;line-height:1.3}.rules-games a>span:last-child{margin-left:auto;font-size:20px}.rules-games small{font-size:10px;border:1px solid #243d3940;border-radius:4px;padding:3px 5px;white-space:nowrap}
#rules-empty{font-size:14px;padding:20px 0}body:has(#rules-library[open]){overflow:hidden}.help-shortcuts button:focus-visible,#rules-library :focus-visible{outline:3px solid #a54429;outline-offset:4px}
@media(hover:hover){.help-shortcuts>button:hover{background:#dbe1c9;border-color:#243d39}.help-shortcuts>button:last-child:hover{background:#345b4d}.help-shortcuts>button:hover .help-arrow{transform:translate(3px,-3px)}.rules-games a:hover,.rules-dialog-top button:hover{background:#dfe5d3}.rules-games a:hover strong{text-decoration:underline;text-underline-offset:3px}}
@media(max-width:600px){#rules-library{padding:20px}.rules-games{grid-template-columns:1fr}.rules-games li>a{min-height:52px}.help-shortcuts{grid-template-columns:1fr;gap:8px}.help-shortcuts>button{padding:15px 16px;gap:14px}.help-shortcuts strong{font-size:20px}.help-shortcuts small{margin-top:3px}.help-icon{width:30px;height:30px}.table-shortcut{justify-content:flex-start;gap:6px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.help-arrow,.help-shortcuts>button,.rules-games li>a{transition:none}}

/* A shorter introduction and game cards with information at a glance. */
header{height:82px}.header-label{margin-right:55px;font-size:10px}.intro{padding:32px 0 30px;align-items:center;gap:24px}.intro .eyebrow{margin:0 0 14px}h1{font-size:clamp(54px,5.5vw,78px);margin:0 0 18px;line-height:.96}.asterisk{font-size:72px;margin-left:25px}.lede{margin:0;font-size:16px;line-height:1.5;max-width:45ch}.intro-aside{padding:0 12px;flex-shrink:0}.intro-aside p{margin:10px 0 0;font-size:11px}.section-label{padding:16px 0 18px}.grid{gap:22px}.art{height:270px}.artwork{position:absolute;left:50%;top:50%;width:133.333333%;height:360px;transform:translate(-50%,-50%) scale(.75);pointer-events:none}.tag{top:15px;left:17px;font-size:9px}.info{min-height:142px;padding:18px 20px;align-items:center;gap:12px}.info>div{min-width:0}.play-info{display:block;font:10px/1.45 monospace;letter-spacing:.025em;color:#5b6455}.info h3{font-size:25px;letter-spacing:-.8px;margin:7px 0 7px}.info p{font-size:13px;line-height:1.45;max-width:34ch}.launch{padding:9px 11px;gap:9px;margin:0;font-size:12px}.launch b{font-size:18px}.open-note{margin:22px 0 25px;line-height:1.5}
@media(min-width:1200px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.info{align-items:flex-start;position:relative;min-height:157px;padding-right:52px}.launch{position:absolute;right:14px;top:48px;font-size:0;padding:8px 10px;gap:0}.launch b{font-size:18px}.info p{max-width:32ch}.info h3{font-size:25px}}
@media(min-width:701px) and (max-width:1199px){.intro{padding:28px 0}.intro-aside{padding:0}.asterisk{font-size:60px;margin-left:18px}.art{height:260px}.artwork{width:138.888889%;transform:translate(-50%,-50%) scale(.72)}.info{padding:17px;min-height:144px}.info h3{font-size:24px}.launch{font-size:0;padding:9px 11px;gap:0}}
@media(max-width:700px){header{height:70px}.intro{padding:25px 0 24px;display:block}.intro .eyebrow{font-size:10px;margin-bottom:14px}h1{font-size:clamp(43px,10.5vw,64px);margin:0 0 17px}.asterisk{font-size:52px;margin:1px 0 0 15px}.lede{font-size:14px;line-height:1.5}.intro-aside{margin-top:18px;display:flex;gap:14px;padding:0}.intro-aside p{margin:0;max-width:120px;font-size:10px}#random{padding:13px 15px;min-width:156px;font-size:13px}.section-label{font-size:10px;padding:13px 0 16px}.grid{gap:18px}.art{height:250px}.artwork{width:142.857143%;height:360px;transform:translate(-50%,-50%) scale(.7)}.info{padding:17px;min-height:132px}.info h3{font-size:25px;margin:6px 0}.play-info{font-size:10px}.info p{font-size:13px}.launch{font-size:12px;padding:9px 11px;gap:8px;position:static}.open-note{margin:20px 0 24px;font-size:10px}.help-hub{margin-top:24px}}
@media(prefers-reduced-motion:reduce){.artwork{transition:none}}
/* Preserve the original photo blending after grouping the scaled artwork. */
.stuglandet .artwork,.grandhotel .artwork,.delivery .artwork{mix-blend-mode:multiply}

/* SPACE RACE: original cards, matched to the compact project artwork. */
.spacerace-art{background:radial-gradient(ellipse at 50% 80%,#244e60,#071421 75%)}
.spacerace-title{position:absolute;top:30px;left:0;width:100%;text-align:center;font:700 35px/1.1 Arial,sans-serif;letter-spacing:7px;color:#e5f4fc}
.spacerace-cards{position:absolute;left:50%;top:102px;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;width:330px}
.spacerace-cards img{width:125px;height:auto;clip-path:polygon(14% 0,86% 0,100% 9%,100% 91%,86% 100%,14% 100%,0 91%,0 9%);filter:drop-shadow(0 10px 12px #0008)}
.spacerace-cards img:first-child{transform:rotate(-14deg) translateX(12px)}
.spacerace-cards img:nth-child(2){z-index:2;transform:translateY(-5px)}
.spacerace-cards img:last-child{transform:rotate(14deg) translateX(-12px)}

/* Grand Hotel invites the player into the hotel, with original entrance art. */
.grandhotel-art{background:#eab777;isolation:isolate}.gh-entrance{position:absolute;inset:0;background-image:url('/playground/grand-hotel/facade.webp');background-size:cover;background-position:center bottom;transform-origin:50% 82%;transition:transform .6s ease,filter .6s ease}.grandhotel-art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#283d312b,transparent 28%,transparent 85%,#233d2914);pointer-events:none}.grandhotel-art .tag{background:#fff0cd;color:#274c3d;border:1px solid #7b633a40;padding:6px 8px;border-radius:3px;box-shadow:0 2px 6px #3c2b2020}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.grandhotel:is(:hover,:focus-visible) .gh-entrance{transform:scale(1.035);filter:brightness(1.045)}}
@media(prefers-reduced-motion:reduce){.gh-entrance{transition:none}}

/* Original outlined wordmarks, with transparent backgrounds and no print marks. */
.sjon-logo{width:150px;height:114px;top:25px;mix-blend-mode:normal}.skogen-logo{position:absolute;left:50%;top:35px;transform:translateX(-50%);width:220px;height:98px;object-fit:contain}

/* SPACE RACE's original cyan emblem, lettering and stars from the box print file. */
.spacerace-art{background:#0f1820 url('/playground/space-race-stars.svg') center/cover no-repeat}
.spacerace-logo{position:absolute;left:50%;top:38px;transform:translateX(-50%);width:175px;height:210px;object-fit:contain;z-index:3}
.spacerace-cards{width:100%;top:116px;gap:110px;opacity:.92}
.spacerace-cards img{width:94px}.spacerace-cards img:nth-child(2){display:none}
.spacerace-cards img:first-child{transform:rotate(-16deg) translateX(-10px)}
.spacerace-cards img:last-child{transform:rotate(16deg) translateX(10px)}
.spacerace-art .tag{color:#00aeef;background:#0f1820;border:1px solid #00aeef66}

/* Photograph the actual foil finish; cyan in the production file is a foil plate. */
.spacerace-art{background:#070910;isolation:isolate}
.spacerace-photography{position:absolute;inset:0;overflow:hidden}
.spacerace-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 54%;transition:opacity .65s ease;transform:none}
.spacerace-photo-alternate{opacity:0}
.project.spacerace:hover .art img{scale:1}
.spacerace-art .tag{z-index:2;color:#ede5f7;background:#0b0c16c9;border:1px solid #d1bdd64d;backdrop-filter:blur(8px)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.spacerace:is(:hover,:focus-visible) .spacerace-photo-alternate{opacity:1}.spacerace:is(:hover,:focus-visible) .spacerace-photo-main{opacity:0}}
@media(prefers-reduced-motion:reduce){.spacerace-photo{transition:none}}

/* Original Tres and Stuglandet wordmarks. */
.tres-art{background:#e8efdf;color:#734263}.tres-art:before{display:none}.tres-logo{position:absolute;left:50%;top:30px;transform:translateX(-50%);width:174px;height:64px;object-fit:contain;filter:drop-shadow(0 2px 0 #cfac5c44)}.tres-cards{top:126px;width:275px;height:203px}.tres-cards img{width:112px;height:160px}.tres-cards img:nth-child(2){left:81px}
.stuglandet-logo{position:absolute;left:50%;top:30px;width:175px;height:90px;object-fit:contain;transform:translateX(-50%);z-index:2}.stuglandet-product{inset:auto 0 0;height:270px;object-fit:contain}.stuglandet .artwork{mix-blend-mode:multiply}

@media(max-width:700px){.tres-cards{top:123px;transform:translateX(-50%) scale(.95)}.tres-logo{top:31px}.stuglandet-logo{top:30px}}
/* Match the original SWIPE logo panel so it has no rectangular colour seam. */
.swipe-art{background:#e6548c}


/* Keep the welcoming headline readable in two lines on small screens. */
.intro h1{font-size:clamp(44px,5vw,72px)}.intro h1 em{white-space:nowrap}
@media(max-width:700px){.intro h1{font-size:clamp(32px,9.4vw,52px)}}
