:root{--k:#0c0a09;--k2:#17110f;--w:#f3ead8;--r:#b3121b;--g:#c9a24a;--p:#f2a7b5}
*{box-sizing:border-box;margin:0;padding:0}body{background:var(--k);color:var(--w);font:400 17px/1.65 'Shippori Mincho',serif;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit}
#sakura{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:20}
header{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 3vw;background:linear-gradient(rgba(12,10,9,.9),rgba(12,10,9,0))}.logo img{height:44px;width:auto}nav{display:flex;gap:26px}nav a{text-decoration:none;font:600 15px 'Shippori Mincho';letter-spacing:.08em;position:relative}nav a::after{content:"";position:absolute;left:0;bottom:-4px;height:3px;width:0;background:var(--r);transition:width .3s;border-radius:3px}nav a:hover::after{width:100%}
.call{border:1px solid var(--g);color:var(--g);padding:7px 18px;text-decoration:none;font-weight:600}.call:hover{background:var(--g);color:var(--k)}
.hero{position:relative;min-height:100vh;display:flex;align-items:center;padding:120px 6vw 140px;overflow:hidden}
.hbg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%;animation:kb 20s ease-in-out infinite alternate}@keyframes kb{to{transform:scale(1.08)}}
.hshade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,10,9,.95) 0,rgba(12,10,9,.75) 38%,rgba(12,10,9,.1) 70%)}
.kanji{position:absolute;right:3vw;top:110px;writing-mode:vertical-rl;font:400 clamp(70px,11vw,170px)/1 'Yuji Syuku';color:var(--r);opacity:.9;text-shadow:0 0 40px rgba(179,18,27,.5);filter:url(#brush);animation:ink 2.2s .3s both}
@keyframes ink{from{clip-path:inset(0 0 100% 0);opacity:0}to{clip-path:inset(0 0 0 0);opacity:.9}}
.hin{position:relative;max-width:620px}.kick{color:var(--g);letter-spacing:.3em;font-weight:600}
h1{font:400 clamp(64px,10vw,150px)/.95 'Zen Antique';margin:10px 0}h1 span{display:block;animation:up 1s cubic-bezier(.2,.8,.2,1) both}h1 .red{color:var(--r);text-shadow:3px 3px 0 #000;animation-delay:.2s}@keyframes up{from{opacity:0;transform:translateY(50px)}}
.stroke{height:22px;width:min(420px,80%);background:var(--r);filter:url(#brush);border-radius:40%;margin:6px 0 26px;transform-origin:left;animation:brushIn 1.1s .6s cubic-bezier(.7,0,.2,1) both}@keyframes brushIn{from{transform:scaleX(0)}}
.lead{font-size:19px;max-width:540px;color:#e6dcc6}.hbtn{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px}
.btn{display:inline-block;background:var(--r);color:var(--w);border:0;font:700 17px 'Shippori Mincho';letter-spacing:.06em;padding:16px 32px;text-decoration:none;cursor:pointer;position:relative;clip-path:polygon(2% 8%,98% 0,100% 88%,4% 100%);transition:transform .2s,background .2s}.btn:hover{background:#d4141f;transform:translateY(-3px)}.btn.ghost{background:transparent;outline:0;box-shadow:inset 0 0 0 2px var(--g);color:var(--g);clip-path:none}
.seig,.motifs::before{background:radial-gradient(circle at 50% 100%,transparent 9px,var(--g) 10px 11px,transparent 12px 16px,var(--g) 17px 18px,transparent 19px 23px,var(--g) 24px 25px,var(--k) 26px) 0 0/52px 26px,radial-gradient(circle at 50% 100%,transparent 9px,var(--g) 10px 11px,transparent 12px 16px,var(--g) 17px 18px,transparent 19px 23px,var(--g) 24px 25px,var(--k) 26px) 26px 13px/52px 26px}
.seig{position:absolute;left:0;right:0;bottom:0;height:90px;opacity:.55;animation:wave 14s linear infinite;mask:linear-gradient(transparent,#000 60%)}@keyframes wave{to{background-position:520px 0,546px 13px}}
section{padding:100px 6vw}.ttl{font:400 clamp(40px,5vw,72px)/1.1 'Zen Antique';margin-bottom:46px;display:flex;align-items:center;gap:20px}.ttl i{font:400 .9em 'Yuji Syuku';font-style:normal;color:var(--w);background:var(--r);width:1.4em;height:1.4em;display:grid;place-items:center;border-radius:50%;flex:none;box-shadow:0 0 0 4px var(--k),0 0 0 6px var(--g)}
.masters{background:var(--k2)}.mg{display:grid;grid-template-columns:1fr 1fr;gap:40px}.mg article{display:grid;grid-template-columns:200px 1fr;gap:24px;align-items:center;border:1px solid rgba(201,162,74,.4);padding:18px}.mg img{aspect-ratio:3/4;object-fit:cover;width:100%}.mg b{font:400 28px 'Zen Antique';display:block}.mg span{color:var(--g);font-weight:600}.mg p{margin-top:10px;color:#d8ceb8}
.wg{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:300px;gap:18px}.wg .big{grid-column:span 2;grid-row:span 2}.wg figure{position:relative;overflow:hidden;background:#000}.wg img{width:100%;height:100%;object-fit:cover;transition:transform .8s,filter .5s;filter:saturate(1.05)}.wg figure:hover img{transform:scale(1.08)}
.wg figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 14px;background:linear-gradient(transparent,rgba(0,0,0,.9));font-weight:600;display:flex;align-items:center;gap:12px}.wg figcaption b{font:400 34px 'Yuji Syuku';color:var(--r);text-shadow:0 0 1px #fff}
.motifs{position:relative;background:var(--r);color:var(--w);overflow:hidden}.motifs::before{content:"";position:absolute;inset:0;opacity:.13;--k:var(--r)}.motifs>*{position:relative}.ttl.light i{background:var(--k)}
.mt{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.mt div{background:rgba(12,10,9,.88);padding:26px;border-top:4px solid var(--g);transition:transform .3s}.mt div:hover{transform:translateY(-8px) rotate(-.6deg)}.mt b{font:400 54px/1 'Yuji Syuku';color:var(--r);display:block;transition:transform .5s}.mt div:hover b{transform:scale(1.15) rotate(-6deg)}.mt h3{font:400 26px 'Zen Antique';margin:10px 0 6px}.mt p{color:#d8ceb8}
.price ul{list-style:none;max-width:900px}.price li{display:flex;gap:14px;align-items:baseline;font-size:21px;padding:12px 0;border-bottom:1px solid rgba(201,162,74,.2)}.price li i{flex:1;border-bottom:2px dotted rgba(201,162,74,.5)}.price li b{font:400 24px 'Zen Antique';color:var(--g)}.fine{margin-top:20px;color:#a99f8b}
.ops{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;background:var(--k2)}.ops blockquote{font:400 21px/1.5 'Shippori Mincho';padding:30px;border-left:4px solid var(--r);background:rgba(255,255,255,.03)}.ops cite{display:block;margin-top:12px;color:var(--g);font-style:normal;font-weight:700}
.cta{display:grid;grid-template-columns:1fr 1fr;gap:5vw;background:linear-gradient(rgba(12,10,9,.85),rgba(12,10,9,.95)),url(img/oni.webp) center/cover}.cbox p{font-size:19px}
form{display:grid;gap:12px}input,select,textarea{width:100%;padding:14px;background:rgba(0,0,0,.6);border:1px solid rgba(201,162,74,.5);color:var(--w);font:400 16px 'Shippori Mincho'}input:focus,textarea:focus,select:focus{outline:2px solid var(--r)}
footer{text-align:center;padding:26px 4vw 70px;color:#8f8573;border-top:1px solid rgba(201,162,74,.3)}
.badge{position:fixed;right:12px;bottom:12px;z-index:50;background:var(--w);color:var(--k);font:600 13px 'Shippori Mincho';padding:5px 12px;text-decoration:none}
.rv{opacity:0;transform:translateY(40px);clip-path:inset(0 100% 0 0);transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1),clip-path 1.1s cubic-bezier(.7,0,.2,1)}.rv.in{opacity:1;transform:none;clip-path:inset(0 0 0 0)}
.mt div.rv.in:hover{transform:translateY(-8px) rotate(-.6deg)}
@media(max-width:860px){nav{display:none}.logo img{height:36px}.hero{padding:100px 6vw 120px;align-items:flex-end}.hshade{background:linear-gradient(rgba(12,10,9,.3),rgba(12,10,9,.92) 55%)}.kanji{font-size:64px;top:90px}
.mg,.mt,.ops,.cta{grid-template-columns:1fr}.mg article{grid-template-columns:110px 1fr}.wg{grid-template-columns:1fr 1fr;grid-auto-rows:200px}.price li{font-size:17px}.price li b{font-size:19px}section{padding:70px 5vw}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none;clip-path:none}#sakura{display:none}}
h1{line-height:1.12}@media(max-width:860px){.hero{min-height:0;padding-top:210px}.kanji{font-size:52px;top:76px}}
h1{margin-top:22px}
/* fix: reveal bez clip-path (clip-path blokował IntersectionObserver) */
.rv{clip-path:none!important;transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1)}
.wg figure.rv::after,.mg article.rv::after{content:"";position:absolute;inset:0;background:var(--r);transform-origin:right;transition:transform 1s cubic-bezier(.7,0,.2,1) .15s;z-index:2;pointer-events:none}
.mg article{position:relative;overflow:hidden}.wg figure.rv.in::after,.mg article.rv.in::after{transform:scaleX(0)}
@media(prefers-reduced-motion:reduce){.wg figure.rv::after,.mg article.rv::after{display:none}}
