/* ToiletLife™ — joke site. Palette from the TL logo. */
:root{
  --navy:#06065D;      /* Deep Drain */
  --blue:#0E49B5;      /* Flush Blue */
  --grey:#ADAEB0;      /* Porcelain Grey (edit here if the hex was meant to be different) */
  --red:#ED0101;       /* Panic Red */
  --maroon:#A70107;    /* Plunger Maroon */
  --ink:#0b0b2a;
  --paper:#f5f6fa;
  --tile:#eceef4;
  --radius:16px;
  --font:'Rubik',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
html,body{overflow-x:clip}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);line-height:1.55;-webkit-font-smoothing:antialiased}
body.intro-active{overflow:hidden}
img{max-width:100%;height:auto}
a{color:var(--blue)}
button{font:inherit;cursor:pointer}
.wrap{width:min(1160px,100% - 32px);margin-inline:auto}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:6px}
.red{color:var(--red)}.blue{color:var(--blue)}

/* ============ INTRO ============ */
.intro{position:fixed;inset:0;z-index:100;overflow:hidden;background:var(--navy);display:flex;align-items:center;justify-content:center;transition:opacity .7s ease}
.intro.is-done{opacity:0;pointer-events:none}
.intro-wall{position:absolute;inset:0;
  background:
    linear-gradient(rgba(173,174,176,.18) 2px,transparent 2px) 0 0/90px 90px,
    linear-gradient(90deg,rgba(173,174,176,.18) 2px,transparent 2px) 0 0/90px 90px,
    radial-gradient(ellipse at 50% 40%,#1a2f8a 0%,var(--navy) 70%);
}
.intro-title{position:absolute;top:clamp(16px,5vh,48px);left:0;right:0;text-align:center;color:#fff;z-index:2;transition:opacity .4s}
.intro-title img{width:min(230px,60vw);height:auto}
.intro-title p{margin:.6rem 0 0;color:var(--grey);font-size:.95rem;letter-spacing:.04em}
.intro-stage{position:relative;height:min(72vh,600px);aspect-ratio:400/540;transform-origin:50% 59%;transition:transform 1.3s cubic-bezier(.55,.05,.9,.4),opacity .5s ease 1s;margin-top:9vh;z-index:1}
#toilet{width:100%;height:100%;display:block;overflow:visible;filter:drop-shadow(0 20px 30px rgba(0,0,10,.45))}
#flushBtn:hover #flushCap,#flushBtn:focus-visible #flushCap{fill:#ff2a2a}
#flushCap{transition:transform .12s ease}
.pressed #flushCap{transform:translateY(8px)}
#flushBtn:focus-visible{outline:none}
#flushBtn:focus-visible #flushCap{stroke:#fff;stroke-width:3}
.intro-hint{position:absolute;top:-4px;left:calc(50% + 62px);display:flex;align-items:center;gap:8px;color:#fff;font-weight:500;font-size:.95rem;white-space:nowrap;transition:opacity .3s;pointer-events:none}
.hint-arrow{color:var(--red);font-size:1.3rem;display:inline-block;animation:bob 1s ease-in-out infinite;transform:rotate(90deg)}
@keyframes bob{50%{transform:rotate(90deg) translateX(6px)}}
.intro.flushing .intro-hint,.intro.flushing .intro-title{opacity:0}
#swirl{animation:spin 6s linear infinite}
.intro.flushing #swirl{animation-duration:.5s}
@keyframes spin{to{transform:rotate(360deg)}}
.intro.flushing .intro-stage{transform:scale(11)}
.intro.descending .intro-stage{opacity:0}
.intro.shake .intro-stage{animation:shake .4s linear 2}
@keyframes shake{25%{translate:-3px 2px}50%{translate:3px -2px}75%{translate:-2px -1px}}

.video-wrap{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;pointer-events:none;background:#000}
.intro.descending .video-wrap{opacity:1}
.video-wrap video{position:absolute;display:block}
.v-blur{inset:-8%;width:116%;height:116%;object-fit:cover;filter:blur(28px) brightness(.55) saturate(1.2)}
.v-main{top:0;left:50%;height:100%;width:min(100%,calc(100vh * 396 / 636));transform:translateX(-50%);object-fit:cover;box-shadow:0 0 60px rgba(0,0,0,.6)}
/* the CSS-only fallback tunnel if the video can't play */
.video-wrap.fallback{background:radial-gradient(circle at 50% 50%,#000 0,#06065D 25%,#0E49B5 60%,#ADAEB0 100%);animation:tunnel 1.6s ease-in forwards}
.video-wrap.fallback video{display:none}
@keyframes tunnel{from{transform:scale(.2) rotate(0)}to{transform:scale(3) rotate(540deg)}}

.splash{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,#fff 0,var(--blue) 45%,var(--navy) 100%);opacity:0;pointer-events:none;z-index:5;transition:opacity .45s ease}
.intro.splashing .splash{opacity:1}

.intro-controls{position:absolute;right:16px;bottom:16px;display:flex;gap:8px;z-index:10}
.chip{background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.45rem .9rem;border-radius:999px;font-size:.85rem;backdrop-filter:blur(6px)}
.chip:hover{background:rgba(255,255,255,.22)}
.filters .chip{background:#fff;color:var(--navy);border-color:var(--grey)}
.filters .chip:hover{background:var(--tile)}
.filters .chip.is-on{background:var(--navy);color:#fff;border-color:var(--navy)}

/* ============ SITE ============ */
.site{opacity:0;transform:translateY(40px) scale(.98);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.9,.3,1.2)}
.site.is-in{opacity:1;transform:none}
.netbar{background:#03033a;color:var(--grey);font-size:.8rem}
.netbar-in{display:flex;gap:16px;align-items:center;justify-content:space-between;padding-block:7px;flex-wrap:wrap}
.netbar-tag{color:#fff;font-weight:600;letter-spacing:.05em}
.netbar nav{display:flex;gap:18px;flex-wrap:wrap}
.netbar a{color:#cfd0d6;text-decoration:none}
.netbar a:hover{color:#fff;text-decoration:underline}
.netbar-self{color:var(--grey);opacity:.7}

.header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:4px solid var(--navy);box-shadow:0 4px 18px rgba(6,6,93,.08)}
.header-in{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:12px}
.brand img{display:block;width:210px;height:auto}
.nav{display:flex;align-items:center;gap:6px}
.nav a,.nav-flush{color:var(--navy);text-decoration:none;font-weight:500;font-size:.95rem;padding:.5rem .8rem;border-radius:10px}
.nav a:hover{background:var(--tile)}
.nav .nav-ext{color:var(--blue)}
.nav-flush{background:var(--red);color:#fff;border:0;font-weight:600}
.nav-flush:hover{background:var(--maroon)}
.burger{display:none;background:none;border:2px solid var(--navy);border-radius:10px;padding:9px 10px;flex-direction:column;gap:4px}
.burger span{display:block;width:22px;height:3px;background:var(--navy);border-radius:2px}

/* hero */
.hero{position:relative;overflow:hidden;color:#fff;background:
  linear-gradient(rgba(255,255,255,.07) 2px,transparent 2px) 0 0/80px 80px,
  linear-gradient(90deg,rgba(255,255,255,.07) 2px,transparent 2px) 0 0/80px 80px,
  linear-gradient(135deg,var(--navy),var(--blue))}
.hero-in{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:center;padding-block:72px 80px}
.eyebrow{margin:0 0 .6rem;font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.hero .eyebrow{color:#bcd0f7}
h1{font-size:clamp(2.2rem,5vw,3.9rem);line-height:1.05;font-weight:800;margin:0 0 1rem;letter-spacing:-.02em}
.hero h1 .red{color:#ff4b4b}.hero h1 .blue{color:#8db8ff}
.lead{font-size:1.15rem;max-width:56ch;color:#e3eaff}
.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin:1.6rem 0}
.btn{display:inline-block;border:0;border-radius:12px;padding:.85rem 1.4rem;font-weight:700;text-decoration:none;font-size:1rem;transition:transform .12s,background .15s}
.btn:active{transform:translateY(2px)}
.btn-red{background:var(--red);color:#fff;box-shadow:0 4px 0 var(--maroon)}
.btn-red:hover{background:#ff2020}
.btn-ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.7)}
.btn-ghost:hover{background:rgba(255,255,255,.12)}
.hero-stats{list-style:none;display:flex;gap:28px;padding:0;margin:2rem 0 0;flex-wrap:wrap}
.hero-stats strong{display:block;font-size:1.9rem;font-weight:800;line-height:1}
.hero-stats span{font-size:.82rem;color:#bcd0f7}
.hero-art{position:relative;min-height:320px;display:grid;place-items:center}
.hero-badge{width:min(300px,70%);background:#fff;border-radius:50%;aspect-ratio:1;display:grid;place-items:center;padding:12%;box-shadow:0 0 0 10px rgba(255,255,255,.18),0 24px 50px rgba(0,0,30,.4);animation:floaty 5s ease-in-out infinite}
@keyframes floaty{50%{transform:translateY(-12px) rotate(2deg)}}
.hero-sticker{position:absolute;background:#fff;color:var(--navy);font-weight:700;font-size:.85rem;padding:.4rem .8rem;border-radius:8px;box-shadow:0 6px 16px rgba(0,0,40,.3)}
.s1{top:4%;right:0;transform:rotate(6deg);background:var(--red);color:#fff}
.s2{bottom:10%;left:-2%;transform:rotate(-7deg)}
.s3{bottom:0;right:4%;transform:rotate(3deg);background:var(--grey)}

.ticker{background:var(--red);color:#fff;overflow:hidden;white-space:nowrap;border-block:3px solid var(--maroon);font-weight:600;font-size:.88rem}
.ticker-track{display:inline-flex;gap:56px;padding:9px 0;animation:marquee 45s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}

/* sections */
.section{padding-block:80px;position:relative}
.sec-head{margin-bottom:34px;max-width:720px}
.sec-head h2{font-size:clamp(1.8rem,3.5vw,2.6rem);margin:0 0 .4rem;font-weight:800;letter-spacing:-.02em;color:var(--navy)}
.sec-sub{margin:0;color:#4a4a68;font-size:1.05rem}
.sec-head.light h2{color:#fff}.sec-head.light .sec-sub{color:#cdd8f5}.sec-head.light .eyebrow{color:#8db8ff}
.section-navy{background:linear-gradient(160deg,var(--navy),#0b1a85);color:#fff}
.section-tile{background:
  linear-gradient(var(--grey) 1px,transparent 1px) 0 0/72px 72px,
  linear-gradient(90deg,var(--grey) 1px,transparent 1px) 0 0/72px 72px,var(--tile);background-blend-mode:soft-light}

/* catalogue */
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}
.card{background:#fff;border:2px solid #e1e3ec;border-radius:var(--radius);padding:20px;display:flex;flex-direction:column;gap:10px;position:relative;transition:transform .2s,box-shadow .2s,border-color .2s}
.card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(6,6,93,.14);border-color:var(--blue)}
.card-ico{width:64px;height:64px;border-radius:14px;background:var(--tile);display:grid;place-items:center}
.card-ico svg{width:44px;height:44px}
.card-tag{position:absolute;top:16px;right:16px;font-size:.68rem;font-weight:700;letter-spacing:.06em;padding:.25rem .55rem;border-radius:999px;background:var(--navy);color:#fff}
.card-tag.hot{background:var(--red)}
.card h3{margin:0;font-size:1.15rem;color:var(--navy);line-height:1.2}
.card h3 small{display:block;font-family:var(--mono);font-weight:600;font-size:.75rem;color:var(--blue);margin-bottom:2px}
.card p{margin:0;color:#4a4a68;font-size:.92rem;flex:1}
.card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}
.price{font-size:1.3rem;font-weight:800;color:var(--navy)}
.price small{font-size:.7rem;font-weight:600;color:#6a6a86;margin-right:3px}
.add{background:var(--navy);color:#fff;border:0;border-radius:10px;padding:.55rem .9rem;font-weight:600;font-size:.88rem}
.add:hover{background:var(--blue)}

/* advisor */
.advisor{display:grid;gap:26px;max-width:860px}
.advisor-form{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:22px;display:grid;gap:12px}
.advisor-form label{font-size:.82rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#bcd0f7}
.advisor-form textarea,.advisor-form input{width:100%;border:2px solid transparent;border-radius:10px;padding:.8rem 1rem;font:inherit;background:#fff;color:var(--ink)}
.advisor-form textarea{resize:vertical}
.advisor-form input:focus,.advisor-form textarea:focus{outline:none;border-color:var(--red)}
.advisor-row{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}
.advisor-row>div{flex:1;min-width:160px}
.terminal{background:#02021f;border-radius:var(--radius);border:1px solid #2a2ab0;overflow:hidden;box-shadow:0 20px 40px rgba(0,0,20,.4)}
.term-bar{display:flex;align-items:center;gap:6px;background:#0a0a40;padding:9px 14px;font-family:var(--mono);font-size:.75rem;color:var(--grey)}
.term-bar i{width:11px;height:11px;border-radius:50%;background:var(--red)}
.term-bar i:nth-child(2){background:var(--grey)}.term-bar i:nth-child(3){background:var(--blue)}
.term-bar span{margin-left:10px}
.terminal pre{margin:0;padding:18px 20px;font-family:var(--mono);font-size:.9rem;color:#9ff0b6;white-space:pre-wrap;min-height:120px;line-height:1.7}
.terminal pre .crit{color:#ff5a5a;font-weight:600}
.ai-result{margin:0 20px 20px;background:#fff;color:var(--ink);border-radius:12px;padding:16px 18px;border-left:8px solid var(--red)}
.ai-result h4{margin:0 0 4px;font-size:.78rem;letter-spacing:.1em;color:var(--maroon)}
.ai-result strong{font-size:1.25rem;color:var(--navy)}
.ai-result p{margin:.3rem 0 0;color:#4a4a68}

/* archive */
.archive{display:grid;grid-template-columns:320px 1fr;gap:28px;align-items:start}
.dossier{position:sticky;top:110px;background:#fff;border:2px solid var(--navy);border-radius:var(--radius);padding:24px;box-shadow:8px 8px 0 var(--navy);overflow:hidden}
.stamp{position:absolute;top:18px;right:-34px;transform:rotate(30deg);background:var(--red);color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.2em;padding:.3rem 2.4rem}
.dossier-label{margin:0;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#6a6a86}
.dossier h3{margin:0;font-size:2.1rem;color:var(--navy);line-height:1.1}
.dossier-threat{margin:.2rem 0 1rem;color:var(--maroon);font-weight:700;font-size:.85rem}
.dossier dl{margin:0;display:grid;gap:10px;font-size:.88rem}
.dossier dl div{display:grid;gap:1px;border-top:1px dashed var(--grey);padding-top:8px}
.dossier dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:#6a6a86}
.dossier dd{margin:0;font-weight:600;color:var(--navy)}
.dossier dd.bad{color:var(--red)}
.docs{display:grid;gap:12px}
.doc{background:#fff;border:2px solid #e1e3ec;border-radius:var(--radius);overflow:hidden}
.doc[open]{border-color:var(--blue)}
.doc summary{list-style:none;cursor:pointer;padding:16px 20px;font-weight:600;color:var(--navy);display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.doc summary::-webkit-details-marker{display:none}
.doc summary::after{content:'+';margin-left:auto;font-size:1.5rem;color:var(--blue);line-height:1}
.doc[open] summary::after{content:'–'}
.doc-tag{font-family:var(--mono);font-size:.68rem;font-weight:600;letter-spacing:.08em;padding:.25rem .55rem;border-radius:6px;background:var(--navy);color:#fff}
.doc-tag.red{background:var(--red)}.doc-tag.blue{background:var(--blue)}
.doc-body{padding:0 22px 20px}
.doc-body p,.doc-body li{color:#33334f}
.doc-body h4{margin:1.2rem 0 .2rem;color:var(--maroon);text-transform:uppercase;letter-spacing:.08em;font-size:.82rem}
.doc-body.mono{font-family:var(--mono);font-size:.9rem}
.callout{background:var(--tile);border-left:5px solid var(--red);padding:.8rem 1rem;border-radius:0 10px 10px 0}

/* reviews */
.reviews{columns:3 280px;column-gap:20px}
.review{break-inside:avoid;margin:0 0 20px;background:#fff;border-radius:var(--radius);padding:20px;border:2px solid #d8dbe6;box-shadow:0 6px 0 rgba(6,6,93,.08)}
.review:nth-child(3n+1){transform:rotate(-.6deg)}.review:nth-child(3n){transform:rotate(.6deg)}
.stars{color:var(--red);letter-spacing:.12em;font-size:1rem}
.review blockquote{margin:.4rem 0 .6rem;font-size:1.05rem;font-weight:500;color:var(--navy)}
.review figcaption{font-size:.82rem;color:#6a6a86}

/* brand */
.logos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.logo-card{margin:0;border:2px solid #e1e3ec;border-radius:var(--radius);overflow:hidden;background:#fff}
.logo-card.wide{grid-column:span 2}
.logo-stage{display:grid;place-items:center;padding:30px;min-height:180px;background:#fff}
.logo-card.dark .logo-stage{background:var(--navy)}
.logo-stage img{max-height:120px;width:auto;max-width:100%}
.logo-card figcaption{padding:12px 16px;border-top:2px solid #e1e3ec;font-size:.85rem;color:#4a4a68;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.logo-card figcaption a{margin-left:auto;font-weight:600}
.pal-title{margin:44px 0 16px;color:var(--navy);font-size:1.3rem}
.pal-title small{font-weight:400;color:#6a6a86;font-size:.8rem}
.palette{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}
.swatch{border:2px solid #e1e3ec;background:#fff;border-radius:var(--radius);padding:0;text-align:left;overflow:hidden;transition:transform .15s}
.swatch:hover{transform:translateY(-3px)}
.swatch i{display:block;height:96px;background:var(--c)}
.swatch b,.swatch span{display:block;padding:0 14px}
.swatch b{margin-top:10px;color:var(--navy)}
.swatch span{font-family:var(--mono);font-size:.82rem;color:#4a4a68;margin-bottom:12px}

/* footer */
.footer{background:var(--navy);color:#d7dbef;border-top:6px solid var(--red)}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:32px;padding-block:52px 36px}
.f-col{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.f-col h4{margin:0 0 6px;color:#fff;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase}
.f-col a,.linklike{color:#d7dbef;text-decoration:none;background:none;border:0;padding:0;font-size:.95rem}
.f-col a:hover,.linklike:hover{color:#fff;text-decoration:underline}
.f-brand img{width:210px;height:auto}
.f-brand p{margin:.2rem 0}
.f-group{color:#fff}
.f-group a{color:#fff;text-decoration:underline}
.f-note{font-size:.8rem;color:var(--grey)}
.sponsor{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.25);padding:.6rem .9rem;border-radius:10px;font-weight:700;letter-spacing:.06em}
.sponsor:hover{background:rgba(255,255,255,.16)}
.sponsor-dot{width:10px;height:10px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 4px rgba(61,220,132,.25);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 8px rgba(61,220,132,0)}}
.footer-bottom{background:#03033a;font-size:.8rem;color:var(--grey)}
.fb-in{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:16px}

.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,30px);background:var(--ink);color:#fff;padding:.8rem 1.2rem;border-radius:12px;border-left:6px solid var(--red);opacity:0;pointer-events:none;transition:.3s;z-index:200;max-width:min(92vw,460px);font-size:.92rem}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* responsive */
@media (max-width:900px){
  .hero-in{grid-template-columns:1fr;padding-block:48px 56px}
  .hero-art{min-height:260px}
  .archive{grid-template-columns:1fr}
  .dossier{position:static}
  .footer-top{grid-template-columns:1fr 1fr}
  .logo-card.wide{grid-column:auto}
}
@media (max-width:760px){
  .burger{display:flex}
  .nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:4px solid var(--navy);flex-direction:column;align-items:stretch;padding:10px 16px 16px;display:none}
  .nav.open{display:flex}
  .nav a,.nav-flush{padding:.8rem}
  .brand img{width:170px}
  .intro-hint{left:50%;top:-34px;transform:translateX(-50%)}
  .hint-arrow{transform:none;animation:none}
}
@media (max-width:520px){
  .footer-top{grid-template-columns:1fr}
  .section{padding-block:56px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
