/* whiledo · visitor landing page (Material 3 Expressive) */
.wh{max-width:1240px;margin:0 auto;width:calc(100% - 48px);padding:12px 0 40px;font-family:var(--font-plain)}
.wh *{box-sizing:border-box}
.wh a{text-decoration:none}
.wh .wh-i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.wh-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(44px,7vw,88px) clamp(20px,5vw,64px);background:var(--md-surface-container);border-radius:var(--shape-xxl) var(--shape-xxl) 160px var(--shape-xxl)}
.wh-s{position:absolute;z-index:-1;display:block;animation:wh-spin 70s linear infinite}
.wh-s1{width:min(46vw,460px);aspect-ratio:1;left:-8%;top:-30%;background:var(--md-primary-container);-webkit-mask:var(--shape-cookie) center/100% 100% no-repeat;mask:var(--shape-cookie) center/100% 100% no-repeat}
.wh-s2{width:min(24vw,240px);aspect-ratio:1;right:-4%;top:-12%;background:var(--md-tertiary-container);-webkit-mask:var(--shape-sunny) center/100% 100% no-repeat;mask:var(--shape-sunny) center/100% 100% no-repeat;animation-direction:reverse;animation-duration:45s}
.wh-s3{width:min(20vw,200px);aspect-ratio:1;right:10%;bottom:-18%;background:var(--md-secondary-container);-webkit-mask:var(--shape-clover) center/100% 100% no-repeat;mask:var(--shape-clover) center/100% 100% no-repeat;animation-duration:55s}
@keyframes wh-spin{to{rotate:360deg}}
.wh-kicker{margin:0 0 14px;color:var(--md-tertiary);font:700 13px/1 var(--font-plain);letter-spacing:.16em;text-transform:uppercase}
.wh-title{margin:0;font:800 clamp(72px,16vw,190px)/1 var(--font-brand);font-stretch:125%;letter-spacing:-.04em;color:var(--md-primary)}
.wh-title span{color:var(--md-primary);margin-left:.18em}
.wh-sub{max-width:36ch;margin:18px 0 32px;font:500 clamp(18px,2.2vw,24px)/1.4 var(--font-brand);font-stretch:105%;color:var(--md-on-surface)}
.wh-search{display:flex;align-items:center;gap:6px;width:min(560px,100%);padding:6px 6px 6px 22px;border-radius:var(--shape-full);background:var(--md-surface-highest);transition:box-shadow var(--dur-fast) linear}
.wh-search:focus-within{box-shadow:0 0 0 3px var(--md-primary)}
.wh-search .wh-i{color:var(--md-on-surface-variant)}
.wh-search input{flex:1;min-width:0;height:44px;border:0!important;outline:0;background:transparent!important;color:var(--md-on-surface);font:500 16px var(--font-plain);box-shadow:none!important}
.wh-search input::placeholder{color:var(--md-on-surface-variant)}
.wh-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 26px;border:0;border-radius:24px;background:var(--md-primary);color:var(--md-on-primary)!important;font:600 15px/1 var(--font-plain);cursor:pointer;transition:border-radius var(--dur) var(--spring-spatial-bouncy),scale var(--dur) var(--spring-spatial-fast)}
.wh-btn:active{border-radius:var(--shape-md);scale:.97}
.wh-btn.tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)!important}
.wh-btn.text{background:transparent;color:var(--md-primary)!important;padding:0 18px}
.wh-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:22px}
.wh-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px;margin-top:12px}
.wh-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:clamp(20px,3vw,32px);border-radius:var(--shape-xl);background:var(--md-surface-container);color:var(--md-on-surface)!important;overflow:hidden;isolation:isolate}
a.wh-card{transition:border-radius var(--dur) var(--spring-spatial-bouncy),scale var(--dur) var(--spring-spatial-fast)}
a.wh-card:active{scale:.985;border-radius:var(--shape-lg)}
a.wh-card::after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--dur-fast) linear;z-index:-1}
a.wh-card:hover::after{opacity:.06}
.wh-feat{grid-column:span 7;grid-row:span 2;min-height:360px;background:var(--md-primary-container);color:var(--md-on-primary-container)!important;border-radius:var(--shape-xxl) var(--shape-xl) var(--shape-xl) var(--shape-xl)}
.wh-feat-shape{position:absolute;z-index:-1;width:300px;aspect-ratio:1;right:-70px;top:-70px;background:color-mix(in srgb,var(--md-primary) 30%,transparent);-webkit-mask:var(--shape-cookie) center/100% 100% no-repeat;mask:var(--shape-cookie) center/100% 100% no-repeat;animation:wh-spin 60s linear infinite}
.wh-badge{align-self:flex-start;padding:6px 14px;border-radius:var(--shape-full);background:var(--md-on-primary-container);color:var(--md-primary-container);font:700 12px/1 var(--font-plain);letter-spacing:.06em;text-transform:uppercase}
.wh-feat-name{margin-top:auto;font:800 clamp(40px,6vw,76px)/.95 var(--font-brand);font-stretch:120%;letter-spacing:-.035em;overflow-wrap:anywhere}
.wh-feat-desc{max-width:44ch;font:500 17px/1.5 var(--font-plain);opacity:.9}
.wh-lang{display:flex;gap:2px;height:6px;border-radius:var(--shape-full);overflow:hidden;background:color-mix(in srgb,currentColor 12%,transparent)}.wh-lang i{display:block;min-width:4px}
.wh-lang.big{height:10px}
.wh-meta{display:flex;flex-wrap:wrap;gap:6px 16px;font:500 13px/1.2 var(--font-plain);opacity:.9}
.wh-meta span{display:inline-flex;align-items:center;gap:5px}.wh-meta .wh-i{width:14px;height:14px}.wh-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.wh-go{display:inline-flex;align-items:center;gap:6px;font:700 14px var(--font-plain)}
.wh-release{grid-column:span 5;background:var(--md-tertiary-container);color:var(--md-on-tertiary-container)!important;border-radius:var(--shape-xl) var(--shape-xxl) var(--shape-xl) var(--shape-xl);justify-content:space-between}
.wh-chip{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 14px;border-radius:var(--shape-full);background:color-mix(in srgb,currentColor 16%,transparent);font:700 12px/1 var(--font-plain);letter-spacing:.04em}
.wh-big{font:800 clamp(26px,3.4vw,40px)/1.05 var(--font-brand);font-stretch:112%;letter-spacing:-.02em}
.wh-release .wh-sub,.wh-nums span{margin:0;font-size:14px;opacity:.85}
.wh-nums{grid-column:span 5;flex-direction:row;justify-content:space-around;align-items:center;background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.wh-nums div{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.wh-nums b{font:800 clamp(34px,4.6vw,56px)/1 var(--font-brand);font-stretch:120%;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.wh-act{grid-column:1/-1;background:var(--md-surface-container);border-radius:var(--shape-xl) var(--shape-xl) var(--shape-xxl) var(--shape-xl)}
.wh-h2{margin:0 0 6px;font:700 clamp(24px,3vw,32px)/1.1 var(--font-brand);font-stretch:112%;letter-spacing:-.02em;border:0!important;padding:0!important}
.wh-feed{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:4px 16px}
.wh-feed li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:14px;padding:10px 12px;border-radius:var(--shape-lg-inc);transition:background-color var(--dur-fast) linear}
.wh-feed li:hover{background:var(--md-surface-high)}
.wh-feed-ic{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
.wh-feed a{font-weight:700;color:var(--md-primary)}
.wh-feed p{margin:2px 0 0;font-size:13px;color:var(--md-on-surface-variant);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wh-feed time{font-size:12px;color:var(--md-on-surface-variant);white-space:nowrap}
.wh-h{margin:clamp(36px,5vw,56px) 0 16px;font:700 clamp(28px,4vw,44px)/1.1 var(--font-brand);font-stretch:112%;letter-spacing:-.025em;border:0!important}
.wh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,270px),1fr));gap:10px}
.wh-tile{position:relative;display:flex;flex-direction:column;gap:10px;min-height:170px;padding:22px;border-radius:var(--shape-xl);background:var(--tone,var(--md-surface-container));color:var(--ink,var(--md-on-surface))!important;overflow:hidden;isolation:isolate;transition:border-radius var(--dur) var(--spring-spatial-bouncy),scale var(--dur) var(--spring-spatial-fast)}
.wh-tile::after{content:"";position:absolute;inset:0;background:currentColor;opacity:0;transition:opacity var(--dur-fast) linear;z-index:-1}.wh-tile:hover::after{opacity:.06}.wh-tile:active{scale:.98;border-radius:var(--shape-lg)}
.wh-tile.t0{--tone:var(--md-secondary-container);--ink:var(--md-on-secondary-container)}.wh-tile.t1{--tone:var(--md-surface-high)}.wh-tile.t2{--tone:var(--md-surface-container)}.wh-tile.t3{--tone:var(--md-surface-low)}
.wh-tile b{font:700 22px/1.15 var(--font-brand);font-stretch:110%;letter-spacing:-.02em;overflow-wrap:anywhere}
.wh-tile-d{flex:1;font-size:14px;line-height:1.45;opacity:.85}
.wh-empty{grid-column:1/-1;padding:24px;color:var(--md-on-surface-variant)}
@media(max-width:860px){.wh-feat,.wh-release,.wh-nums{grid-column:1/-1;grid-row:auto}.wh-hero{border-radius:var(--shape-xl) var(--shape-xl) 80px var(--shape-xl)}}
@media(prefers-reduced-motion:reduce){.wh *{animation:none!important}}
